Hallo zusammen! Ich arbeite mit einem ATmega88 und brauche für eine Anwendung eine sehr geringe Baudrate. Muss ich mich an das UBRR-Register halten oder gibts da irgend einen Trick noch niedriger zu kommen? Denn dann wäre ja bei ca. 120 Baud Schluss oder? (bei 8 MHz Takt) Schon mal vielen Dank für eure Tips... Gruß, Coach.
Ein ganz entschiedenes Jein. Mit internem Takt im asynchronen Modus nicht. Da hilft nur CPU-Takt runter. Was die meisten ATMegas können, ist ein synchroner Modus mit externem Takt, der über XCK eingespeist wird. Siehe ab Seite 169 im Datenblatt. Oder Software-UART. Gruss Jadeclaw.
Dann nimm doch den Prozessortakt weiter ´runter: 4MHz -> 60 Baud Dumme Frage: warum willst Du gerade sooo langsam sein, wo jeder doch versucht, schnell fertig zu werden?
Schönen Dank erstmal für die Tips! Nun ja, ich habe ein Übertragungsmedium, das nicht so schnell reagiert. Über das sollen zwei Controller kommunizieren. Aber auch ne dumme Frage: Wir komme ich auf 4 MHz runter? Ich kenne nur den Weg über die Fuses und da gehts ja nur auf 1 MHz.
Schon mal an eine Software-UART gedacht? Timer-gesteuert nicht grad schwierig und beliebig langsam.
Schau mal auf Seite 35: Clock Prescale Register. Da lässt sich der Teiler zwischen Oszillator und Rest des Controllers einstellen. Es ist eine gewisser Ablauf beim Schreiben der Bits einzuhalten. Gruss Jadeclaw.
Nach welchem Prinzip geht man da denn am besten vor? Signallänge messen und dann entscheiden 0 oder 1?
Rad neu erfinden überflüssig, wozu hat man Application Notes. Senden ist trivial. Empfangen: Flanke vom Startbit erkennen (da bietet sich ein entsprechender Interrupt an), das erste Sample nach T/2, alle weiteren nach T.
Danke A.K., ich werds erstmal hardwaremäßig probieren. Aber wenns nicht klappt werd ich wohl nochmal in die tasten hauen müssen...
In der Codesammlung ist ne Software-UART mit T1. Da T1 16Bit ist und Du noch nen Prescaler 1024 reinhauen kannst, kommst Du bis: 8MHz 1024 65536 = 0,1Baud runter. Und egal, wie langsam, der prozentuale Fehler bleibt genau der gleiche. Ein Quarz sollte bei UART Anwendungen daher immer benutzt werden. Mit dem internen RC kanns klappen, muß aber nicht. Was Du mit den Fuses umstellen kannst, ist der interne RC. Peter
"ich habe ein Übertragungsmedium, das nicht so schnell reagiert." - Druckluft - Wasser - Ahornsirup - ???
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.