Tack för era tips, de var värdefulla!
Sökningen fann 6 träffar
- 15 oktober 2010, 09:20:31
- Kategori: Inbäddade system / Inbyggda system / IoT
- Tråd: PIC SPI slave driver
- Svar: 14
- Visningar: 1863
Re: PIC SPI slave driver
Problemet är löst
Mastern's klocka tog inte en paus mellan varje byte som shift:ades ut. Så inte konstigt att WCOL sattes sporadiskt.
Tack för era tips, de var värdefulla!
Tack för era tips, de var värdefulla!
- 12 oktober 2010, 10:53:47
- Kategori: Inbäddade system / Inbyggda system / IoT
- Tråd: PIC SPI slave driver
- Svar: 14
- Visningar: 1863
Re: PIC SPI slave driver
Internal oscillator, 4MHz. -> Det kanske inte är så bra, bör kanske prova med en kristall eller RC-krets.
Mastern (inte en PIC) har en SCK bit rate på 32kBit/s, ingen paus mellan bytes skickade. -> Ska försöka med att skicka en byte i taget.
Mastern (inte en PIC) har en SCK bit rate på 32kBit/s, ingen paus mellan bytes skickade. -> Ska försöka med att skicka en byte i taget.
- 11 oktober 2010, 21:52:58
- Kategori: Inbäddade system / Inbyggda system / IoT
- Tråd: PIC SPI slave driver
- Svar: 14
- Visningar: 1863
Re: PIC SPI slave driver
Hur jag än konfigurerar SPI eller ordningen på läsa/skriva/rensa flaggor stöter jag på problem. Mitt senaste försök var följande, vilket obönhörligen fastnar i i sista loopen eftersom WCOL trots allt sätts. unsigned char x; if( SSPIF ) { SSPIF = 0; if( SSPOV ) SSPOV = 0; x = SSPBUF; while( BF ); do ...
- 8 oktober 2010, 13:43:24
- Kategori: Inbäddade system / Inbyggda system / IoT
- Tråd: PIC SPI slave driver
- Svar: 14
- Visningar: 1863
Re: PIC SPI slave driver
Tack återigen för era kommentarer! :) Ger nog snart upp på att lösa det interruptdrivet och kör på polling + en extra pinne som en "soft select" för att sparka in main-loopen i "receive" mode. Vad gäller att ladda SSPBUF finns följande exempel i PIC18F4321 data sheet, p.170, EXAM...
- 8 oktober 2010, 10:27:57
- Kategori: Inbäddade system / Inbyggda system / IoT
- Tråd: PIC SPI slave driver
- Svar: 14
- Visningar: 1863
Re: PIC SPI slave driver
Tack för svaren, ursäkta att jag var lite oklar. Exempel: Inne i interruptrutinen: if( SSPIF ) { rxByte = SSPBUF; (MOVFF SSPBUF,rxByte) SSPBUF = txByte; (MOVFF txByte,SSPBUF) SSPIF = 0; } Det som sker är att SSPBUF inte uppdateras med txByte, utan rxByte ligger kvar. Jag har även testat med att anvä...
- 7 oktober 2010, 14:13:53
- Kategori: Inbäddade system / Inbyggda system / IoT
- Tråd: PIC SPI slave driver
- Svar: 14
- Visningar: 1863
PIC SPI slave driver
Hej! Jag implementerar en SPI slave driver, och min approach är att göra den interrupt-driven. PIC: 18F4321 Compiler: CC8e Förutsättningar: - SPI low priority interrupt - W, STATUS and BSR sparas/återställs i isr. Mitt problem: Efter ett interrupt (SSPIF) sparas SSPBUF till RAM som rxData. Därefter ...
