mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega8 USART auf 2 TXD aufteilen


Autor: ceferus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tippgeber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...richtig verschalten...

...der RXD auf je einen Input...

Das ist wohl nicht richtig.

Autor: ceferus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, typo. ich meinte natürlich TXD

Autor: Ralli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht denn die Schaltung aus?
Wird der Port mit den Umschaltsiggnalen vom Programm richtig 
angesteuert?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Meine erste Idee:

>Schalte ich jetzt das Ganze um und sende wieder, kommen über das jetzt
>eigentlich deaktivierte Gate haufenweise Nullbytes.

Dein deaktivierter Ausgang muss auf HIGH stehen, NICHT LOW. Das ist 
nämlich das Stop-Bit.

MFG
Falk

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OR statt AND.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Codesammlung SW-UART, bei lahmen 9600 Baud überhaupt kein Problem.


Peter

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andreas Kaiser (a-k)

>OR statt AND.

OR gleich einen fertigen 2:1 MUX nehmen ;-)

MFG
Falk

Autor: stringcreater (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> OR gleich einen fertigen 2:1 MUX nehmen ;-)

Analog-Mux? Dann +2xR sonst offen. Eher schon einen Demux, einen halben 
'139 oder so.

Autor: ceferus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.