AVR: Problem Übertragungsgeschwindigkeit

OP #1940786
Lesenswert?

Hallo zusammen,

ich bin gerade dabei einen kleinen Teil des MODBus Protokolls auf einem 
Atmega32 zu integrieren. Ich habe aktuell das Problem, dass die Zeit zum 
Empfangen eines Zeichens nicht mit der Zeit laut Baudrate übereinstimmt.

Die Baudrate ist auf 9600 eingestellt, wenn ich einen 8 bit Timer beim 
ersten empfangen zeichen starte und nach Empfang der gesamten Bootschaft 
ausgebe, bekomme ich Zeiten die für mich unerklärlich sind.

11 Bit sind ein Frame und somit komme ich bei einer Baudrate von 9600 
auf eine Zeit pro Frame von 1,1458ms. Der gemessene Wert mittels Timer 
beträgt aber im Schnitt pro Frame ca. 4,5 - 4,6 ms. Kann mir jemand 
sagen, wo mein Fehler liegt?


Vielen Dank im Vorraus!

Gruss

Sebi
OP #1940851
Lesenswert?

Das verstehe ich, aber nach dem Protokoll von MODBus für serielle 
Übertragung darf zwischen 2 Zeichen maximal 1,5 * Framezeit liegen. Die 
Zeit zwischen senden des ersten Frame bis zum nächsten darf 2,5 * 
Framezeit, also 2,86ms sein.

Zwiscchen request und respones muss beim MODBus eine Zeit von 3,5 Frame 
liegen. Dieses Kriterium wollte ich zum erkennen des Ende eines Frames 
und zum "Startschuss" für die respones nehmen.

Das ist so aber leider nicht möglich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren