atmega8 USART auf 2 TXD aufteilen

Gast #666020
Lesenswert?
• ▲
▼
hi,
ich habe folgendes Problem:
Ich verwende einen Atmega8, und will damit per EIA232 2 Geräte 
ansprechen.
Da ich bei einem davon nur Daten hinschicken muss kann RXD eigentlich 
bleiben wie es ist.

Meine erste Idee:
4081 (AND-Gate) nehmen, richtig verschalten und über den µC dann das 
entsprechende Gate ansteuern.
Geschaltet ist dementsprechend der RXD auf je einen Input von beiden 
Gates und die anderen Inputs auf 2 i/o Pins des µCs.
Laut Datenblatt hat der Baustein transition times von 50-100ns, was
bei meinen 9600baud ausreicht.
Soweit geht das ganze eigentlich auch, über das aktive Gate kommen die 
Daten sauber rüber.
Schalte ich jetzt das Ganze um und sende wieder, kommen über das jetzt 
eigentlich deaktivierte Gate haufenweise Nullbytes.
Interessanter Nebeneffekt: Wenn ich nach Umschalten der Gates noch ein 
delay einbaue, kommen mehr von diesen Nullbytes (bei gleichen gesendeten 
Daten).

Kann mir jemand diesen Effekt erklären?

Für andere Vorschläge zur Realisierung wäre ich natürlich auch dankbar.
Gast #666225
Lesenswert?
• ▲
▼
einen ähnlichen effekt hatte ich, wenn ich während des sendens über UART 
an den PC einen reset über den wachdog durchgeführt habe. ich vermute, 
es kam dadurch, dass ich mitten im byte abgebrochen habe und kein stop 
bit kam.
interessant fand ich, dass am gleichen PC die nullen nur über com1 
reinkamen, jedoch nicht über den USB-COM adapter an COM3...
Gast #666600
Lesenswert?
• ▲
▼
Danke soweit, war tatsächlich ein layer 8 Fehler.
Ich bin (warum auch immer) von 1=H/0=L ausgegangen, und demensprechend 
das das deaktivierte Gate low sein muss.
Andersrum läufts natürlich (mit OR, klar).

@Peter:
Wäre fast die elegantere Lösung, aber soweit genügt mir das.

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