PIC16F886 + USART = ofunk
Re: PIC16F886 + USART = ofunk
Icecap> ...och när du sedan har lagt i data i TX-registret ska du nollställa TXIF.
En skrivning till TXREG nollar även TXIF. TXIF flaggan är dessutom read-only
så den går inte att skriva till direkt i alla fall...
En skrivning till TXREG nollar även TXIF. TXIF flaggan är dessutom read-only
så den går inte att skriva till direkt i alla fall...
Re: PIC16F886 + USART = ofunk
OK, ville inte lusläsa databladet men jag litar på dig, sodjan.
Re: PIC16F886 + USART = ofunk
Nu har jag eliminerat anslutningsproblemen, så nu får jag in data till PC:n. Krux är att det är inte den sträng jag skickar, utan det är rappakalja. Misstänker att jag satt nån inställning i koden fel, men jag har vridit och vänt på alla sidor i databladet och hittar inte var jag går bet. Minicom är inställt på 9600 baud och min PIC är inställd på samma sak. PIC:en körs i 8MHz (INTRC_NOCLKOUT).
Bittar som är relevanta för seriemodulen:
Se skärmdump för hur minicom ser ut när det tar emot datat.
Är det här felet relaterat till felaktig baudrate, eller något annat?
Bittar som är relevanta för seriemodulen:
Kod: Markera allt
SYNC = 1; // Synchronous
CSRC = 1; // Master
SREN = 0; // No single receive
CREN = 0; // No continuous receive
SPEN = 1; // Enable serial port
TXEN = 1; // Transmitter
BRGH = 0; // Unused in sync-mode
BRG16 = 0; // Don't use 16bit baudrate
SPBRG = 12; // 9600 baud
Är det här felet relaterat till felaktig baudrate, eller något annat?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: PIC16F886 + USART = ofunk
Terminalprogrammet emulerar tydligen VT102, bör du inte då ha asynchronous mode?
Re: PIC16F886 + USART = ofunk
Jag hittade inte hur man ändrar emuleringen i minicom, men det blir exakt samma resultat om jag kör cat < /dev/ttyUSB0 så det är inte emuleringen som strular. Provade för skojs skull att köra PIC:en i asynkront läge, men då kom ingen data alls. Stendött på seriesnöret.
Re: PIC16F886 + USART = ofunk
Att konstant skriva ut "U" som data ger följande bild på oscilloskopet (gul = RX, grön = TX). Jag kan dock inte avgöra om det är bra eller dåliga kurvor.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: PIC16F886 + USART = ofunk
Med synkron signalering finns det varken start eller stopp-bit med. Din överföring är alltså fel till att börja med, du ska alltså fortfarande köra med asynkron inställning!
Re: PIC16F886 + USART = ofunk
"fortfarande"? Ingen, inte ens du, har nämnt ett ord om det så du behöver inte bli sådär överdramatisk.
Jag är dock mer påläst om RS232 nu än för en kvart sedan, så nu är jag mer upplyst om att synkron överföring är grundfelet. Asynkron inställning ger dock ingen datatrafik, såhär lite snabbt testat, men nu har jag iallafall något att gå på.
Jag är dock mer påläst om RS232 nu än för en kvart sedan, så nu är jag mer upplyst om att synkron överföring är grundfelet. Asynkron inställning ger dock ingen datatrafik, såhär lite snabbt testat, men nu har jag iallafall något att gå på.
Re: PIC16F886 + USART = ofunk
bos: RS232 har inget med signaleringen att göra, RS232 är bara en beskrivning av spänningsnivåerna.
Och ja, det är sant att ingen tidigare tydligt har skrivit att det ska vara async. Du skrev dock tidigt att du har testat båda och senare inlägg visar att det är klockan du tittar på.
Men ja, du ska köra med async. kommunikation. Jag brukar - när det är möjligt - att köra med 2 stoppbit vid sändning och 1 stoppbit vid mottagning, det är dock ganska få UART som medger denna skillnad i inställningarna och när det inte går brukar jag köra med 1 stoppbit på båda.
Och ja, det är sant att ingen tidigare tydligt har skrivit att det ska vara async. Du skrev dock tidigt att du har testat båda och senare inlägg visar att det är klockan du tittar på.
Men ja, du ska köra med async. kommunikation. Jag brukar - när det är möjligt - att köra med 2 stoppbit vid sändning och 1 stoppbit vid mottagning, det är dock ganska få UART som medger denna skillnad i inställningarna och när det inte går brukar jag köra med 1 stoppbit på båda.
Re: PIC16F886 + USART = ofunk
Som har sagts så ska du först ändra till async.
Sedan, det "skräp" som du visade på skärmdumpen, är
det kortare eller än det som du skickar?
Längre: terminalens baud rate > processorns.
Kortare: terminalens baud rate < processorns.
Det ger en liten vink av hur du har hastigheten fel.
Sedan, det "skräp" som du visade på skärmdumpen, är
det kortare eller än det som du skickar?
Längre: terminalens baud rate > processorns.
Kortare: terminalens baud rate < processorns.
Det ger en liten vink av hur du har hastigheten fel.