"..se hai N caratteri ricevuti senza errori.." e come fa il micro a sapere che i caratteri ricevuti sono 'senza errori' ? O se viene presupposto l'intervento umano, allora non e' piu' autobaud/autoparametro
Si, dopo un po' di tempo il bit-time dovrebbe essere rilevato con precisione resta il problema dei parametri, come faccio a sapere se sono 7 bit dati e 2 bit stop oppure 8 bit dati ed 1 bit stop ? Ciao e grazie RobertoA
Perche' l' UART campiona lo stream in ingresso per rilevare lo stato dei bit e si accorge se il bit time rientra in quello impostato: se rileva uan transazione non congrua solleva un errore (framing error). Inoltre UART più sofisticate adottano varie strategie di controllo e questo si riflette in uno stato di errori piu' o meno esaustivo. Ovviamente, devi applicare questo alla UART di cui disponi effettivamente...
Ovviamente no :-)
;-) Qui è un po' piu' complicato da fare, ma puoi usare questo metodo per ottenere il bit rate. Avendo il bit time, a questo punto il metodo piu' semplice, se la tua UART te lo permette, è quello di programmare la uart in sequeza con i vari parametri fino a trovare una combinazione che non da' errore. Puoi iniziare con le combinazioni più usuali:
1 stop, 8bit, no parity se ok test della parità
1 stop, 8bit, even parity se errore, next
1 stop, 8bit, odd parity se errore, no parity ...
se errore, prova con 7 bit e via...
Se la UART non te lo permette, allora devi lavorare con i timing capture, cercando di rilevare il tempo carattere, oltre al bit time. Questo comporta cercare di rilevare lo start bit (transazione da 1->0) e da qui cercare di trovare la condizione di stop (stato alto 1): il tutto non è semplicissimo ed è un pochino lungo, ma si può fare. IO persoonalmente ho sempre cercato di utilizzare le capacità delle UART e nei casi in cui ne ho avuto bisogno, ha sempre funzionato bene. Devo dire pero' che la mia unica incognita era il baud rate e la parità... non ho mai incontrato applicazioni con bit diverso da 8 o 7.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.