Forum: Mikrocontroller und Digitale Elektronik Atmel-Timing-Probleme bei UART - Auswertung TXC


von Danilo (Gast)


Lesenswert?

Hallo,

ich habe mal zwei Fragen zum Timing bei halbduplex RS485-Verbindungen. 
Ich versuche gerade eine Verbindung herzustellen und schalte den 
Transmitter ab nachdem das TXC-Bit 1 ist. Dabei gibt es aber Datensalat. 
Sobald ich Verzögerungsschleifen stattdessen in den Code einfüge 
funktioniert alles zuverlässig. In diversen Forenbeiträge hier liest man 
von ähnlichen Problemen.

1. Das TXC-Bit im UCSRA-Register (Mega8) scheint ja schon eher als der 
gesamte Frame über das TxD-Pin geschickt wird auf 1 zu gehen. Ist das 
wirklich so? Das wäre ja ein arger Bug....

2. In einigen Beiträgen liest man, dass zum Schreiben einer Null auf das 
TXC-Bit eine inverse Logik benutzt werden soll. Also eine 1 schreiben 
statt einer Null.
Stimmt das?

Danke
Danilo

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Pollst Du das Bit oder nutzt Du den TXC-Interrupt?

von Danilo (Gast)


Lesenswert?

Ich polle...

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


Lesenswert?

> Stimmt das?
Was sagt das Datenblatt?
1
The TXC Flag bit is automatically cleared when a transmit complete interrupt
2
is executed, or it can be cleared by writing a one to its bit location.

> Ist das wirklich so?
Wozu gibt es eigentlich Datenblätter?

von spess53 (Gast)


Lesenswert?

Hi

>1. Das TXC-Bit im UCSRA-Register (Mega8) scheint ja schon eher als der
>gesamte Frame über das TxD-Pin geschickt wird auf 1 zu gehen. Ist das
>wirklich so? Das wäre ja ein arger Bug....

Kann ich aus eigener Erfahrung nicht bestätigen.

>2. In einigen Beiträgen liest man, dass zum Schreiben einer Null auf das
>TXC-Bit eine inverse Logik benutzt werden soll. Also eine 1 schreiben
>statt einer Null.
>Stimmt das?

Ja. Steht sogar im Datenblatt.

Wenn du TXC pollst und nicht weisst, wie das Bit zurückzusetzen ist, 
dann liegt der Bug wohl bei dir.

MfG Spess

von Danilo (Gast)


Lesenswert?

Danke Leute.

...can be cleared by writing a ONE to its bit location.... ich glaube 
das habe ich zu flüchtig gelesen.

Probier ich heute abend gleich mal aus.

Danke nochmals!

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.