Har inte lyckats få klarhet riktigt i hur 9-bitars kommunikationen funkar i EUSARTen i PIC18.
Hittar ingen riktig förklaring.
Den första delen är helt ok.
Laddar in data i TXREG, och den nionde biten i TX9D, nåväl det är ju inga konstigheter.
Data skickas iväg, men vad händer då?
När TSR (skiftregistret) laddas från TXREG så nollställs TXREG, för att göra klart för nästa uppsättning data.
MEN vad händer med TX9D, töms den också, eller finns värdet kvar, data bladet säger faktiskt ingenting om detta (inte vad jag hittat ialla fall).
Eftersom jag behöver en drivrutin som skickar 2 stoppbitar och hårdvaran i PIC18 bara stöder 1 stoppbit, måste jag använda den nionde biten som stoppbit.
Om den inte ändras, så räcker det i princip med att ettställa TX9D vid initieringen, annars måste jag naturligtvis fixa så den blir ettställd i alla andra ställen också.
USART funderingar PIC18 (9 bitar)
Re: USART funderingar PIC18 (9 bitar)
Jag tolkar det som att TX9d enbart "nollas" vid reset förrutom
då du själva skriver något från koden till TX9D.
Man skulle kunna köra en liten test a MPSIM för att verifiera detta...
då du själva skriver något från koden till TX9D.
Man skulle kunna köra en liten test a MPSIM för att verifiera detta...
Re: USART funderingar PIC18 (9 bitar)
Jo, jag får göra så, misstänker jag, men det intressanta är om det är konsekvent bland alla kretsar som har 9-bitars USART/EUSART.
Re: USART funderingar PIC18 (9 bitar)
Dom kretsar jag har sett med "9-bit UART" har alla varit så att 9'onde bitten ska slås på inför varje sändning. Jag har inte efterforskat speciellt i detta på PIC men jag vet att t.ex. Fujitsu har det så.
Re: USART funderingar PIC18 (9 bitar)
Vid närmare eftertanke så gör jag nog det också, blir ju bara en instruktion extra per funktion.
Men som sagt, det är mycket luddigt i databladet.
Men som sagt, det är mycket luddigt i databladet.