Unsauberes UART Signal

OP #5993247
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?
Angehängte Dateien:
Gast #5993307
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.
Gast #5993557
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.
Gast #5993625
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.
Gast #5993925
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.
Gast #5994042
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.
Gast #5994145
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.
Moderator (Firma: Titel) Persönliche Seite #5994166
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
Gast #5994872
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren