Forum: Mikrocontroller und Digitale Elektronik UART Idle-Pegel (bei ATMegas): Steckt dahinter ein Pull-Up?


von Meinhardt (mnhdt)


Lesenswert?

Wird der Idle-Pegel eines ATMega-UART (High) durch einen internen 
Pull-Up erzeugt, so dass versehentliches externes Anlegen von Low im 
Idle verkraftet wird, oder ist TXD ein Push/Pull-Pin?

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

Das Datenblatt versucht da doch, sehr präzise zu sein.

TxD ist ein normaler digitaler Pin, dessen internes DDR-Bit von der uart 
auf output gesetzt wird.

Oliver

: Bearbeitet durch User
von Andras H. (andras_h)


Lesenswert?

Wenn man angst hat dass jemand extern eine Spannung anlegt, dann sollte 
man dagegen etwas machen. Ein serielle Widerstand könnte hier helfen.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Meinhardt schrieb:
> Wird der Idle-Pegel eines ATMega-UART (High) durch einen internen
> Pull-Up erzeugt, so dass versehentliches externes Anlegen von Low im
> Idle verkraftet wird,

Nein!

Meinhardt schrieb:
> oder ist TXD ein Push/Pull-Pin?

Ja!

Das ist die Standard Konfiguration für UART.
Auch in der AVR Welt.

von Rainer W. (rawi)


Lesenswert?

Meinhardt schrieb:
> Wird der Idle-Pegel eines ATMega-UART (High) durch einen internen
> Pull-Up erzeugt, so dass versehentliches externes Anlegen von Low im
> Idle verkraftet wird, oder ist TXD ein Push/Pull-Pin?

Miss nach, wenn du trotz Datenblatt Zweifel hast.
Hänge einen Widerstand als Last dran und guck dir an, was mit dem Pegel 
passiert. Eine Halbierung der Spannung würde bedeutet, dass die Last 
genauso groß ist, wie die Quellimpedanz. Den Lastwiderstand solltest du 
nicht kleiner wählen, als bei einem Push-Pull Ausgang zulässig wäre, 
d.h. der maximal für den Pin zulässigen Strom darf nicht überschritten 
werden.

: Bearbeitet durch User
von Johannes F. (jofe)


Lesenswert?

Der USART der neueren AVRs hat einen One-Wire- und Open-Drain-Modus, der 
sich anbietet, wenn der TxD-Pin extern auf Low gezogen können werden 
soll:

Datenblatt ATtiny3227, S. 301:
"In the case where one device drives the pin to a logical high level 
(VCC), and another device pulls the line low (GND), a short will occur. 
To accommodate this, the USART features an Open-Drain mode (the ODME bit 
in the USARTn.CTRLB register), which prevents the transmitter from 
driving a pin to a logical high level, thereby constraining it to only 
be able to pull it low."

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Meinhardt schrieb:
> Wird der Idle-Pegel eines ATMega-UART (High) durch einen internen
> Pull-Up erzeugt
Das wäre besonders bei hohen Baudraten ganz arg unpraktisch, denn so ein 
interner Pullup hat gern mal um die 40k, und dann wäre die Zeitkonstante 
für eine l-h-Flanke bei 100pF Lastkapazität immerhin 4µs. Spätestens bei 
Baudraten über 56k/s wäre dann Schluss.

> so dass versehentliches externes Anlegen von Low im
> Idle verkraftet wird oder ist TXD ein Push/Pull-Pin?
Ja, ist er. Aber auch der "verkrafet" es, wenn du von aussen mal Masse 
anlegst. Wer sich Sorgen macht, dass ihm sowas öfters passiert, der 
macht direkt an den µC Pin einen 100R Widerstand.

: Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.