Forum: Mikrocontroller und Digitale Elektronik Mit 1MHz µC Takt und 19200Baud UART, geht das?


von store (Gast)


Lesenswert?

Hallo Leute, wollte mal nachfragen ob es möglich ist, mit einem 1MHz µC 
Takt 19200 Bauds über die UART zu übertragen....
Danke und schönen Abend

von Matthias L. (Gast)


Lesenswert?

Eine Rechnung oder die Beispieltabellen für Baudraten im Datenblatt 
werden es dir verraten....

von Bernd K. (Gast)


Lesenswert?

willst du dir UART aus dem DCO berechnen oder hast du einen 1MHz Quarz?

von store (Gast)


Lesenswert?

Mein Mega8 ist mit internem takt ausgestattet und der beträgt 1 MHz, im 
Datenblatt finde ich die Angabe leider nicht, ob ich noch in dem 
Toleranzbereich liege, oder ob ich mit 1MHz gar keine 19200 für die Uart 
realisieren kann. Bisher hatte ich immer einen "Krummen" Quarz von 
3,686400MHz :-(

Danke und gruss nochmal

von Otto (Gast)


Lesenswert?

Mit dem internen Takt wird das sowieso nichts.....

Otto

von Skriptor (Gast)


Lesenswert?

Wir sprechen doch von AVR? Dann geht das locker. Abgesehen vom etwas 
unstabilen/ungenauen Oszillator.

von Skriptor (Gast)


Lesenswert?

Ehm, nö geht doch nicht :-) 9600 wäre schön machbar, aber nicht mehr 
19200, sorry.

von Jean P. (fubu1000)


Lesenswert?

@Skriptor: ja ne is klar mit 7-8,5 % Ungenauigkeit wird das nen tolles 
Gedudel auf der Schnittstelle.

Gruß


P.S: Fehler rechtzeitig erkannt Skriptor ;-)

von hans (Gast)


Lesenswert?

Das geht im Prinzip schon bei AVR, aber!!!

1MHz und 2 MHz ergeben einen Fehler von 7-8% bei 19200 -> geht nicht !!

4MHz und 8 MHz ergeben einen Fehler von 0.2% bei 19200 -> geht  !!

(2MHz doppelSpeed geht auch)

Jedoch : - Abgleich mit OSCCAL erforderlich
         - Werte nur für 5V und Zimmertemperatur
           (sonst selber einmessen)
         - Drift beachten

Für Hobbybereich verwendbar

gruß hans

von store (Gast)


Lesenswert?

ich sag mal so, ich will auf der schnittstelle eh nicht stundenlang 
dudeln, nur ab und zu mal ein signal senden. dafür würden eigentlich 
auch 9200 reichen, oder? wie gross ist der fehler bei 9200 bauds? wie 
berechnet ihr das eigentlich???
Danke und LG

von store (Gast)


Lesenswert?

ähm ich mein 9600

von Michael H* (Gast)


Lesenswert?

store wrote:
> auch 9200 reichen, oder? wie gross ist der fehler bei 9200 bauds? wie
> berechnet ihr das eigentlich???
das steht doch alles im datenblatt und in ein paar appnotes... meinst du 
wirklich, du bist der erste mensch auf erden, der die uart benutzen 
will??

von hans (Gast)


Lesenswert?

@holli
Ich hätte jetzt das AVR-GCC-Tutorial Kapitel 12 UART erwähnt aber 
Datenblatt ist auch hilfreich!

gruß hans

von David (Gast)


Lesenswert?

Baudratenquarz verwenden... Datenblatt lesen... problem inexestent...

von Johannes M. (johnny-m)


Lesenswert?

David wrote:
> Baudratenquarz verwenden... Datenblatt lesen... problem inexestent...
Unsinn, für die meisten "handelsüblichen" Baudraten braucht man keinen 
speziellen "Baudratenquarz". Mit einem 4 MHz-Quarz sind alle Baudraten 
bis einschl. 19,2 kBd, mit einem 8 MHz-Quarz bis 38,4 kBd (abgesehen von 
den nicht so verbreiteten 28,8 kBd) ausreichend genau einstellbar. Mit 
16 MHz biste sogar bis 76,8 kBd dabei. Einen Baudratenquarz braucht's 
eigentlich nur dann, wenn entweder eine ganz bestimmte, anders nicht 
machbare Baudrate benötigt wird, oder wenn man flexibel sein muss und 
wirklich alle üblichen Baudraten zur Verfügung stehen müssen.

von (prx) A. K. (prx)


Lesenswert?

Wenn man schon den internen Oszillator verwenden will, dann geht 
natürlich auch 19200 bei 1MHz, so gut oder schlecht das mit dem internen 
überhaupt geht. Denn 7-8% Abweichung kann man über OSCCAL ausgleichen - 
sind dann halt nicht mehr genau 1MHz.

von Reinhard R. (reirawb)


Lesenswert?

Was hält dich eigentlich davon ab, den internen Takt auf 4 oder 8 MHz zu 
erhöhen? Keine Angst vor den Fuses :-)

Reinhard

von Falk B. (falk)


Lesenswert?

@Reinhard Richter (reirawb)

>Was hält dich eigentlich davon ab, den internen Takt auf 4 oder 8 MHz zu
>erhöhen? Keine Angst vor den Fuses :-)

Dadurch wird er auch nicht genauer. Ich hab vor kurzem einen Mega88 mit 
2 MHz RC-Oszillator per OSCCAL auf 1,8432 MHz kalibriert (automatisch 
per Uhrenquarz), damit klappts auch mit den Baudraten.

Nicht ein hoher Takt ist notwendig, sondern ein genauer.

MFG
Falk

von Matthias L. (Gast)


Lesenswert?

>per OSCCAL auf 1,8432 MHz kalibriert ..

Da bist du aber davon ausgegangen, dass der Uhrenquartz entsprechend 
genau ist...?

von PeterL (Gast)


Lesenswert?

wenn 9600 auch reicht, reichen evtl. auch 4800 oder 2400 auch, das geht 
dann locker.
Wir haben einen alten Fernwärmeregler der "dudelt" mit 300Baud dahin,
wenn man da einen Piezo ranhängt, kann man die Bytes auch akustisch 
zuordnen :-)

von Matthias L. (Gast)


Lesenswert?

>kann man die Bytes auch akustisch zuordnen :-)

Wenn der Empfänger ausfällt, kann sozusagen händisch mitgeschrieben 
werden...

von Falk B. (falk)


Lesenswert?

@ Matthias Lipinsky (lippy)

>>per OSCCAL auf 1,8432 MHz kalibriert ..

>Da bist du aber davon ausgegangen, dass der Uhrenquartz entsprechend
>genau ist...?

Ist mein Ironiedetektor kaputt?
Wie ungenau soll denn ein Uhrenquarz sein? +/-100ppm hat der maximal 
(wenn man die Lastkapazitäten nicht vergisst ;-)
Das sollte für RS232 gerade so reichen . . .

MFG
Fakl

von store (Gast)


Lesenswert?

Vielen Dank an alle, aber händisch die bytes mitloggen wollt ich nicht 
:-)
ich werde wohl nicht drum rum kommen, ein baudratenquarz einzusetzen. 
Ich habe da an den 3686400Hz gedacht, da ich den gerade hier habe. Ich 
dachte, dass ich eventuell auf der Platine Platz sparen kann...

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.