UART Empfang mit BASCOM AVR bei verschiedener Stringlänge

OP #2207343
Lesenswert?
• ▲
▼
Hallo,

Ich habe hier einen µc der einige Schaltzustände ausliest und sie dann 
anzeigt. Jetzt möchte ich ca. 20m weiter eine weitere Anzeige der 
Zustände haben. Der erste µc sendet die Daten via UART.
Programmiert wird in Basic (Bascom AVR)
Aufgrund der Entfernung scheidet I2C aus. Ich habe dann einen RS485 
Sender angeschlossen und dort, wo die zweite Anzeige entstehen soll 
einen RS485 Empfänger. Schließe ich diesen jetzt an einen PC an, klappt 
alles wunderbar. Die Daten kommen korrekt an.
Jetzt möchte ich aber die Daten mit einem zweiten µC empfangen. Das 
klappt leider nicht.
Der Sender sendet (abhängig von den Zuständen der Schalter):

Print „T1: offen“
Waitms 1
Print „T2: zu“
Waitms 1
Print „T3: offen“
Waitms 1
Print „L1: an“
Waitms 1
Print „L2: aus“
Waitms 1
Usw….

Da der Empfänger (MEGA 8515 / Baud:19200) die Daten nur mittels LED 
anzeigen soll, hat der µc keine weiteren Aufgaben zu bewältigen.
Dementsprechend habe ich versucht das ganze mittels INPUT zu empfangen 
und erst mal über UART ein Echo zu erzeugen, was dann an einen PC geht 
um zu sehen, ob der µc korrekt empfängt. Leider tut er das nicht. Er 
empfängt z.B. anstatt „T1: offen“, „TT: offen“ oder „T:offen“ oder “1: 
offen“ oder „T“. Also nichts regelmäßiges.

Bezüglich des Input Befehls bin ich ein wenig verwirrt. Einmal heißt es, 
Input empfängt solange Daten bis ein Retrun gesendet wird, was ja bei 
jedem Printbefehl am Ende geschehen sollte, manchmal liest man aber, 
dass Input solange watet bis der String voll ist. Liegt es daran und wie 
könnte man den Empfang sonst bei unterschiedlich langen Strings 
gestalten? Was ich bisher gesehen habe bezog sich immer auf die gleiche 
Stringlänge.
OP #2207513
Lesenswert?
• ▲
▼
Hallo,

Tja, das mit dem Übertragungsfehler habe ich mir auch estmal so gedacht. 
Allerdings weiß ich nicht woran das liegen sollte? Wie gesagt ein PC 
emfängt die Daten problemlos. Wenn ich den Empfänger µc an den PC 
anschließe und ihm mehrere Zeichen sende, dann funktioniert auch das 
einwandfrei.

Quarz Sender ist 3,686400 MHz und der Empfaänger hat 8 MHz. Baud 19200 
auch getestet wurden 28800 und 9600. immer das gleiche Verhalten. PC 
funktioniert einwandfrei µc nicht.

Ist das denn vom Grudsatz her OK mit RS485 oder sollte man eine ganz 
ander Übertragungsart nehmen?

Wie sieht das mit den Pausen von 1 ms zwischen dem Senden aus? ist das 
nötig oder vielleicht sogar zu kurz? Oder kann man das ganz weg lassen?
OP #2209498
Lesenswert?
• ▲
▼
Hallo,

danke für die Antworten.
Es wird wohl doch am Bus liegen. Als Sender und Empfänger dient jeweils 
ein SN 75176. Laut Datenblatt entspricht er dem EIA 422 Standard. Dieser 
sollte sich ja größtenteils so verhalten, wie ein RS 485 Treiber. Bei 
der Beschaltung habe ich ein wenig gepfuscht. Besagte Terminierung und 
Pulldown nicht berücksichtigt.

Hat vielleicht gerade jemand ein schönes Beispiel für eine ordentliche 
Beschaltung zur Hand?

Oder kann ich Datenausgang B des 75176 mit 2,2K gegen Masse und Ausgang 
A mit 2,2K gegen 5V legen und mit einem 120 Ohm Widerstand A und B 
verbinden? Mache ich das dann sowohl auf der Sender als auch auf der 
Empfängerseite so?

Antwort schreiben

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.

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.