MAX1486 sendet <0> vorangestellt - RS422

Gast #2586169
Lesenswert?
• ▲
▼
Schönen sonnigen Freitag Mittag,

ich bastel hier gerade an einer Schaltung mit einem MAX1486.
Insgesamt sind es 2 Platinen mit jeweils einem ATMEGA128 und einem 
MAX1486.
Es geht darum mit dem RS422 Bus herumzuspielen, auszuprobieren usw.

Am Schluss möchte ich dadurch 2 Endgeräte in meinem RS422 Bus erhalten.
Als Host dient mein PC mit einer RS422 Schnittstellenkarte.

Generelles Problem:
Es werden immer Nullen also NULL Byte von den Clients aus zum Host 
geschickt, bevor es mit der eigentlichen Nachricht losgeht. Ansonsten 
funktioniert die Kommunikation perfekt.

Aufbau u. Ablauf:
Beim Drücken einer Taste (aktuell per Stiftleiste und Jumper) werden 4 
Bytes zum Host geschickt. Dieser soll nichts quittieren sondern einfach 
nur diese Bytes im Terminal anzeigen.

Z.B. Client 1 <STX> <CLIENTID 0x31 > <Taste 0x31> <ETX>
Z.B. Client 2 <STX> <CLIENTID 0x32 > <Taste 0x31> <ETX>

Mehr soll es erstmal nicht sein.

Beschaltung am MAX1486:
BZYA beider Clients parallel beschaltet zum Host.
H/F ist mit GND verbunden, damit ich mit full-publex also 4 Draht 
arbeiten kann.
DE wird vom Prozessor kurz vor dem Senden auf High gesetzt.
Muss ich nach dem setzen von DE eine bestimme Zeit warten oder kann ich 
gleich mit dem Senden beginnen? Kurze Pause (100us), Lange Pause (1ms), 
keine Pause, haben keinen Unterschied gemacht.

Als Prozessor verwende ich jeweils einen ATMEGA128.

Ich bin nicht gut im Erklären. Hoffe es ist nicht zu unverständlich 
beschieben.

Auch Abschlusswiderstände (mit und ohne) haben keinen Unterschied 
gezeigt.

Wenn jemand einen Tip hätte, würde ich mich sehr freuen.

Danke
Gast #2586247
Lesenswert?
• ▲
▼
>> DE wird vom Prozessor kurz vor dem Senden auf High gesetzt.

Erzeugt wahrscheinlich einen Pegelwechsel, der wird als Startbit 
interpretiert, und dann nur Null-Pegel eingelesen. Es gibt zwar kein 
Stoppbit, aber wenn der entstehende Framing Error ignoriert wird, wird 
das als Null-Byte eingelesen.

Passiert auch manchmal bei Controller-Resets oder Anstöpseln einer RS232 
im Betrieb.

1. Versuch es mit den Pull-Ups wie von Falk vorgeschlagen.
2. Leg Deine Software so aus, dass sie damit umgehen kann, weil das 
immer wieder vorkommen kann.

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.