Hallo allerseits ! Die Frage gleich vorweg: Woran kann es liegen, wenn ich mit meinem Laptop und mysmartUSB 2.11 zwar fuses lesen kann aber nicht schreiben ? In den Flash schreiben geht, genauso wie lesen. Ich habe versucht: - avrdude ( Linux und Windows Vista) auf 2 verschieden laptops, - das experimentierboard myavr mkII, und 2 selbstgebaute Platinen für m8 und m32, - verschiedene programmer für avrdude -- avr911 -> kann nicht schreiben,(fuses) -- avr910 schreibt zwar die Fuses, diese werden alle auf 0xff gesetzt, genauso die device signatur auf 0xffffff, -- avr109 verhält sich wie avr911 -- verschiedene USB-Kabel (2m, 0,6m) Es geht eigentlich nur darum die lfuse von 0xe1 auf 0xe0 zu setzen, damit ich einen externen quartz ( 3...8MHz) nutzen kann. für Tips und Anregungen wäre ich sehr dankbar brungi
Tipp: - Atmel AVRISPMKII (original!) benutzen, kostet nicht wirklich viel. - Atmel Dragon benutzen, wenn genug Geld da ist. - STK500 benutzen, wenn zuviel Geld da ist.
Also doch s Programmiergerät... Na ja... viel bleibt ja auch nicht mehr übrig
So... ich hab jetzt zwischenzeitlich den originalen avrispmkII besorgt ( von Atmel). Jetzt habe ich das Problem, daß das Device /dev/ttyUSB0 nicht mehr automatisch generiert wird ( beim einstecken des USB - Steckers) Ausgabe von lsusb:
1 | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
2 | Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
3 | Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
4 | Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
5 | Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
6 | Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
7 | Bus 003 Device 002: ID 03eb:2104 Atmel Corp. AVR ISP mkII |
Also wird der avrispmkII erkannt. Muß ich jetzt auf den mkII erst eine spezielle Firmware aufspielen oder sowas ?
### Edit Der avrispmk 2 läuft jetzt. Aber leider werden dabei die µC beim schreiben der Fuses immer noch unbrauchbar... heul Ich kann im Terminalmodus vom avrdude die fuses lesen, und auch schreiben. Beim nochmaligen lesen wird auch der neue Wert angezeigt. Wenn ich dann den avrdude beende, kann ich danach nie wieder auf den µC zugreifen. Hier mal n paste vom avrdude danach...
1 | avrdude -cavrisp2 -Pusb -pm8 -n -v |
2 | |
3 | avrdude: Version 5.10, compiled on Feb 22 2011 at 23:50:16 |
4 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ |
5 | Copyright (c) 2007-2009 Joerg Wunsch |
6 | |
7 | System wide configuration file is "/etc/avrdude.conf" |
8 | User configuration file is "/root/.avrduderc" |
9 | User configuration file does not exist or is not a regular file, skipping |
10 | |
11 | Using Port : usb |
12 | Using Programmer : avrisp2 |
13 | avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200087856 |
14 | AVR Part : ATMEGA8 |
15 | Chip Erase delay : 10000 us |
16 | PAGEL : PD7 |
17 | BS2 : PC2 |
18 | RESET disposition : dedicated |
19 | RETRY pulse : SCK |
20 | serial program mode : yes |
21 | parallel program mode : yes |
22 | Timeout : 200 |
23 | StabDelay : 100 |
24 | CmdexeDelay : 25 |
25 | SyncLoops : 32 |
26 | ByteDelay : 0 |
27 | PollIndex : 3 |
28 | PollValue : 0x53 |
29 | Memory Detail : |
30 | |
31 | Block Poll Page Polled |
32 | Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack |
33 | ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- |
34 | eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff |
35 | flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00 |
36 | lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 |
37 | hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 |
38 | lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 |
39 | calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 |
40 | signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 |
41 | |
42 | Programmer Type : STK500V2 |
43 | Description : Atmel AVR ISP mkII |
44 | Programmer Model: AVRISP mkII |
45 | Hardware Version: 1 |
46 | Firmware Version Master : 1.10 |
47 | Vtarget : 5.2 V |
48 | SCK period : 8.00 us |
49 | |
50 | avrdude: stk500v2_command(): command failed |
51 | avrdude: stk500v2_command(): unknown status 0xc9 |
52 | avrdude: stk500v2_program_enable(): cannot get connection status |
53 | avrdude: initialization failed, rc=-1 |
54 | Double check connections and try again, or use -F to override |
55 | this check. |
56 | |
57 | |
58 | avrdude done. Thank you. |
Yes, Avrdude. Thank you too ! (dieser Satz stammt von mir) Weiß irgendjemand woran es noch liegen könnte ?
brungi schrieb: >lfuse von 0xe1 auf 0xe0 zu setzen, DÄÄÄÄ. Damit stellst du auf externen Takt. Schau mal hier: http://www.mikrocontroller.net/articles/AVR_Fuses#Reaktivieren_bei_fehlerhaften_Taktquellen-Fuse-Einstellungen http://www.engbedded.com/fusecalc/
Oliver J. schrieb: > DÄÄÄÄ. > Damit stellst du auf externen Takt. Ja. Genau das will ich. Auf der selbstgebauten Ziel-Platine ist bereits ein 8 MHz Quartz verbaut, an XTAL1 und XTAL2 angeschlossen und mit 2x 22pF Keramikkondensatoren gegen Masse "entkoppelt". Was ist daran falsch ?
"Externem Takt" wird gerne mit "externem Quarz/Resonator" verwechselt? Wenn die Oszillatorschaltung nicht aktiviert ist, schwingt der Quarz auch nicht. Nun aber schnell einen echten externen Takt anschließen und Prozessoren retten ;-)
Jetzt mal ganz langsam... Bitte korrigiert mich, wenn ich mich irre... Das kleine Edelsthl - Ding ( Die Grundfläche sieht aus wie ein klitze-kleines Fussballstadion) ist ein Quartz oder nicht ? laut Datenblatt vom atmega8, Seite 26, Tabelle 2, gehören die fusebits von lfuse auf ... da steht: external crystal / ceramic resonator 1111 - 1010 Die Grundeinstellung der lfuse des atmega8 ist 1110. ( 0xe1) also muss ich für den external crystal 1111 ( 0xe0) einstellen, oder ? external crystal = Externer Quartz(Kristall???)
brungi schrieb: > Die Grundeinstellung der lfuse des atmega8 ist 1110. ( 0xe1) > also muss ich für den external crystal 1111 ( 0xe0) einstellen, oder ? Nein, 1111 ist nicht 0xe0. Mit 0xe0 steht der ATmega8 auf Ext. Clock mit 64ms Startup Für einen externen Quarz (Ext. Chrystal/Resonator High Freq.) mit reichlich Startzeit ist für die LFuse 0xff z.B. ein guter Wert.
ok. ich hab jetzt mal gemacht, was mir Bastler empfohlen hat. Und jetzt ist alles gut. Die verfusten atmega8 zurückgeholt und diesmal die lfuse auf 0xff gestellt. Das Datenblatt studiert ( diesmal richtig). Na ja... Wenn man vorher schon weiß, daß bei der lfuse 0xff rauskommen soll, dann kann man das schon irgendwie nachvollziehen. Und sowieso wenn man auch die Texte liest und nicht nur die Tabellen anschaut... ( schäm) Aber ehrlich : Selbst hätte ich das nicht geschnallt. Danke Bastler !
Aber dafür hast Du ja jetzt auch immerhin einen prima Progger!
Ich schrieb: > Aber dafür hast Du ja jetzt auch immerhin einen prima Progger! Scheint so... Auf jeden Fall ist es n prima Progger, wenn s drum geht noch weitere Probleme herbeizuführen. ZITAT von Murphy: Hinter jedem kleinen Problem steckt ein Grosses, das gerne heraus möchte. Und weiter gehts... Alle meine ISPs haben immer 10 Pins gehabt ( Kanda- std). Jetz kommt der avrispmk2 mit nem 6 poligen Stecker. - Nicht schlimm. Gehäuse öffnen, da sind auf der Platine Lötpunkte für den 10-poligen. Laut original Schaltplan ( auf der mitgelieferten CD dabei) soll der 10-polige Stecker parallel geschalten sein mit m 6 poligen. Also Wannenstecker dran, weil man dann aber die smd-led nebendran nicht mehr sieht, steckergehäuse amputieren und nur die pins stehen lassen. Tut nicht. Also über den 6 poligen raus, auf die selbstgebastelte platine ( hier OHNE m8! ) - da sind jetz auch n 6pol und n 10pol parallel drauf- und dann weiter zum zielsystem. Das tut. Da schau ich dann n anderes mal was da jetz wieder los ist...
### edit ### oder man macht einfach was hier: http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP steht... Kabel bauen und alles wird gut... :)
Habe auch ein Problem mit den Fuse Bits gehabt und konnte unter Pony Prog den ATMega32 nicht mehr ansprechen (unknown device -24) oder so ähnlich. Zur Rettung habe ich auf meinem Pollin Programmer Board einen Keramik Resonator mit 4 Mhz an den ATMega angeschlossen und den Mittelabgriff mit der Masse des Boards verbunden. Danach war der Chip wieder ansprechbar und konnte erfolgreich programmiert werden. Vielleicht hilfts ja...
Tanterolf schrieb: > Danach war der Chip wieder > ansprechbar und konnte erfolgreich programmiert werden. > Vielleicht hilfts ja... Nach mehr als 5 Jahren vermutlich nicht mehr - immer aufs Posting schauen und auch den roten Spruch über deinem Eingabefeld beachten. Ausserdem hilft deine Methode nicht, wenn der MC auf 'externen Takt' gefused wird und darum gings ja hier. Einen externen Takt kann dein Resonator nicht erzeugen.
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.