UART-IL MISTERO
Salve a tutti,
Volevo trasmettere da un PIC18f452 dei dati al computer tramite la porta seriale ma ho riscontrato problemi che trovo davvero misteriosi. Uso il PIC a una velocità di 40 MHz, per la comunicazione seriale dato che devo alimentare il PIC a 3V ho collegato TX ad un comparatore che porta il segnale a 5 volt e poi viene collegato ad un MAX232, la velocità che ho impostato per l'UART è di 19200 baud rate, one stop bit e nessuna parità. Con l'oscilloscopio ho verificato che i livelli all'uscita del MAX fossero giusti e lo sono, variano da -9 a +9, ho anche verificato la durata di tutta la trasmissione (in uscita il segnale dal bit di star all'ultimo bit dura 0.5ms). Come prima programma ho fatto inviare al PIC il numero 50 (00110010), usando hyperterminal funzionava bene riceveva giusto, 5 minuti dopo ho riprovato e riceveva 114 (01110010).
Il programma era esattamente lo stesso e le impostazioni di hyperterminal pure! ! Il programma l'ho fatto settando manualmente i registri e successivamente anche usando la libreria di Mikropascal...il risultato è lo stesso...ho poi inviato al posto di 50 114 (01110010) e riceveva 242 (11110010)!! è da notare che duplica sempre l'ultimo bit a 1 che riceve..però all'oscilloscopio ho visto il bit lo invia giusto! ! poi perché ogni tanto va e ogni tanto no? AIUTATEMIIII VI PREGOOOO
P.S. ho anche provato a settare il baud rate a 9600...tutto inutile
P.P.S ho anche provato a cambiare computer...inutile pure questo
Volevo trasmettere da un PIC18f452 dei dati al computer tramite la porta seriale ma ho riscontrato problemi che trovo davvero misteriosi. Uso il PIC a una velocità di 40 MHz, per la comunicazione seriale dato che devo alimentare il PIC a 3V ho collegato TX ad un comparatore che porta il segnale a 5 volt e poi viene collegato ad un MAX232, la velocità che ho impostato per l'UART è di 19200 baud rate, one stop bit e nessuna parità. Con l'oscilloscopio ho verificato che i livelli all'uscita del MAX fossero giusti e lo sono, variano da -9 a +9, ho anche verificato la durata di tutta la trasmissione (in uscita il segnale dal bit di star all'ultimo bit dura 0.5ms). Come prima programma ho fatto inviare al PIC il numero 50 (00110010), usando hyperterminal funzionava bene riceveva giusto, 5 minuti dopo ho riprovato e riceveva 114 (01110010).
Il programma era esattamente lo stesso e le impostazioni di hyperterminal pure! ! Il programma l'ho fatto settando manualmente i registri e successivamente anche usando la libreria di Mikropascal...il risultato è lo stesso...ho poi inviato al posto di 50 114 (01110010) e riceveva 242 (11110010)!! è da notare che duplica sempre l'ultimo bit a 1 che riceve..però all'oscilloscopio ho visto il bit lo invia giusto! ! poi perché ogni tanto va e ogni tanto no? AIUTATEMIIII VI PREGOOOO
P.S. ho anche provato a settare il baud rate a 9600...tutto inutile
P.P.S ho anche provato a cambiare computer...inutile pure questo

