Ich versuche, einen Bootloader auf einem ATmega32U4 aka. Arduino Micro, das nicht erfolgreich ist. Ich verwende einen AVR Dragon mit ISP-Schnittstelle.
avrdude -c dragon_isp -p m32u4 -P usb -U flash:w:Caterina-Micro.hex -U lfuse:w:0xff:m -U hfuse:w:0xd8:m -U efuse:w:0xcb:m -U lock:w:0x2f:m
Wenn dieses Kommando ausgeführt wird, erhalte ich eine Reihe folgender Fehler:
savrdude: stk500v2_jtagmkII_recv(): failed
Betriebssystem: OSX Mavericks
Avrdude: v6.1
AKTUALISIEREN
Wenn ich das -B
Flag damit setze 200
, beginnt es eindeutig, den Bootloader zu brennen, aber ist dies auf einen Hardwarefehler zurückzuführen? Es dauert mehr als 3 Minuten, um zu brennen.
avrdude -c dragon_isp -p m32u4 -P usb -U flash:w:Caterina-Micro.hex -U lfuse:w:0xff:m -U hfuse:w:0xd8:m -U efuse:w:0xcb:m -U lock:w:0x2f:m -v -B 1000
avrdude: Device signature = 0x000100
avrdude: Expected signature for ATmega32U4 is 1E 95 87
Double check chip, or use -F to override this check.
Oder:
avrdude -c dragon_isp -p m32u4 -B 1000
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.26s
avrdude: Device signature = 0x1e9587
avrdude: safemode: Verify error - unable to read efuse properly. Programmer may not be reliable.
avrdude: safemode: To protect your AVR the programming will be aborted
Und:
avrdude -c dragon_isp -p m32u4 -B 200000
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 2.46s
avrdude: Device signature = 0x1e9587
avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude done. Thank you.
Bei Verwendung im ISP-Modus verhält sich der AVR Dragon ähnlich wie ein AVRISP mkII (oder JTAG ICE mkII im ISP-Modus), sodass alle gerätespezifischen Kommentare dort gelten. Insbesondere der Dragon beginnt mit einer ziemlich schnellen ISP-Taktfrequenz, sodass möglicherweise die Option -B bitclock erforderlich ist, um eine stabile ISP-Kommunikation zu erreichen.
http://linux.die.net/man/1/avrdude
-B bitclock
Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE only). The
value is a floating-point number in microseconds. The default value of the JTAG ICE results
in about 1 microsecond bit clock period, suitable for target MCUs running at 4 MHz clock and
above. Unlike certain parameters in the STK500, the JTAG ICE resets all its parameters to
default values when the programming software signs off from the ICE, so for MCUs running at
lower clock speeds, this parameter must be specified on the command-line. You can use the
'default_bitclock' keyword in your ${HOME}/.avrduderc file to assign a default value to keep
from having to specify this option on every invocation.
http://www.nongnu.org/avrdude/user-manual/avrdude_4.html
Es hört sich so an, als würde der Dragon Daten schneller über ISP senden, als der ATmega verwalten kann. Dies ist sehr wahrscheinlich, wenn Sie den ATmega von der Standard-Taktquelle aus betreiben. Der Parameter -B ist der Weg, um diese Probleme zu lösen.
Das Gerät wird mit aktiviertem Low-Power-Quarzoszillator (8,0 - 16 MHz) und mit programmierter Sicherung CKDIV8 geliefert, was zu einem 1,0-MHz -Systemtakt mit einem 8-MHz-Quarz führt.
JavaKuchen
Jippie
JavaKuchen
200000
bevor es in der Lage war, die Gerätesignatur korrekt zu lesen und die Sicherungen zu überprüfen.JavaKuchen
Jippie