Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

oscillatore interno e comunicazione uart

11 views
Skip to first unread message

ice

unread,
Jan 8, 2021, 3:52:47 AM1/8/21
to
Ciao a tutti!

E' corretto affermare che è meglio scegliere una baud-rate relativamente bassa (diciamo 9600bps) anzichè una high-end se si vuole massimizzare la probabilità che un micro sia ancora in grado di scambiare dati col mondo esterno tramite una uart hw interna dopo 15/20 anni di funzionamento senza quarzo ma solo con oscillatore integrato?

Grazie

dalai lamah

unread,
Jan 8, 2021, 1:41:12 PM1/8/21
to
Un bel giorno ice digitò:
Perché dovrebbe? Una deriva della frequenza dovrebbe comportare più o meno
gli stessi problemi a qualunque bit rate, visto che l'errore percentuale è
sempre lo stesso.

A meno che la UART integrata nella tua MCU non disponga di una qualche
funzione di "auto-bauding". In quel caso sicuramente una bit rate bassa
potrebbe aiutare, perché usando un divisore di valore più alto hai più
"risoluzione" e quindi puoi compensare derive di frequenza maggiori. Però
l'autobauding implementato nelle UART di solito ha delle limitazioni, ad
esempio si aspetta di ricevere un codice specifico come primo carattere.

--
Fletto i muscoli e sono nel vuoto.

giulia

unread,
Jan 9, 2021, 8:32:07 AM1/9/21
to
No al livello teorico non e' corretto.

Giulia




ice

unread,
Jan 11, 2021, 5:41:29 PM1/11/21
to
> Perché dovrebbe? Una deriva della frequenza dovrebbe comportare più o meno
> gli stessi problemi a qualunque bit rate, visto che l'errore percentuale è
> sempre lo stesso.

avevo ipotizzato per i motivi legati alla "risoluzione" che hai detto sotto;


> A meno che la UART integrata nella tua MCU non disponga di una qualche
> funzione di "auto-bauding".

si, volendo la MCU dispone dell'autobaud hw e mette disposizione 3 patterns possibili oltre al classico con 0x55;
il pattern iniziale non sarebbe un problema nel mio caso specifico;
nel mio caso però l'ideale sarebbe scegliere una baudrate, alta o bassa che sia, e poi tenere quella, mi risulta più semplice;
se 9600bps diventano 9000 o 10000 è ok, da 9600 però non posso salire a 19k2 o scendere a 4k8

Grazie

ice

unread,
Jan 11, 2021, 5:45:44 PM1/11/21
to
On Saturday, 9 January 2021 at 14:32:07 UTC+1, giulia wrote:

> No al livello teorico non e' corretto.

I motivi sono quelli che ha scritto "dalai lamah" o avevi in mentre anche altro?

Grazie

giulia

unread,
Jan 12, 2021, 5:18:45 AM1/12/21
to
Si sono quelli , perche' eliminando i limiti fisici dei circuiti l'unica cosa che ti interessa e' che il compionamento avvenga
nel punto giusto , e una volta rilevata la transizione 1->0 del bit di start devi solo:
contare 1/2T per confermare lo start
T per 8/9 volte a partire dal campionamento di conferma(piu o meno il centro di ogni bit).

La velocita (baudrate) entra in gioco solo se la parte analogica e' cosi scarsa che soglie ,tempi di salita e discesa(e
assestamento) diventano rilevanti rispetto a 1/2T.

Comunque la comunicazione diventa impossibile quando i clock differiscono di piu' del 10% (start+8bit+stop),a quel punto ti conviene
fare a meno della seriale HW e fare un routine software per correggere la deriva.


Giulia


0 new messages