Widerstände am UART hochziehen

16

Ich habe eine App-Note AN2606 durchgesehen, bei der ich auf dieses Verbindungsdiagramm gestoßen bin:

Bildbeschreibung hier eingeben

Meines Wissens nach handelt es sich bei UART um einen Push-Pull-Typ, und Tx stellt den erforderlichen Pull-Up bereit, sodass wir keine externen Pull-Ups verwenden müssen. Vermisse ich hier etwas?

Whiskeyjack
quelle
1
Wenn UART inaktiv ist, sind beide Leitungen hoch. Das Startbit in UART ist der erste High-Low-Übergang in der Leitung. Daher werden sie hochgezogen.
Swanand
@swanand - Das dachte sogar ich. Ich frage mich, warum diese App-Notiz Klimmzüge empfehlen würde.
Whiskeyjack
1
Wahrscheinlich, um bestimmte Anforderungen zu gewährleisten, ist es so, dass es hoch ist, bevor das Mikro seinen
Energiezyklus
1
Ich habe UART einige Male auf STM32s verwendet und ich hatte keine Klimmzüge, obwohl zugegeben, dass es nicht für den Bootloader war, also könnte @zakkos richtig sein. Beachten Sie auch den Hinweis unter dem Schaltplan - dies ist nur erforderlich, wenn der Host keine eigenen Pull-Ups hat, sodass es noch wahrscheinlicher ist, dass er bestimmte Anforderungen für den Zustand der Leitung erfüllt.
Jan Dorniak
2
@swanand - was ich meinte war - UART-Pins werden von alleine hochgezogen. Wir sollten keine externen Klimmzüge benötigen, wie im Bild gezeigt. Die Tx-Pins sind dafür verantwortlich, die Leitung HIGH zu treiben, ohne dass externe Widerstände erforderlich sind. Tonys Antwort erklärt die Anforderungen dieser Widerstände. :)
Whiskeyjack

Antworten:

17

Während der Mikrocontroller zurückgesetzt wird, werden seine E / A-Pins als hochohmige Eingänge konfiguriert. Der für ein UART Serial Transmit Data (TXD) verwendete Pin ist also während dieser Zeit floatend. Dies kann zu Störgeräuschen führen, die dazu führen, dass der RS232-Leitungstreiber Müll überträgt.

Einige Leitungstreiber-ICs verfügen über interne Pull-up-Widerstände an ihren TTL / LVTTL-seitigen Eingangspins, um dies zu verhindern und einen RS232-Ruhezustand zu erzeugen. Andernfalls kann ein Pull-Up-Widerstand hinzugefügt werden.

Ein Pull-up-Widerstand am Eingangspin des seriellen UART-Empfangsdaten (RXD) ist nicht erforderlich, da der RS232-Leitungsempfänger diesen Pin immer ansteuert.

Beachten Sie, dass die Rücksetzdauer normalerweise relativ lang ist und dass alle als Ausgangsstifte verwendeten E / A-Stifte für dieses Problem anfällig sind und für einen Pull-up- oder Pull-down-Widerstand in Betracht gezogen werden müssen.

TonyM
quelle
1
Bei RXD muss der 'RXD'-Pin auf der Slave-Seite (STM32-Seite) möglicherweise ebenfalls hochgezogen werden, wenn die Host-Seite an ihrem' TXD'-Pin kein Hochziehen hat.
Diverger