Autor |
UART Pegel invertieren ATTINY2313 |
|
|
|
|
BID = 593124
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
|
Hallo
Ich habe eine serielle Verbindung zwischen 2 Mikrocontrollern, die funktioniert auch.
Das Problem: Wenn gerade nichts geschickt wird ist die Spannung am Kanal high also nahe Vcc. Das Startbit ist dann low also fast 0 un dann kommen die Daten. Das schmeckt mir aber nicht, wenn nichts verschickt wird soll auch die Spannung am Kanal 0 sein! Man könnte das natürlich ganz einfach elektrisch lösen und beim Sender und Empänger jeweils einen Invertierer vorschalten. Das geht aber leider nicht mehr, die Platinen sind schon fertig, zum neu machen ist es zu spät.
Kann man das nicht per Software invertieren?
mfg Fritz
_________________
|
|
BID = 593142
ElektroNicki Inventar
Beiträge: 6429 Wohnort: Ugobangowangohousen
|
|
Nanu? Die nicht vorhandene Invertierung hebt sich doch auf?
minus mal minus....
_________________
|
|
BID = 593173
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Ja ich weiß schon dass 2 mal invertiert nichts bringt! Aber ich will ja nur den Kanal selbst invertieren, der Empfänger soll dann wieder das originale Signal empfangen.
Ich skizzier das mal:
Sender--------Invertierer-------Kanal--------Invertierer-----Empfänger
Nur soll das invertieren jetzt der Sender und Empfänger selber können.
_________________
|
BID = 593179
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Nur soll das invertieren jetzt der Sender und Empfänger selber können. |
Kann er aber nicht.
Es sei denn, du hast genug Rechenleistung übrig und schreibst dir einen Software UART.
Wenn du lange Pausen zwischen den Übertragungen hast, kannst du den Sender abschalten und einen normalen Portpin draus machen, in den du eine 0 programmierst.
Ein normaler UART-Empfänger sieht dann ein nicht endendes Startbit und produziert daraus einen Framing Error. Das entspricht der Break-Condition und davon erholt er sich recht schnell wenn du den Sender wieder einschaltest. Teilweise interessieren sich die UARTs auch nicht für das was auf RxD vorsichgeht, wenn sie mittels Handshakeleitung abgeschaltet sind.
Wie das genau beim 2313 geregelt ist, musst du mal nachlesen.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 593186
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Zitat :
| Wenn du lange Pausen zwischen den Übertragungen hast, kannst du den Sender abschalten und einen normalen Portpin draus machen, in den du eine 0 programmierst. |
Das hab ich mir auch schon überlegt, aber ist halt nicht so elegant nach jedem übertragenen Datensatz ganz bewusst einen Frame Error zu erzeugen.
Zitat :
|
Es sei denn, du hast genug Rechenleistung übrig und schreibst dir einen Software UART. |
Nein hab ich leider nicht.
Zitat :
|
Teilweise interessieren sich die UARTs auch nicht für das was auf RxD vorsichgeht, wenn sie mittels Handshakeleitung abgeschaltet sind. |
Das geht leider auch nicht, da ich nur einen Kanal zur Verfügung habe. Ich kann nur die Daten selbst übertragen und zwar asynchron.
Wozu ist das generel gut das bei diversen ICs immer wieder irgendwelche PINs invertiert sind? Wozu ist zb. der Reset Pin invertiert, es wär doch viel logischer ihn mit einem Widerstand auf Masse zu ziehen und nur bei Bedarf auf Vcc zu bringen.
Beim UART seh ich das überhaupt nicht ein, das heißt doch wenn ich keinen Sender angeschlossen habe empfängt der Empfänger in einer Tour nur Frame Errors!
Pflanzerei
mfg Fritz
_________________
|
BID = 593193
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Wozu ist zb. der Reset Pin invertiert, es wär doch viel logischer ihn mit einem Widerstand auf Masse zu ziehen und nur bei Bedarf auf Vcc zu bringen. |
Das gibt es auch.
Im Falle der elektrisch programmierbaren Mikrocontroller, dient der Reset-Eingang aber oft auch als Eingang für eine hohe Programmierspannung. Ausserdem muss während der Programmierung die interne Maschinerie meist arbeiten.
Dann wäre es fatal, wenn sie durch eine positive Spannung in Nullstellung festgehalten würde.
Die Vorliebe für die negative Logik liegt sonst meist daran, dass npn-Transistoren und N-Kanal-FETs bessere elektrische Eigenschaften haben, als die entsprechenden Komplementärypen.
Deshalb setzt man sie bevorzugt in Wired-OR und Open-Drain oder Open-Collector Ausgängen ein.
Zitat :
| Beim UART seh ich das überhaupt nicht ein, das heißt doch wenn ich keinen Sender angeschlossen habe empfängt der Empfänger in einer Tour nur Frame Errors! |
Nein, denn die UART-Pins gehen so gut wie nie direkt auf die Leitung, sondern immer über invertierende Treiber wie 1488 und 1489 (Später dann entsprechende MAXe).
Das beschert dem UART ein längeres Leben und ermöglicht auch unterschiedliche Übertragungstechniken wie z.B. RS232, RS488, Current-Loop.
Der einfachste Leitungstreiber oder -empfänger ist aber eben ein simpler Transistor und der invertiert nun mal.
Eine offene Leitung liefert dann folgerichtig auch HIGH am UART ab.
|
BID = 593247
Nukeman Schriftsteller
Beiträge: 754 Wohnort: bei Kleve
|
Hallo ffeichtinger
Was genau passt Dir an dem Ruhe-High-Pegel denn nicht? Ist es rein ästhestisch,
oder soll der Portpin noch für was anderes benutzt werden?
Wenn Dich die Frame-Errors bei offenem Pin stören, löte doch lokal einen 20k
Pullup rein ( wenn das IC nicht schon von selbst in Richtung High floated ).
Platz für einen SMD-Wid sollte eigentlich immer sein.
Oder vielleicht kannst Du auch auf normalen Portbetrieb umschalten und die
internen Pullups aktivieren.
Gruß
Stefan
|
BID = 593287
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Die Verbindung soll dann später via Funk passieren, mit einfacher OOK Modulation. Da ist es schlecht wenn im Leerlauf ständig Leistung verbraten wird.
_________________
|
BID = 593312
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Verbindung soll dann später via Funk passieren, mit einfacher OOK Modulation. |
Ist das zulässig ?
Meist nur noch FM oder ähnliche Verfahren weil intensitätsveränderliche Träger Störungen verursachen können.
Handys sind das beste schlechte Beispiel dafür.
|