Forum: Mikrocontroller und Digitale Elektronik UART - geringste Baudrate


von Coach (Gast)


Lesenswert?

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.

von Jadeclaw D. (jadeclaw)


Lesenswert?

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.

von TravelRec. (Gast)


Lesenswert?

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?

von Coach (Gast)


Lesenswert?

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.

von A.K. (Gast)


Lesenswert?

Schon mal an eine Software-UART gedacht? Timer-gesteuert nicht grad
schwierig und beliebig langsam.

von Jadeclaw D. (jadeclaw)


Lesenswert?

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.

von Coach (Gast)


Lesenswert?

Nach welchem Prinzip geht man da denn am besten vor?
Signallänge messen und dann entscheiden 0 oder 1?

von A.K. (Gast)


Lesenswert?

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.

von Coach (Gast)


Lesenswert?

Danke Jadeclaw, ich hoffe das wird mir weiterhelfen.

von Coach (Gast)


Lesenswert?

Danke A.K., ich werds erstmal hardwaremäßig probieren. Aber wenns nicht
klappt werd ich wohl nochmal in die tasten hauen müssen...

von peter dannegger (Gast)


Lesenswert?

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

von Wegstabenverbuchsler (Gast)


Lesenswert?

"ich habe ein Übertragungsmedium, das nicht so schnell reagiert."

- Druckluft
- Wasser
- Ahornsirup
- ???

von Rahul (Gast)


Lesenswert?

- menschliche Knochen?

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.