Forum: Compiler & IDEs Oszillationsfrequenz im Projekt FreeModbus


von Owen S. (senmeis)


Lesenswert?

Servus,

ich benutze gerade den FreeModbus Protokollstack für den AVR. Hier die 
Beschreibung vom Readme:

In addition it requires an ATMega168 target microcontroller. The 
microcontroller must be configured for 20Mhz if the binary image is 
going to be used. Otherwise the constant F_CPU in the Makefile must be 
changed and the source code recompiled.

Ein Oszillator von 8MHz soll dafür eingesetzt werden. Müssen noch andere 
Parameter entsprechend angepasst werden ausser dieser Frequenz?

MfG
Senmeis

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:
> Ein Oszillator von 8MHz soll dafür eingesetzt werden.

Um daraus 20 MHz zu erzeugen?

von Stephan (Gast)


Lesenswert?

Hi Senmeis,

da geht mir doch glatt die Hutschur hoch, wenn ich so was lese!!!!!
Modbus ist doch nur ein Protokoll und der Protokollhändler ist 
unabhängig vom Prozessor (Mikrocontroller) und etwaiger IOs. Er benötigt 
nur RAM und Flash. Das was du anpassen musst ist deine Hardware:

1) Welcher AVR? (wichtig für Punkt 3) (das ist aber schon in deinem 
Projekt drin)
2) Welche MB-Funktionen sollen genutzt werden? (Flash / RAM)
3) Wie kommen die Daten zum Händler??? ( RS232  RS422  RS485 / 
Ethernet(TCP))

Jetzt solltest du dir deine Frage selber beantworten können!!!!

hier noch der 100 € Tip: Du nutzt eine andere Frequenz für deinen AVR 
und wahrscheinlich RS232.
Was könnte von der Frequenz im AVR abhängig sein???

sorry, musste mal gesagt werden. Nicht böse gemeint.

mfg
Stephan

von Owen S. (senmeis)


Lesenswert?

Ich verwende einen Atmega128 wie im Projekt, jedoch mit der 
Quarzfrequenz von 8MHz (nicht 20 MHz), deswegen die Frage. Ich denke, es 
reicht mit nur dieser Änderung.

Haben MB-Funktionen mit Flash/RAM zu tun? Die MB-Funktionen befinden 
sich auf dem Application Layer! Egal ob das RS232 oder RS485 ist werden 
alle Daten über UART im Atmega128 ausgetauscht.

MfG
Senmeis

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:
> Ich denke, es
> reicht mit nur dieser Änderung.

Im Prinzip ja, aber nur, falls die sich daraus ergebenden Verarbeitungs-
zeiten dadurch nicht zu lang werden.  Es gibt noch weitere Nebeneffekte,
beispielsweise ist es mit 8 MHz komplett nicht drin, eine UART-Baudrate
von 115200 Bd zu bekommen (egal welcher Vorteiler, der Fehler wird zu
groß), während das bei 20 MHz gerade so machbar wäre (Fehler 1,4 %).
Keine Ahnung, ob das für dein Thema irgendwie von Belang ist.

von Stephan (Gast)


Lesenswert?

Hi
das was Jörg sagte, war mein Wink mit dem Zaunpfahl!!! Aus der "Arbeits" 
Frequenz wird ja auch die Baudrate generiert und die musst du auf jeden 
Fall anpassen, sonst passiert bei dir nichts im Terminal (worst case). 
(schaue nach ob Timer benutzt werden!)

>Haben MB-Funktionen mit Flash/RAM zu tun?
Je nachdem viele Funktionen du einbindest ist der Speicherverbrauch 
(Flash / Ram) recht "hoch".

>Egal ob das RS232 oder RS485 ist werden
>alle Daten über UART im Atmega128 ausgetauscht.
Nicht unbedingt, bei meiner externen UART wars SPI.

mfg
Stephan

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.