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

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.