Forum: Mikrocontroller und Digitale Elektronik USART Problem Startbiterkennung


von Ncky (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.