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
Steht im Datenblatt ;) Irgendwo hinten is ne Tabelle. Bin grad zu faul zum suchen 8)
Hallo Torsten, Seite 163 -> 2400bps ... 250k. Mit meinem Standardquarz(16MHz) ist aber bei 57.6k Feierabend, die Fehlerrate ist enorm. Gruß Stevko
Bei Vorteiler 1, je nach UART-Mode 1MBaud (/16) oder 2MBaud (/8). Peter
@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
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.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.