| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| SPI interface + PIC18F452+AD9833 http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=6785 |
Страница 1 от 1 |
| Автор: | me40 [ Нед Май 03, 2009 4:36 pm ] |
| Заглавие: | SPI interface + PIC18F452+AD9833 |
Досега никога не съм използвал SPI интерфейса на PIC18F452. Срещам затруднения и затова моля за помощ. Използвам инфо и по точно примера от http://hades.mech.northwestern.edu/wiki ... 2C_and_SPI Свързвнето ми е съответно директно пин със пин: AD9833 PIC18F452 pin6(SDATA) -> 24pin (RC5 SDO) pin7(SCLK) -> 18pin (RC3 SCK) pin8(Fsync) -> 17pin (RC2) Инициализация на MSSP за работа в режим SPI (master): BCF TRISC, 3 ;SCK BSF TRISC, 4 ;sdi - не се използва при интерфейс с AD9833 BCF TRISC, 5 ;SD0 BCF TRISA, 5 ; spi master mode BCF SSPSTAT, CKE BCF SSPSTAT, SMP MOVLW B'00110001' ;SPI Master MOVWF SSPCON1 ;Tакт Fosc/16 - Fosc=20mhz Следва предаването на данни, като немога точно да разбера по какъв начин става. За да предам spi_xfer(0b0010000101101000); правя следното: BCF PORTC, 2 ; Смъквам Fsync за начало на данните MOVLW B'00100001' MOVWF SSPBUF ; Зареждам в буфера старшите бита BTFSS SSPSTAT, BF BRA $-2 BCF SSPSTAT, BF MOVLW B'01101000' MOVWF SSPBUF ;; Зареждам в буфера младшите бита BTFSS SSPSTAT, BF BSF PORTC, 2 ;Вдигам Fsync за край на данните BCF PORTC, 2 ;Смъквам Fsync за начало на данните ........ После изпращам честотата правоъгълник 20 khz : spi_xfer(0b0101100010010011); spi_xfer(0b0100000000010000); после инфо за фаза: spi_xfer(0b1100000000000000); и най накрая: unresets spi_xfer(0b0000000001101000); |
|
| Автор: | Gogo [ Нед Май 03, 2009 9:00 pm ] |
| Заглавие: | |
Данните (байтовете) "излизат" през SDO, като най-младшия бит е първи - т.е. ротират се от ляво на дясно. Тука май се опитваш да предадеш данните точно наобратно. Не съм запознат с AD9833 и не мога да кажа друго, освен да провериш дали си инициализирал правилно битове CKP и CKE. Успех... |
|
| Автор: | Gogo [ Нед Май 03, 2009 10:17 pm ] | |||||||||
| Заглавие: | ||||||||||
|
||||||||||
| Автор: | me40 [ Нед Май 03, 2009 10:22 pm ] |
| Заглавие: | |
Благодаря на Gogo. Значи проблема вероятно е в данните, които изпращам, а не начина. Утре сутрин ще правя пак опити, че в момента съм на работа и няма как. ..........................>>>>>>>>>>>>>> Microchip оправиха нещата и по точно форума: http://www.microchip.com/forums/tm.aspx?m=406866 В последният пост от micro има прикрепен Attachment (1) . Има доста подробно обяснение. С помоща на него вече имам синусоида на изхода. Сега ще пробвам да сменя честотата, вида на сигнала (правоъгълник, триъгълник) |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|