سلام
از تجربیات دوستانی که در پست های مختلف در مورد AD9833 مولد فرکانس با فرمان پذیری SPI صحبت کرده بودند استفاده کردم و یه
برد براش ساختم و برنامه براش نوشتم.
مسئله سخت افزار و برنامه هست یا نه نمی دونم اما .مدار من همونیه که دیگران هم بستن و نقشه اش توی دیتا شیت این آی سی هست.
برنامه هم اینه:
ولی نمی دونم چرا اون فرکانسی که من براش تعیین میکنم تولید نمی کنه!
کسی تجربه در این مورد داره؟
اینم تابع write_command_AD9833
حتی شکل موج سیگنال های کلاک و دیتا و SS بار رو هم تو اسکپ برسی کردم مشکلی نداشتند.
از تجربیات دوستانی که در پست های مختلف در مورد AD9833 مولد فرکانس با فرمان پذیری SPI صحبت کرده بودند استفاده کردم و یه
برد براش ساختم و برنامه براش نوشتم.
مسئله سخت افزار و برنامه هست یا نه نمی دونم اما .مدار من همونیه که دیگران هم بستن و نقشه اش توی دیتا شیت این آی سی هست.
برنامه هم اینه:
کد:
res=0x2100; write_command_AD9833(res); // bit13 == 1 and reset // write_command_AD9833(0x0028); // square res=0x4000|0x3126; write_command_AD9833(res); lcd_gotoxy(0,0); sprintf(lcd_buffer,"%x",res); lcd_puts(lcd_buffer); res=0x4000|8; write_command_AD9833(res); // 0x00083126 FREQ0 (for 50 KHZ) // res=0x8000|0x258; // write_command_AD9833(res); // res=0x8000|0x47; // write_command_AD9833(res); // 0x000010C7 FREQ1 write_command_AD9833(0xC000); // phase register0 // write_command_AD9833(0xE000); // phase register1 write_command_AD9833(0x2000); // start generate while (1);
کسی تجربه در این مورد داره؟
اینم تابع write_command_AD9833
کد:
void write_command_AD9833(unsigned int command){ unsigned int result=0; unsigned char LSB=0,MSB=0; LSB=command; MSB=command>>8; PORTB.4=0; // SS_BAR = Low spi(LSB); spi(MSB); PORTB.4=1; // SS_BAR = High delay_us(30); //lcd_gotoxy(0,0); //sprintf(lcd_buffer,"%x,%x",MSB,LSB); //lcd_puts(lcd_buffer); }
دیدگاه