PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom quarzeinstellung vs Fuses einstellung



fofi1
26.09.2009, 21:45
Hi,

ich hab nach stundenlangen suchen und avr-killen die Fuses für meinen 12,2880 Mhz Quarz so gesetzt wie auf http://halvar.at/elektronik/kleiner_bascom_avr_kurs/fusebits_standard/ für den 8-16Mhz quarz. Ich progge mit Burn-o-mat. Das Programm hat für 20 sec funktioniert, dann gings aufmal nimmer. Der Atmega hat keine Befehle mehr entgegengenommen und ließ sich nicht proggen. Jetzt ist mir aufgefallen, dass in meinem Programm der quarz auf 1mhz gestellt war. Kann das den AVR killen?

mfg,
Flo

Besserwessi
26.09.2009, 23:22
Die Taktangabe am Anfang des BASCOM programms dient dafür, das der Compiler weiss welchen Takt der µC hat. Das wird für Baudraten, Wait Befehle und ähnliches benötigt. Wenn man da einen falschen Wert angibt stimmen dann Baudraten, Wartezeiten, ggf. ADC Takt nicht. Das Programm wird aber trotzdem laufen, wenn auch nicht unbedingt genau so wie geplant.

Den µC kann man damit nicht blockieren oder beschädigen (es sein denn die Schaltung ist so das ein faschen Timing den µC beschädigt: z.B. Überlastung von Ausgängen oder Überspannung erzeugen wenn das Timing nicht stimmt).

mit 1 mHz wäre man aber schon sehr weit daneben: mehr als 10 Zenerpotzenzen !

Das wird eher schon ein Problem mit der Hardware sein: z.B. Kondensatoren am Quarz falsch, sodass der Takt nur manchmal da ist.

fofi1
27.09.2009, 01:31
Hi,

wenn ich ca 2 stunden warte kann ich für ca 3 sec auf den atmega zugreifen. hab jetzt die Fuses auf die normaleinstellung gebracht. Wenn ich jetzt mein Programm auf den prozessor laden will kommt diese meldung


D:\WinAVR-20090313\bin\avrdude.exe -u -C D:\WinAVR-20090313\bin\avrdude.conf -p m32 -P usb -c usbasp -D -U flash:w:D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex:a

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude.exe: Device signature = 0x1e9502
avrdude.exe: reading input file "D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex"
avrdude.exe: input file D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex auto detected as Intel Hex
avrdude.exe: writing flash (3948 bytes):

Writing | ################################################## | 100% 31.47s

avrdude.exe: 3948 bytes of flash written
avrdude.exe: verifying flash memory against D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex:
avrdude.exe: load data flash data from input file D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex:
avrdude.exe: input file D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex auto detected as Intel Hex
avrdude.exe: input file D:\AVR Projekte\Zündbox\Endprogs\Zündbox neu2.hex contains 3948 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################avrdude.exe: error: wrong reading bytes b8


Warum geht das jetzt nimmer?

Mfg,
Flo

DaveWagner
27.09.2009, 11:42
Hallo

Da ich auch meinen Atmega fusen möchte habe ich mich auch mit dem Thema beschäftigt.
Dabei sind mir noch ein paar Sachen unklar.

Muss das Programm auf dem Atmega mit der richtigen Frequenz-Einstellung vor dem Fusen schon drauf sein ?

Muss nach dem Fusen der Quarz sofort angeschlossen werden ?

Und sind diese Fuses richtig für einen Atmega8 mit externen Quarz
(8 MHZ)?

Programmierte Fuses:
SPIEN
CKOPT
BOOTSZ1
BOOTSZ0

Der Rest ist unprogrammiert.

Mfg

David

stefan_Z
27.09.2009, 12:56
Welche Fuses man braucht lässt sich hier einfach rausfinden:
http://www.engbedded.com/fusecalc/
Die Seite sollte jeder hier als Bookmark haben!

Die Fuses sind immer unabhängig vom Programm selber.
Flashen, Löschen und der restliche "Regelbetrieb" haben mit den Fuses nichts zu tun, also sie ändern die Fuses nicht.

Falls externer Quarz gewählt ist, muss dieser natürlich auch vorhanden sein. Ansonsten macht der AVR garnichts mehr.