Forum: Mikrocontroller und Digitale Elektronik Unsauberes UART Signal


von M. G. (ixil96)


Angehängte Dateien:

Lesenswert?

Hallo,

ich verwende einen STM32L010 Controller und wenn ich über die Tx-Leitung 
Daten an den Teilnehmer sende, (@ 57600 b/s) erhalte ich ein etwas 
unsauberes low-Signal (siehe Bild). Das low-Signal wird hier wie es 
aussieht beim Sampling um ca. 0.2V hoch gezogen.

Kann ich das ohne Kopfweh so belassen oder muss ich hier in weiterer 
Folge mit Problemen rechnen?

von S. R. (svenska)


Lesenswert?

Hängt vom Empfänger ab, was er maximal als LOW sehen will.

Normales LVTTL (3.3V) definiert alles unter 0.8V (eingangsseitig) bzw. 
0.4V (ausgangsseitig) als low. Deine 0.2V sind also vollkommen in 
Ordnung.

von Stefan F. (Gast)


Lesenswert?

Das ist schon in Ordnung. Der Effekt könnte mit der begrenzten 
Slew-Rate* des Ausgangs zusammen hängen.

*) Das ist etwas gutes.

von Wolfgang (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der Effekt könnte mit der begrenzten
> Slew-Rate* des Ausgangs zusammen hängen.

Was soll eine Begrenzung der Flankensteigung mit dieser 25kHz Störung 
auf dem Gnd-Level zu tun haben?

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> Was soll eine Begrenzung der Flankensteigung mit dieser 25kHz Störung
> auf dem Gnd-Level zu tun haben?

Beim Wechsel von High nach Low erhöht der Chip vermutlich die Stärke 
seines Ausgangstreibers. Danach (in der Mitte des Bits) fährt er die 
Leistung wieder zurück auf den minimalen Wert.

Ist nur so eine Idee. Ich kenne ähnliche Bilder von irgendeinem anderen 
Mikrocontroller (welchen habe ich vergessen) der sich so bei High Pegeln 
verhält.

von Jacko (Gast)


Lesenswert?

"Daten an den Teilnehmer" hat den Info-Gehalt NULL:

Schau doch lieber nach den maximalen Low-Pegeln und
minimalen High-Pegeln jeweils für Ein- und Ausgang der
beteiligten Logik-Familien im erlaubten Betriebsspannungs-
bereich.

Wird noch ein MAX232 o.ä. dazwischengeschaltet, sind dessen
Ein- und Ausgänge entsprechend zu bewerten.

So lange max-Low-Out < max-Low-In und min-High-Out > min-High-In
ist, ist alles im grünen Bereich.

Auch für deinen STM32L010 solltest du Angaben im Datenblatt
finden, ob deine gemessene Low-Out-Spannung im erlaubten
Bereich liegt.

von Wolfgang (Gast)


Lesenswert?

Stefanus F. schrieb:
> Beim Wechsel von High nach Low erhöht der Chip vermutlich die Stärke
> seines Ausgangstreibers. ...

Diese Erklärung würde zum Signalverlauf passen.

Prüfen könnte man diese Hypothese, indem man die Last während des 
Low-Pegels erhöht. Ein an den TX Ausgang gehängter zusätzlicher Pull-Up 
Widerstand würde den Treiber etwas fordern und man könnte die 
Pegelverschiebung mit/ohne Pull-Up vergleicht.
8mA soll der Treiber vertragen, d.h. bis runter auf 470Ω kann man gut 
gehen.

Im Datenblatt sollte auch etwas zum Treiberverhalten bei den 
verschiedenen Stromsparmodi stehen.

von Peter D. (peda)


Lesenswert?

Stefanus F. schrieb:
> Der Effekt könnte mit der begrenzten
> Slew-Rate* des Ausgangs zusammen hängen.

Dann wäre der Effekt genau umgekehrt, d.h. eine langsame Flanke.
Der Anstieg um 0,2V ~10µs nach der Flanke sieht eher nach 2 Ausgängen 
aus, die gegeneinander kämpfen.
Könnte aber auch ein spezieller 1-Draht Mode sein, z.B. LIN-Bus.

von Wolfgang (Gast)


Lesenswert?

... mal ganz davon abgesehen, dass eine Slew-Rate Begrenzung die Aufgabe 
eines Bustreibers wäre. Der TX-Ausgang des µC ist ein digitaler Ausgang, 
der direkt mit dem physischen Bussignal gar nichts zu tun hat.

von Stefan F. (Gast)



Lesenswert?

Wolfgang schrieb:
> al ganz davon abgesehen, dass eine Slew-Rate Begrenzung die Aufgabe
> eines Bustreibers wäre. Der TX-Ausgang des µC ist ein digitaler Ausgang,

Man kann das für alle I/O Pins einstellen, nicht nur für Bustreiber.

von A. S. (Gast)


Lesenswert?

An den TO: das Signal ist okay, doch kannst Du bitte einen Schaltplan 
Posten, oder genauer den Aufbau beschreiben?

Das ist sicher keine Pegelbachführung, sondern irgendein R/C wo wir es 
Mangels Schaltplan nicht vermuten.

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


Lesenswert?

M. G. schrieb:
> ich verwende einen STM32L010 Controller und wenn ich über die Tx-Leitung
> Daten an den Teilnehmer sende, (@ 57600 b/s) erhalte ich ein etwas
> unsauberes low-Signal (siehe Bild).
Wie lang ist die Leitung und wie ist sie ausgeführt? Passende 
Masseleitung dabei? Irgendein Pullup auf der Leitung? Was ist "der 
Teilnehmer"?

Stefanus F. schrieb:
> Ich kenne ähnliche Bilder von irgendeinem anderen Mikrocontroller
> (welchen habe ich vergessen) der sich so bei High Pegeln verhält.
Der 8051 schaltet für 2 Oszillatorperioden einen niederohmigen 
Pullup-Transistor parallel zum "Standard-Pullup" des Ausgangstreibers, 
damit die low-high-Flanke wenigstens halbwegs nach Flanke aussieht:
https://www.ipd.kit.edu/mitarbeiter/buchmann/microcontroller/ansteuerung.htm

von Stefan F. (Gast)


Lesenswert?

Lothar M. schrieb:
> Der 8051

Der wird es gewesen sein.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Stefanus F. schrieb:
> Der wird es gewesen sein.

Hi,
ist das der?

Und läuft ohne Eprom nicht.

ciao
gustav

von Stefan F. (Gast)


Lesenswert?

Nicht genau der, aber irgendein 8051 derivat. Ich hatte eine Zeit lang 
mit 89C2051 gebastelt.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi,
da es um UART ging, hier ein Beispiel, wie das bei der 
Prozessorgeneration aussah. Das "Betriebssystem" ist also der UART auf 
dem EPROM.
Kann dann nur die LEDs leuchten lassen.
Sonst nichts. Seriell Parallelwandler.
Mal gucken, wie das File in asm-Format aussieht.

ciao
gustav

von ... (Gast)


Lesenswert?

Es wuerde ja reichen, den Empfaenger abzuklemmen und
sich das TX-Signal dann noch einmal anzusehen.

Das ein L-Pegel so bescheiden aussieht, ist bei den
heutigen CMOS-Treibern eher ungewoehnlich.
Selbst wenn der Treiber auf "Very weak" steht.

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.