Uart von XMega abschalten

Gast #3244905
Hi!

Ich muss für die Erzeugung eines DMX Break Signales mit dem 
ATxmega256A3U
die UART abschalten um den TX Pin auf low ziehen zu können. Das 
Abschalten funktioniert auch. Aber ein Zugriff auf den TX Pin ist dann 
nicht mehr möglich. Das geht nur, bevor die UART initialisiert wurde 
oder nach einem Neustart. Kennt jemand das Problem?


SG Choose
Gast #3245191
Nö, evtl. falsch abgeschalten?

Lösung ist, die Baudrate so zu verstellen und ein 0x00 Byte in Break 
länge zu schicken... das Stop Byte ist dann das (wie hieß es gleich 
noch? ) egal... wird auch gebraucht... musste mal durchrechnen welche 
Baudrate das war... hab ich gerade nicht im Kopf... aber vorher 
kontrollieren, dass nix gesendet wird!
#3246134
@choose,

also das muss gehen wenn du im CTRLB das TXEN_Bit löschst.

Zitat:
Setting this bit enables the USART transmitter. The transmitter will 
override normal port operation for the TxD pin, when
enabled. Disabling the transmitter (writing TXEN to zero) will not 
become effective until ongoing and pending
transmissions are completed; i.e., when the transmit shift register and 
transmit buffer register do not contain data to be
transmitted. When disabled, the transmitter will no longer override the 
TxD port.

Die Frage die sich mir gerade stellt ist nur, ob beim löschen des Bits 
während einer laufenden Übertragung die Deaktivierung des Transmitters 
nur verschoben wird oder ob sich in dem Fall das TXEN_Bit nicht löschen 
lässt.

Sascha
Gast #5634415
Ein uralter Beitrag - ich weiß. Aber ich hatte gestern das gleiche 
Problem (mit einem AtTiny817) und google hat mich hier her geführt, aber 
das Thema wurde ja noch nicht abschließend behandelt.

Ich konnte das Problem nun (für mich) lösen - vielleicht hilft es jemand 
anderem ja wenn ich hier schreibe wie.

Wenn man den Transmitter abschaltet ist der Pin erstmal automatisch als 
Eingang konfiguriert (steht so auch im Datenblatt). Ich habe durch 
herumprobieren herausgefunden, das ich zwischen "abschalten" und "Ändern 
auf Ausgang" zwei Takte warten muss ("NOP"). Dann gehorcht der Pin auch 
wieder... :)

Viele Grüße
  Andre

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.