ATMega32 Uart Fusebits bei 16MHZ

Gast #3608957
Lesenswert?

Hallo Leute,
ich bin neu hier. Habe aber schon ein wenig Erfahrung mit dem 
Programmieren.
Benutze das Funk avr evaluationsboard von pollin.
Angefangen hab ich mit einem ATMega8 und bin jetzt auf einen ATMega32 
umgestiegen.
Ab da gingen die Probleme mit der Uart los.
Ich betreibe den ATmega32 mit 16MHz Quartz und möchte eine BAUD von 9600 
einstellen um Messwerte von meinem I2C-Bus auf meinem PC auszugeben. 
Später möchte ich auf eine BAUD von 115200 wechseln um ein Sim900 
anzusteuern. Die Funktionen zum Senden und Empfangen Funktionieren auch. 
Nur Sendet der ATMega32 auf einer BAUD von 600 und nicht auf einer BAUD 
von 9600.

Da kommt auch schon meine erste Frage kann ich eine BAUD von 115200 auf 
den ATMega32 einstellen? Also nur ob das auch geht ohne das ich Fehler 
auf der Uart bekomme.
Um die baut rate zusetzten benutze ich <util/setbaud.h> Bibliothek .

Da ich einen externen 16MHz Quartz hab muss ich wenn ich das richtig 
sehe, die Fusebits setzten.
Ich habe meinen Quartz auch mit einem Oszilloskop überprüft nur schwingt 
dieser nicht.
Ich kenne mich mit den Fusebits nicht aus.
In die Checkliste habe ich geschaut. 
http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART
Und Natürlich in den Artikel über die Fuses
http://www.mikrocontroller.net/articles/AVR_Fuses
Nur weiß ich nicht wie ich die Fusebits einstellen muss. Habe ich da 
etwas übersehen ?
Die Bits stehen auf Low Fuse 0xE1 und das High Fuse auf 0x99


Ich habe schon einen versuch mittels myAVR ProgTool V1.39 zumachen, 
jetzt habe ich den ersten ATMega32 verfused und kann ihn nicht mehr 
erreichen. (Einstellungen hab ich leider nicht mehr da ich viel zu 
schnell was hab aber nur etwas am Low Fuse geändert)
Könnte man diesen wiederherstellen? (Das ist aber erst mal nicht so 
wichtig)

Ich habe noch einen zweiten ATMega32 und möchte hier nun alles richtig 
machen.
Was muss ich Einstellen ?
Habe bei http://www.engbedded.com/fusecalc/ geschaut aber damit komme 
ich nicht klar.
Meine Idee Einstellung ist Low Fuse 0xDF und high 0x99
Also Ext. Crystal High Frequenz 16k CK ohne Start-up
Sehe ich das richtig oder brauche ich eine Start-up time?

Ich bitte um ein Paar Hilfreiche antworten :)

Vielen Dank Julius F.
#3609000
Lesenswert?

Julius .F schrieb:
> Könnte man diesen wiederherstellen? (Das ist aber erst mal nicht so
> wichtig)
Ja. Vermutlich steht er auf "externer Takt" statt auf "externer Quarz". 
Also entweder einen beliebigen Takt an XTAL1 einspeisen oder per 
HV-Programmierung wieder beleben.

> Habe bei http://www.engbedded.com/fusecalc/ geschaut aber damit komme
> ich nicht klar.
Hmmm... also noch ausführlicher kann man es eigentlich nicht machen...

> Meine Idee Einstellung ist Low Fuse 0xDF und high 0x99
Gib das bei engbedded.com ein und du bekommst eine Warnung in ROT, dass 
das unglücklich gewählte Werte sind.

> Also Ext. Crystal High Frequenz 16k CK ohne Start-up
Das würde prinzipiell funktionieren.

> Sehe ich das richtig oder brauche ich eine Start-up time?
Wäre es so schlimm, wenn der ATMega 64ms länger zum Start braucht? Und 
du bist damit weit auf der sicheren Seite.

JTAG würde ich übrigens ausschalten, wenn ich es nicht brauche. Sonst 
gibt es seltsame Effekte.

Ansonsten riechen deine Beobachtungen danach, dass dein ATMega auf 
internem Takt mit clkdiv8 aktiviert läuft. Das wäre dann der 
Auslieferungszustand.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren