Tirare su i resistori su UART


16

Stavo attraversando un app-note AN2606 in cui mi sono imbattuto in questo diagramma di connessione:

inserisci qui la descrizione dell'immagine

Per quanto ne so, UART è di tipo push-pull e Tx fornisce il pull-up richiesto e quindi non è necessario utilizzare alcun pull-up esterno. Mi sto perdendo qualcosa qui?


1
Quando UART è inattivo, entrambe le linee sono alte. Il bit di avvio in UART è la prima transizione da alto a basso sulla linea. Quindi sono tirati su.
Swanand,

@swanand - Questo è quello che ho pensato. Mi chiedo perché questa nota app consiglierebbe pull up.
Whiskeyjack,

1
Probabilmente per garantire determinati requisiti, ad esempio che è alto prima che il micro termini il suo ciclo di potenza o che i tempi di salita siano abbastanza veloci ...
zakkos,

1
Ho usato UART diverse volte su STM32 e non ho avuto alcun pullup, anche se ho ammesso che non era per il bootloader, quindi @zakkos potrebbe avere ragione. Vedi anche la nota sotto lo schema: è necessario solo se l'host non ha un pull up proprio, quindi sembra ancora più probabile che sia lì per soddisfare alcuni requisiti per lo stato della linea.
Jan Dorniak,

2
@swanand - intendevo dire che i pin UART sono stati sollevati da soli. Non dovremmo aver bisogno di pull up esterni come mostrato nell'immagine. I pin Tx sono responsabili del pilotaggio della linea HIGH senza la necessità di resistori esterni. La risposta di Tony spiega il requisito di quei resistori. :)
Whiskeyjack il

Risposte:


17

Mentre il microcontrollore è in reset, i suoi pin I / O saranno configurati come ingressi ad alta impedenza. Quindi il pin utilizzato per un UART serial Transmit Data (TXD) fluttuerà durante questo periodo. Ciò può causare rumori che causano la trasmissione di rifiuti da parte del driver di linea RS232.

Alcuni circuiti integrati del driver di linea hanno resistori pull-up interni sui pin di ingresso lato TTL / LVTTL per impedire ciò e produrre uno stato inattivo RS232. Altrimenti, è possibile aggiungere una resistenza di pull-up.

Non è necessario un resistore pull-up sul pin di ingresso dei dati di ricezione seriale (RXD) UART perché il ricevitore di linea RS232 guida sempre quel pin.

Si noti che il periodo di ripristino è in genere un tempo relativamente lungo e che qualsiasi pin I / O utilizzato come pin di uscita è soggetto a questo problema e deve essere considerato per un resistore pull-up o pull-down.


1
A proposito di RXD, se il lato host non ha pull-up sul suo pin 'TXD', il pin 'RXD' sul lato slave (lato STM32) potrebbe anche aver bisogno di pull-up.
divergenza
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.