Tirez les résistances sur UART

16

Je passais par une note d'application AN2606 où je suis tombé sur ce schéma de connexion:

entrez la description de l'image ici

Selon mes connaissances, UART est de type push-pull et Tx fournit le pull-up requis et nous n'avons donc pas besoin d'utiliser de pull-ups externes. Est-ce que j'ai râté quelque chose?

Whiskyjack
la source
1
Lorsque UART est inactif, les deux lignes sont hautes. Le bit de départ dans UART est la première transition haut-bas sur la ligne. Ils sont donc tirés vers le haut.
Swanand
@swanand - C'est ce que même je pensais. Je me demande pourquoi cette note d'application recommande des tractions.
Whiskeyjack
1
Probablement pour garantir certaines exigences, comme le fait qu'il soit élevé avant que le micro ne termine son cycle d'alimentation ou que les temps de montée ne soient assez rapides ...
zakkos
1
J'ai utilisé UART un certain nombre de fois sur STM32 et je n'ai pas eu de pullups, bien que j'admette que ce n'était pas pour le chargeur de démarrage, donc @zakkos pourrait avoir raison. Voir également la note sous le schéma - elle n'est nécessaire que si l'hôte n'a pas de pull up propre, il semble donc encore plus probable qu'il soit là pour garantir une certaine condition pour l'état de la ligne.
Jan Dorniak
2
@swanand - ce que je voulais dire était - les broches UART sont tirées par elles-mêmes. Nous ne devrions pas avoir besoin de tractions externes comme indiqué sur l'image. Les broches Tx sont responsables de conduire la ligne HAUTE sans avoir besoin de résistances externes. La réponse de Tony explique l'exigence de ces résistances. :)
Whiskeyjack

Réponses:

17

Pendant que le microcontrôleur est réinitialisé, ses broches d'E / S seront configurées comme des entrées à haute impédance. Ainsi, la broche utilisée pour une transmission de données série UART (TXD) flottera pendant ce temps. Cela peut entraîner du bruit provoquant la transmission des déchets par le pilote de ligne RS232.

Certains circuits intégrés de commande de ligne ont des résistances de rappel internes sur leurs broches d'entrée côté TTL / LVTTL pour éviter cela et produire un état inactif RS232. Sinon, une résistance de rappel peut être ajoutée.

Une résistance de rappel sur la broche d'entrée de réception de données série UART (RXD) n'est pas nécessaire car le récepteur de ligne RS232 pilote toujours cette broche.

Notez que la période de réinitialisation est généralement relativement longue et que toutes les broches d'E / S utilisées comme broches de sortie sont sujettes à ce problème et doivent être prises en compte pour une résistance pull-up ou pull-down.

TonyM
la source
1
À propos de RXD, si le côté hôte n'a pas de pull-up sur sa broche 'TXD', la broche 'RXD' du côté esclave (côté STM32) peut également avoir besoin de pull-up.
plongeur