Schlagwort-Archiv: fischl

USBASP V2/V3 ISP Update

Ich habe vom 8bit-museum.de eine SRAM/DRAM Tester rev. 7.5 Platine bekommen.
Diese Platine muss mit einem ATmega 2560 bestückt werden.
Also dachte ich, das wird das Schwerste sein, den ATmega 2560 einzulöten.
Aber nein, der Aufbau war nicht das Problem. Die Firmware war das Problem.

Ich hatte 2 ISP Geräte, einmal den USBtinyISP V2.0 und den USBASP V3.0.
Den USBtinyISP kann man gleich vergessen, der kann kein ATmega2560 flashen. Der USBASP hat meistens eine originale Firmware von Thomas Fischl (www.fischl.de). Letzte Version ist von 2011.
Dies machte aber Probleme beim Übertragen der Firmware auf den ATmega 2560:


avrdude.exe: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "avrdude.conf"
Using Port : usb
Using Programmer : usbasp
Setting bit clk period : 20.0
AVR Part : ATmega2560
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude.exe: set SCK frequency to 32000 Hz
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.06s
avrdude.exe: Device signature = 0x1e9801 (probably m2560)
avrdude.exe: safemode: lfuse reads as 62
avrdude.exe: safemode: hfuse reads as 99
avrdude.exe: safemode: efuse reads as FF
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: set SCK frequency to 32000 Hz
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: reading input file "SRAM-DRAM-Tester_v11.ino_atmega2560_16000000L.hex"
avrdude.exe: writing flash (181320 bytes):
Writing | ################################################## | 100% 83.64s
avrdude.exe: 181320 bytes of flash written
avrdude.exe: verifying flash memory against SRAM-DRAM-Tester_v11.ino_atmega2560_16000000L.hex:
avrdude.exe: load data flash data from input file SRAM-DRAM-Tester_v11.ino_atmega2560_16000000L.hex:
avrdude.exe: input file SRAM-DRAM-Tester_v11.ino_atmega2560_16000000L.hex contains 181320 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 70.92s
avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
0xdc != 0xdd
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: lfuse reads as 62
avrdude.exe: safemode: hfuse reads as 99
avrdude.exe: safemode: efuse reads as FF
avrdude.exe: safemode: Fuses OK (E:FF, H:99, L:62)
avrdude.exe done. Thank you.

Am Ende war keine Firmware drauf. Darauf habe ich den Tipp bekommen mal diese Firmware zu nutzen:
https://github.com/bperrybap/usbasp/tree/1.06-alpha

Das Problem ist, dass man hierfür wieder ein ISP braucht. OK, also muss ich doch noch den USBtinyISP nehmen. Wenn der schon kein ATmega 2560 flashen kann, den ATmega8 kann er. Wichtig ist beim USBASP, dass der Jumper 2 (Self Program) gesetzt wird. Nun den USBASP mit dem USBtinyISP verbinden. Prüft auch Jumper 1. Der JP1 ist für die Stromversorgung!

Danach habe ich mit dem Befehl die Firmware übertragen:

avrdude.exe -C"avrdude.conf" -v -patmega8 -c usbtiny -B8 -Uflash:w:usbasp-v1.06-alpha-2016-05-18-atmega8.hex:i

Und siehe da, ich kann nun den ATMega2560 nun flashen:

Upload firmware
avrdude.exe: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "avrdude.conf"
Using Port : usb
Using Programmer : usbasp
AVR Part : ATmega2560
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude.exe: auto set sck period (because given equals null)
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude.exe: Device signature = 0x1e9801 (probably m2560)
avrdude.exe: safemode: lfuse reads as FF
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: efuse reads as FF
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: auto set sck period (because given equals null)
avrdude.exe: reading input file "SRAM-DRAM-Tester_v12.ino_atmega2560_16000000L.hex"
avrdude.exe: writing flash (181320 bytes):
Writing | ################################################## | 100% 37.62s
avrdude.exe: 181320 bytes of flash written
avrdude.exe: verifying flash memory against SRAM-DRAM-Tester_v12.ino_atmega2560_16000000L.hex:
avrdude.exe: load data flash data from input file SRAM-DRAM-Tester_v12.ino_atmega2560_16000000L.hex:
avrdude.exe: input file SRAM-DRAM-Tester_v12.ino_atmega2560_16000000L.hex contains 181320 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 25.14s
avrdude.exe: verifying ...
avrdude.exe: 181320 bytes of flash verified
avrdude.exe: safemode: lfuse reads as FF
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: efuse reads as FF
avrdude.exe: safemode: Fuses OK (E:FF, H:DF, L:FF)
avrdude.exe done. Thank you.

Kein Fehler mehr : )!!!

Hier die Jumper-Funktionen:

JP1: Stromversorgung
Dieser Jumper steuert die Spannung am ISP-VCC-Stecker. Sie kann auf +3,3V, +5V gesetzt werden.
Verfügt der andere ISP bereits über eine eigene Stromquelle, muss der Jumper entfernt werden.

JP2: Self Program
Dieser Jumper ist zur Aktualisierung der Firmware des USBasp-Programmiergeräts. Um die Firmware zu aktualisieren, wird ein zweites Programmiergerät benötigt.

JP3: Langsamer SCK
Wenn dieser Jumper ausgewählt ist, wird der Modus „Langsamer Takt“ aktiviert. Wenn der Zieltakt niedriger als 1,5 MHz ist, müssen Sie diesen Jumper setzen. Dann wird SCK von 375 kHz auf etwa 8 kHz gesetzt.