Hallo Zusammen! Ich sitze gerade an einer Kommunikation zwischen mehreren µC. Ich verwende ATmega16. Die Kommunikatin erfolgt über SN75176 aus der USART auf RS485. Die Datenübertragung steht mit 9600Baud. Einer meiner Controller ist als Master definiert und sendet Anfragen an die anderen Controller im Format "1 Startbit - 8 Datenbit - 2 Stoppbit" wobei vom Master ein Adressbyte gefolgt von 3 Datenbyte gesendet werden. Der mittels Adressbyte angesprochene Slave anwortet mit "1 Adressbyte + 1 Datenbyte". Da das ganze über 2 Drahtleitung funktioniert, muss ich den Bustreiber entsprechend von Senden auf Empfangen oder umgekehrt umschalten. Das funktioniert auch super. Die Kommunikation ist in Master und Slave gleich aufgebaut, nur das dem Master die Verwaltung (Polling mit Time Out, um bei fehlender Antwort mit anderem µC weiter zu machen) zugefügt ist. Soviel zum Aufbau. Nun habe ich beim Empfangen vom Slave Probleme im Datenempfang. Ich gucke mir auf dem Oszi die Daten sowie die Bustreiberumschaltung an und kann erkennen, dass der Master wohl ab und an das Startbit nicht erkennt. Sendet ein Slave Daten, bei dem das LSB=0 ist, funktiniert alles super, ist das LSB jedoch 1, dann läufts aus der Bahn, erkennbar an der Zeitverschiebung für die Umschaltung von empfangen auf senden sowie in der Darstellung des empfangenen Byte-Wertes auf LEDs. senden von 0x3F führt zur Anzeige von 0x3F um Wechsel mit 0xFE senden von 0x1F führt zur Anzeige von 0x1F um Wechsel mit 0xFC Hat jemand eine Idee, woran das liegen könnte? die 2 Stoppbits vom Adressbyte sind deutlich erkennbar, auch das Startbit des Datenbytes ist vorhanden. Die gerade sendende USART lädt das folgende zu sendende Byte bei "UDRIE" nach. Bei Senden des letzten Bytes, wird auf "TXIE" umgeschaltet, damit gleich nach Senden des letzten Bytes auf Empfangen umgeschaltet werden kann. Ich weiss nun wirklich nicht, woran das liegen soll und grüble bereits 2 Nächte drüber. Ein "DATA OVERRUN" ist nicht feststellbar. "U2X" ist abgeschaltet. Ich weiss, dass hier einige Gurus unterwegs sind, währe schön, wenn Ihr mir nen Tip geben könntet, denn ich wüsste nicht, wo da in der Software ein Problem sein sollte, da das Problem zwischen 2 Bytes ohne Richtungsumschaltung auftaucht. MfG Nicky
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.