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
Eine Rechnung oder die Beispieltabellen für Baudraten im Datenblatt werden es dir verraten....
willst du dir UART aus dem DCO berechnen oder hast du einen 1MHz Quarz?
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
Mit dem internen Takt wird das sowieso nichts..... Otto
Wir sprechen doch von AVR? Dann geht das locker. Abgesehen vom etwas unstabilen/ungenauen Oszillator.
Ehm, nö geht doch nicht :-) 9600 wäre schön machbar, aber nicht mehr 19200, sorry.
@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 ;-)
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
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
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??
@holli Ich hätte jetzt das AVR-GCC-Tutorial Kapitel 12 UART erwähnt aber Datenblatt ist auch hilfreich! gruß hans
Baudratenquarz verwenden... Datenblatt lesen... problem inexestent...
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.
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.
Was hält dich eigentlich davon ab, den internen Takt auf 4 oder 8 MHz zu erhöhen? Keine Angst vor den Fuses :-) Reinhard
@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
>per OSCCAL auf 1,8432 MHz kalibriert ..
Da bist du aber davon ausgegangen, dass der Uhrenquartz entsprechend
genau ist...?
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 :-)
>kann man die Bytes auch akustisch zuordnen :-)
Wenn der Empfänger ausfällt, kann sozusagen händisch mitgeschrieben
werden...
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.