Fragen von einem Anfänger! Funktioniert USART mit dem internen Oszi. des AVR oder braucht man einen Quarz? Verwende STK 500, ATmega8515 Danke für die Hilfe
Hi, die USARTs der AVR sind unabhängig von der Taktquelle verwendbar. Die Frage ist, ob du die Baudrate die du brauchst erzeugen kannst. Je nach Taktrate ist es nämlich so, dass übliche Baudraten nur mit großem Fehler erzeugt werden können. Es gibt jedoch für übliche Taktfrequenzen auch passende Baudraten. Wenn du also nicht durch die entsprechende Gegenstelle mit der dein USART kommunizieren soll auf eine bestimmte Baudrate eingeschränkt bist, dann geht es auch mit internem Oszillator. Nebenbemerkung: bei internem Oszi besteht eine größere Abhängigkeit der Taktfrequenz von Betriebsspannung und Temperatur. Bei großen zu erwartenden Schwankungen dieser Größen vielleicht doch besser einen Quarz verwenden... Grüße
Und Umgekehrt:Es gibt natürlich auch spezielle Quarz mit Taktraten, welche bei der Fehlerrate 0% schaffen :D
hallo zusammen! Danke für die rasche Antwort. Dann muß die Übertragung auch mit dem internen takt funktionieren. Für den atmega8513 interne freq. 3,686 MHz ergibt sich für UBRRL = 23 UBRRH = 0 AVR prog. - Kabel am STK 500 umgesteckt und nix tut sich am hyperterminal. Beim drücken der reset-taste erscheinen manchmal so komische sonderzeichen. Bitte um kontrolle - was habe ich falsch gemacht. Danke - b.steiner
Benutze lieber solche Programme wie "Comtest" von B&B für Terminal-Sachen (RS232-Tests). Da ich eher in C programmiere, kann ich nicht sagen, was an deinem Programm falsch läuft.Bin mir jetzt auch nicht ganz sicher, ob die von dir berechnete Zahl für UBBRL richtig ist. Ich lasse sie mir in der Regel durch ein Makro berechnen. Gruß Rahul
intern hast du doch keine 3,686 Mhz ich denke du verwechselst da was weil die besagten 3,686 Mhz ist die max Frequenz die vom stk generiert wird. Um das zu nutzen mußt du die fusebits richtig setzen und vielleicht auch noch die passenden jumper auf dem stk setzten. intern hat man doch nur 1,2,4,8 Mhz
.... hab' gerade das gleiche Problem.... mein ATmega8 mit seinem internen Oszillator läuft auf 1 MHz (genau auf 997.688 Hz) Leider lassen sich nur Baud-Raten von 4800, 2400 und 1200 erzeugen. 9600 Bd geht theoretisch und praktisch nicht!! Du kennst sicherlich die Formel: oszillator/(16*Baud)-1 Das Ergebnis dieser Formel sollte möglichst ganzzahlig sein, sonnst stimmen die Bit-Zeiten nicht. Ich stell Euch mal eine Tabelle zur Verfügung.... Ach noch was, nur so als Tipp. Der COM port am Pc besitzt eine sogenannte Negativ Logik, d.h. loghisch 1 sind 0 Volt und logisch 0 sind +5 Volt
hallo bernhard deine tabelle war und ist sehr hilfreich. jetzt ist mir einiges klarer geworden. grup b.steiner
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.