PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : avrdude und fusebits



Travolds
22.01.2007, 21:20
hallo an alle :)

ich möchte gerne meinen avr (ATMEGA8515) mit einem externen quarz betreiben - lief bisher im auslieferungszustand.
ich hab also einen 7,3728MHz Quarz mit zwei 22pF kondensatoren an den xtal pins angeschlossen und die kondensatoren auf gnd gelegt.
nun möchte ich mit avrdude die fusebits schreiben nur wollte ich mich noch schnell vergewissern, ob denn meine recherchen soweit stimmen.

hab nun als erstes mal die fusebit werte ausgelesen:



$ avrdude -p atmega8515 -P /dev/ttyS0 -c ponyser -t

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9306
avrdude> d lfuse
>>> d lfuse
0000 e1 |. |

avrdude> d hfuse
>>> d hfuse
0000 d9 |. |

avrdude> quit
>>> quit

avrdude: safemode: Fuses OK

avrdude done. Thank you.


mittels dem fusbit-rechner [1] und dem datenblatt hab ich mir nun folgende werte für die fusebits rausgesucht:

low: 0xD7
high: 0xD9 (bleibt also unverändert)

einstellung



Ext. RC-Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18CK + 4 ms; [CKSEL = 0111 SUT = 01]


im fusebit-rechner [1].

stimmt das soweit?

das ganze würde ich dann, wenn ich alles richtig verstanden habe, mittels



avrdude -p atmega8515 -P /dev/ttyS0 -c ponyser -U lfuse:w:0xd7:m


dem avr "antun" ;)

ich würde hier nur gerne sicher gehen, dass ich mich nachher nicht ärgern muss :)

über tipps würd ich mich sehr freuen!

vielen dank + schönen abend noch

[1] http://palmavr.sourceforge.net/cgi-bin/fc.cgi?P_PREV=&P=ATmega8515

** EDIT **
link zu fusebit-rechner eingefügt

Bubi_00
23.01.2007, 12:33
Hi,

Kann dir so eig nicht weiterhelfen, ich nehme zum Fuse setzen lieber was grafisches, http://www.lancos.com/prog.html
Du musst nur aufpassen, ein Häckchen heißt Programmed also 0, ;)
Einstellen kannst du es unter Secrurity Bits. Ist so ein kleines Schloss

Travolds
23.01.2007, 12:49
hi,

vielen dank für deine antwort - bei mir scheitert die grafische lösung am mangelnden windows :)
die 0 und 1 (programmed / not programmed) problematik war mir schon bekannt, da es ja laufend in den einzelnen threads erwähnt wird.
aber danke auch für den hinweis! lieber einmal zu oft als zu wenig ;)

über weitere hilfen würd ich mich sehr freuen

vielen dank nochmal

m.a.r.v.i.n
24.01.2007, 10:49
Hi,

ACHTUNG: externer RC Oscillator ist auf jeden Fall verkehrt. Dabei handelt es sich um ein RC Glied (Widerstand und Kondensator) der an einem Takteingang angeschlossen wird.
Siehe auch http://www.atmel.com/dyn/resources/prod_documents/doc2512.pdf
Seite 38.

externer Crystal/Resonator High Freq wäre in dem Fall richtig.
Siehe Seite 36,37 Tabelle 7 und 8 im Datenblatt.

lfuse=0xff
hfuse=0xd9

Travolds
24.01.2007, 11:39
](*,) danke m.a.r.v.i.n!
ich hab ja gewusst wieso ich frage ;)

werd das dann am abend probieren.

lg

Bubi_00
24.01.2007, 15:59
Ok dann hab ich noch 2 Lösungen :

a) Falls du Linux benutzt, Pony gibts auch für Linux ;)
b) http://avr8-burn-o-mat.brischalle.de/ Java Oberfläche für Avr-Dude
Lösung: Ich komme auf folgendes: Current: 0xFF 0xD9
Low High
also wie m.a.r.v.i.n


mfg

m.a.r.v.i.n
24.01.2007, 16:14
Hi,

noch was fällt mir ein. Beim Schreiben der Fusebits sollte man den Safemode abschalten (Option -u). Das wird auch so in der avrdude Doku empfohlen. Sonst werden die Fusebits vor und nach dem Programmieren überprüft und es gibt eine Fehlermeldung (logisch, man will ja gerade die Fusebits ändern)


avrdude -p atmega8515 -P /dev/ttyS0 -c ponyser -u -U lfuse:w:0xff:m -U hfuse:w:0xd9:m

Travolds
24.01.2007, 18:24
hallo,

vielen dank für die rettenden hinweise :)
das setzen der fuses hat perfekt funktioniert:



$ avrdude -p atmega8515 -P /dev/ttyS0 -c ponyser -t

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9306
avrdude> d lfuse
>>> d lfuse
0000 ff |. |

avrdude> d hfuse
>>> d hfuse
0000 d9 |. |

avrdude> quit
>>> quit

avrdude: safemode: Fuses OK

avrdude done. Thank you.



danke nochmals + lg