Hallo! Wir arbeiten an einem Projekt mit dem XMEGA128A3 und wollen mit RS485 BUS über die UART Daten übertragen. Folgendes Problem: Während der Übertragung müssen wir den Tx-Pin auf Low bzw. High setzen. Während die UART aktiviert ist kann man auf die Pins jedoch nicht zugreifen. Deaktiviert man den Tx-Pin so wird dieser als Eingang gesetzt. Wird er wieder als Ausgang deklariert entsteht ein kurzer High-Pegel der als falsches Bit erkennt wird. Frage: Wie kann der Tx-Pin zwischen 2 zu übertragenden Bits verändert werden, ohne, dass das einen Einfluss auf die restliche Übertragung hat?
Versuch mal den PIN zu invertieren... das Funktioniert auch mit USART, bin mir aber nicht sicher wie sich ein nachträgliches Invertieren auswirkt... Grüße Basti
Halt, ist das ein Schreibfehler? Meinst du zwischen zwei Bytes? Zwei Bit kannst du ja recht schlecht mit deinem Programm syncronisieren... Ansonsten mal veraten was es werden soll, da gibts sicher noch andere Lösungen Grüße
Ja es heißt zwischen 2 Bytes Für die Ansteuerung eines Gerätes müssen wir 3 Bytes Senden Tx Low setzen, 3 Bytes senden Tx Low - High setzen und dann zum Schluss 255 senden.
Ja also das ginge dann nur mit einem zeitweisen Invertieren des Pins. Dazu müsstest Du Dir eine Timerroutine bauen, die das Invertieren dann nach praktisch 3 Bytelaufzeiten wieder zurücknimmt.
danke für den Tipp, aber haben wir bereits ausprobiert, dadurch wird jedoch der TX Pin automatisch als Eingang konfiguriert. Wenn wir ihn jedoch wieder als Eingang konfigurieren entsteht eine Spannungsspitze. Mit einem LogicAnalyzer sieht es folgender Maßen aus:
Hi >Wenn wir ihn >jedoch wieder als Eingang konfigurieren entsteht eine Spannungsspitze. Die Spannungsspitze ist das von euch kastrierte Stoppbit. MfG Spess
Ein Pulldown-Widerstand am TX-Pin schafft für die nachfolgende Schaltung einen definierten Pegel, wenn der TX-Pin denn hochohmig werden sollte. Erlaubt der USART (kenn den Prozessor nicht) nicht auch das senden eines Breaksignals?
Promas schrieb: > danke für den Tipp, aber haben wir bereits ausprobiert, dadurch wird > jedoch der TX Pin automatisch als Eingang konfiguriert. Wenn der Pin per Portconfig-Bit invertiert wird, wird der TX-Pin nicht als Eingang deklariert.
spontan schrieb: > Erlaubt der USART (kenn den Prozessor nicht) nicht auch das senden eines > Breaksignals? Dazu haben wir im Datenblatt nichts gefunden. Knut Ballhause schrieb: > Wenn der Pin per Portconfig-Bit invertiert wird, wird der TX-Pin nicht > als Eingang deklariert. Das war auf deinen gelöschten Beitrag bezogen. Haben den Code jetzt umstrukturiert auf die "invertierende Methode" und werden es am Nachmittag testen. lg
Promas schrieb: > Das war auf deinen gelöschten Beitrag bezogen. Yep, war zu schnell und hatte erst dann Deinen Beitrag weiter oben gelesen ;-).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.