mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS485 eigenartiges Verhalten


Autor: Juergen G. (jup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin mit meinem Latein wieder mal am Ende und brauche eine zuendende 
Idee.

Ich habe zwei Platinen mit je einem Atmega8 die ueber den UART und RS485 
(MAX485) komunizieren sollen.

Um am Bus zu lauschen habe ich einen MAX485 an einem FT232RL.
Alles Eigenbau und sauber auf Platinen.

Das eigenartige Verhalten besteht darin, dass wenn ich je eine der 
beiden uC-Platinen ueber die MAX485/FT232RL mit dem PC verbinde, 
funktioniert die Kommunikation einwandfrei. Ich kann Befehle die die 
Atmel "verstehen" im Terminal des PC eintippen und die Atmel reagieren 
wie sie sollen.
Schalte ich nun die beiden uC-Platinen zusammen auf den Bus, und einer 
der beiden sendet einen Befehl, dann versteht der andere den Befehl und 
sendet die entsprechende Antwort, doch der Befehl sendende uC empfaengt 
andere Zeichen als der erste sendet.

zBsp:  einer sendet ein "o" dann soll der andere mit "oCCS" antworten.

der eine sendet ein "o" der andere sendet "oCCS" doch der der das o 
gesendet hat empfaengt "k0x0DM0x0D".

Schalte ich das "Lauschgeraet" mit auf den Bus, dann sehe ich im 
Terminal des PC das "o" des Befehl-sendenden uC und das "oCCS" des 
antwortenden uC

Ich habe mit und ohne Terminierung versucht, Pull-Ups an A und Pull-Down 
an B, ohne Erfolg.

Das "k0x0DM0x0D" scheinen keine Hyroglyphen zu sein, denn wenn ich im 
antwortenden uC statt "oCCS" mit "oXXX" antworte kommen andere Zeichen, 
aber immer die selben.



hat einer von Euch eine Idee wo ich suchen soll?

Ju

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem Scope mal die Signale anschauen ? Die drei Busteilnehmer haben 
einen gemeinsamen, mit dem Kabel durchgezogenen GND ? Muessen sie 
unbedingt haben.

Autor: Juergen G. (jup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@hacky

Da wird es noch verwirrender, aber der Idee werd ich mal nachgehen.


Die beiden uC-Platinen haben einen gemeinsamen GND, da eine der beiden 
durch die Stromversorgung der anderen gespeist wird.

Das "Lauschgeraet" ist nur durch A und B mit dem Bus verbunden.

Ju

Autor: Sascha Weber (sascha_w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich nehme an du arbeitest im Halbduplexbetrieb?
Schaltet der zu erst sendende µC den TX-Treiber zu spät aus, so das es 
beim Senden des 2. µC auf dem Bus zu einer Kollision kommt?

Sascha

Autor: Juergen G. (jup)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sascha_w

Halbduplexbetrieb, clar doch, hatte ich vergessen zu erwaehnen.

Das mit dem TX-Enable macht Sinn, das wuerde erklaeren warum andere 
Zeichen ankommen als gesendet werden.

In meinem Programm wird der TX-Enable "manuell" auf High gesetzt wenn 
Daten zu senden vorhanden sind, und der TXC Interrupt des Atmega8 setzt 
Ihn wieder auf Low.
Ich dachte das geht so.

Dann muss Ich jetzt herausfinden wer da zu spaet ist.

Ju

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.