Hallo, habe zwei Baugruppen, die über RS232 möglichst schnell kommunizieren sollen (Mega 16). Dummerweise habe ich 16 MHz Quarze eingesetzt, besser wären ja 14,7456 MHz. Jetz ist mir eingefallen, das der Baudratenfehler doch egal sein müßte, da ja beide sie gleiche Abweichung haben. Ist dem so, oder liege ich da fallsch? Gruß Reinhard
Hallo Ullrich, das ging ja schnell, besten Dank! Gruß Reinhard
Im Datenblatt steht ganz genau! AtMega32_Complete Seite 163 von 344. Examples of Boaud Rate Setting. Bei gleichen Takten wirst du 0% Fehler erreichen.
solange du innerhalb deines Systems bleibst, spricht absolut nichts dagegen, überall z.B. 127,456 kBaud zu verwenden.
Ich glaube Baudreatenfehler bis 7,5% spielen keine Rolle wenn die Daten nicht Rücken an Rücken kommen.
hi! .....nur wirds blöd, wenn du mit dem PC kommunizieren willst, der nimmts nämlich genau. MfG und3rt4ker
Das eintreffen des startbits löst die ganze maschinerie aus. Der logische wert des empfangenen bits wird in der Mitte des dazugehörigen Taktes bestimmt. Damit ist eine gewisse Fehlertoleranz gewährleistet. Liegt zwischen dem stoppbit und dem nächsten startbit eine pause die länger als ein baud (takt) ist, erfolt eine neusynchronisation des sio. Der gesamte Datenrahmen kann bei startbit+8datenbit+stopbit=10bit auch mit einer toleranz (wenn mich nicht alles täuscht sogar 10%, siehe anzahl bits) übetragen werden. Ist das beim PC nicht so?
>Ich glaube Baudreatenfehler bis 7,5% s
Glauben kannst du in der Kirche!
Das Thema mit den Abweichungen hatten wir hier schon öfter...
Die Frage ist eigentlich schon von Ulrich beantwortet worden, trotzdem hier noch eine etwas andere Sichtweise: Wenn du nur zwischen 16-MHz-Systemen kommunizieren willst, solltest du gar nicht erst versuchen, eine "Standard"-Baudrate (z.B. 115200) einzustellen und Fehlerrechnungen anstellen, sondern gleich eine exakt darstellbare Baudrate nehmen, also bspw. 100000 oder 128000. Das hat den Vorteil, dass du dieselbe Baudrate, die im Quellcode steht, auch bei Testmessungen mit dem Oszi sehen oder für Performanceberechnungen verwenden kannst.
Hallo, besten Dank für die vielen Antworten! Die beiden Atmegas (16 und 162) können jetzt problemlos mit 115200 Baud kommunizieren, allerdings hat der Mega 162 ja noch eine zweite Schnittstelle zum Anschluß eines Pocket PCs. Da sind sicher nur 38400 möglich. Auf längere Sicht werde ich die beiden Quarze doch noch austauschen. Übrigens, bei Rowald habe ich gelesen, http://www.rowalt.de/mc/avr/avrboard/03/avrb03.htm das bei der Einrichtung eines Sende oder Empfangspuffers mit Bascon (Config Serialin und Config Serialout)zusätzlicher externer Ram angeschlossen werden muß. Ist dem so, oder bezieht sich das nur auf Prozessoren ohne SRAM Gruß Reinhard
Reinhard wrote: > Die beiden Atmegas (16 und 162) können jetzt problemlos mit 115200 Baud > kommunizieren Das ist Quatsch mit Soße. Bei 16MHz sinds entweder 111 oder 125kBaud. Der Baudratenfehler ergibt sich nicht durch den Unterschied zu irgendeinem Phantasiewert, sondern zwischen den Teilnehmern. Und bei gleichen Quarz und Teilerwert ist der Fehler immer 0. Peter
117.6k geht auch noch bei double speed, das könnte gerade noch klappen mit einem Standard 115,2k-Teilnehmer, knapp über 2%. Ob der 162er den double-speed-mode hat, weiss ich nicht aus dem Kopf.
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.