Forum: Mikrocontroller und Digitale Elektronik Max Baudrate einen ATMega ?


von Thorsten L. (tlauf)


Lesenswert?

Hallo,

ich möchte ein RS485 Netzwerk aufbauen.Jetzt habe ich gelesen, das ein
Max-485 bis zu 2,5 Mbit laut Datasheet beherscht.

Meine Frage:
Wie hoch kann man mit der Baudrate eines ATMega 32 16Mhz eigentlich
gehen?

Danke im vorraus !
Thorsten

von Sssssss (Gast)


Lesenswert?

Steht im Datenblatt ;)
Irgendwo hinten is ne Tabelle. Bin grad zu faul zum suchen 8)

von Thorsten L. (tlauf)


Lesenswert?

Ahja hab noch nie soweit gesucht :-)

Danke !
Thorsten

von stevko (Gast)


Lesenswert?

Hallo Torsten,

Seite 163 -> 2400bps ... 250k.
Mit meinem Standardquarz(16MHz) ist aber bei 57.6k Feierabend, die
Fehlerrate ist enorm.

Gruß
  Stevko

von Peter Dannegger (Gast)


Lesenswert?

Bei Vorteiler 1, je nach UART-Mode 1MBaud (/16) oder 2MBaud (/8).


Peter

von Thorsten L. (tlauf)


Lesenswert?

@stevko
Hm versteh ich nicht, da steht doch bei 250k 0,5 und 1 Mbit Error 0%
!?
Verwende einen Quarzosszilator von Reichelt 16,00000Mhz

Thorsten

von Daniel B. (khani)


Lesenswert?

Hallo,

zum Thema Baudraten ein paar Anmerkungen ...
1. Wenn man mit einem geraden Quarz oder Taktgeber (also 2^n*1 MHz)
arbeitet, dann kann man bei bestimmten Baudraten 0% Fehlerrate
erreichen. Diese Baudraten sind aber meist nicht dazu geeignet mit
anderen Geräten serielle Verbindungen wie RS232 aufzubauen, da diese
andere Baudraten verwenden.

2. Für die Kommunikation mit anderen Geräten gibt es
baudratenfreundlichen Taktgeber (z.B. 11,592 Mhz oder so, weiß ich
jetzt nicht genau). Mit denen erreicht man bei den
kommunkationsüblichen Baudraten (z.B. 57,6 kBaud) immer 0% Fehler.

3. Der Fehler am Mikrocontroller wirkt zusätzlich zu einem Fehler des
Baudratengebers im anderen Gerät (z.B. PC) - dieses gehen auch nicht
hundertprozentig genau - ich hatt da schon einige interessante Sachen
gemessen.

4. Wenn man einen geraden Takt verwenden möchte (oder muss), dann kommt
es bei der möglichst schnellen Kommunikation auf die Richtung an. Läuft
beispielsweise der Mikrocontroller mit seiner eingestellten Baudrate
dem Rechner hinterher, dann kommt es beim Empfang von Daten eher zu
Problemen als beim Senden (selbst beobachtet und auch rechnerisch
plausibel). Manchmal kann das Abweichen von den im Datenblatt
angegebenen Einstellungen für den Vorteil etwas bringen - das sind dann
aber Einzelfalllösungen und muss auch für den Einzelfall ausgerechnet
werden.

Zusammenfassend kann man sagen, dass man seine Prioritäten bei der
Auswahl der Baudraten sorgfältig setzen muss. Man muss sich eben die
Frage stellen, ob man die vollen möglichen 16 doer 8 MHz wirklich
braucht (meistens eher nicht). Außerdem muss man such überlegen, wie
wichtig eine schnelle Kommunikation ist - wenn man nicht gerade Dateien
oder große Mengen Messdaten überträgt, dann reichen schon recht niedrige
Datenraten.
Bei einem Entwicklungssystem sollte man berücksichtigen, dass man beim
Einsatz eines Bootloaders mit sehr niedrigen Baudraten unter Umständen
gewisse Wartezeiten in Kauf nehmen muss.


Noch ein Wort zur Messdaten- oder Dateiübertragung via serielle
Schnittstelle. In manchen Fällen ist gar nicht nötig, eine große Menge
Daten üebr die serielle Schnittstelle zu übertragen. Beim Projekt eines
Bekannten wurde das zunächst auch so gelöst (Datenlogger in
Kfz-Umgebung). Es hatten sich da in einem Datenflash-Speicher (war
schon auf der vorgegebenen Hardware integriert) einige MB Daten
angesammelt. Die Übertragung dieser Daten üebr die serielle
Schnittstelle war reglmäßig nervig lang. Da im Programmspeicher eh noch
Platz war und die Hardware schön erweiterbar ausgelegt war, wurde
einfach eine SPI-fähige Speicherkarte integriert und die Daten auf die
Speicherkarte geschrieben - das geht ziemlich fix. Ein weiterer Vorteil
liegt darin, dass der Logger in der Messumgebung verbleiben kann und nur
die Speicherkarte entnommen wird.
Mir ist aber klar, dass es auch andere Anwendungen gibt, in denen ein
Flashmedium oder ähnliche Lösungen inadäquat sind - bei meinem
MP3-Player-Projekt ist das auch so ;-).


MfG, Daniel.

von Thorsten L. (tlauf)


Lesenswert?

Danke für diese Anmerkungen, sehe ich auch alles so, aber ich wollte ein
RS485 Netzwerk aufbauen das ca.250 Signale einlesen soll und soweit wie
möglich in Echtzeit wiedergibt.Dachte auch erst an 19200 Baud.
Es war auch eher eine grundsätzliche Frage.

Also kann ich laut Datasheet davon ausgehen, das (30 ATMega's
untereinander Master/Slave) mit max 1Mbit bei 16Mhz theoretisch 0%
Fehler haben !?

Thorsten

von Daniel B. (khani)


Lesenswert?

Hallo nochmal,

bei 1MBit oder 500kBit oder so schon. bei 19200Baud nicht ....

Wenn Du ein abgeschlossenes System designst, dann kannst Du aus der von
Dir angesprochenen Tabelle einen Werte öfür die Baudrate aussuchen, die
einen Fehler von 0% (Achtung : Das ist nur der Timing-Fehler - da
kommen noch Signal- und Laufzeitfehler dazu !) erzeugt.

MfG, Daniel.

von hans dieter (Gast)


Lesenswert?

mein tip:
anstatt einen 14.7456 MHz Quarz einen 15 MHz Quarz nehmen (weil
einfacher zu beschaffen). Dann ist der Fehler bei 1% die 100ppm des
Quarzes schlagen da nicht mehr so viel dazu.

Der maximale Fehler, bei dem noch eine Kommunikation möglich ist, liegt
bei ca. 3.5%. Wenn man sich im Bereich der Hälfte bewegt ist man immer
noch auf der sicheren seite.

Ausserdem ist man bei rs 485 nicht so sehr an die bei PCs üblichen
baudraten gebunden. Es ist halt immer nur notwendig im gesamten
Netzwerk den kleinsten gemeinsamen nenner als baudrate zu verwenden.

von mmerten (Gast)


Lesenswert?

die RS (EIA) 232 oder auch 485 normen doch nicht irgendwelche festen
Baud-, pardon Bit-Raten sonder eher den elelktrischen Teil der
Schnittstelle. In der PC Technik kann man da wohl nur von üblichen
Geschwindigkeiten im Bereich 1200...115200 Bit/s reden. Bei serieller
Datenübertragung sind durchaus auch andere Bitraten üblich. Kommt halt
immer auf die Anwendung an.

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.