Schlagwort-Archiv: USBASP

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.

CTC Prusa i3 Bootloader installieren

So jetzt mal die schlechte Seite vom CTC Prusa i3: Die Firmware ist veraltet. EEPROM ist abgeschaltet, man kann dadurch keine Einstellungen speichern. Sobald man den CTC Prusa i3 ausschaltet, sind die Werte weg und es werden alle Einstellungen von der Firmware verwendet. Bootloader fehlt auch noch, so dass man per USB keine Firmware aktualisieren kann. Die orginalen roten Treiber haben keine Kühler, so dass nach ca. 1 Stunde drucken zum Versatz kommt. Ab einer gewissen Temperatur setzen die Treiber aus, damit Sie nicht überhitzen. Diese Sprünge sieht man dann am gedrucken Stück, je heißer desto größer werden die Aussetzer. Bin aber erst viel später drauf gekommen. Da 4 Kühlkörper fast genaus viel kosten wie 5 neue 1/32 Step (Schrittauflösungen) Treiber mit Kühlkörper, habe ich gleich die bestellt. Ersatz zu haben ist auch immer gut ; ). Problem ist aber dabei nur, man kann ohne die Firmware anzupassen keine 1/32 step (Schrittauflösungen) Treiber nutzen. Macht man das, so wird man bei z.B. x = 200 nur die Hälfe erreichen.
Wieso ? Weil 32 / 2 = 16 ist ; )
Man muss also bei der Firmware die Werte verdoppeln:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 157.48, 157.48, 5120, 210 }

Aber bei CTC gibt keiner irg. information darüber, das einzige was kommt ist, dass Sie keine Firmware haben. Kann ich mir nicht wirklich vorstellen. Aber jetzt die gute Nachricht. Es geht auch ohne CTC. Ich habe jetzt Marlin-1.1.0-RC8 drauf und auf Deutsch umgestellt. Auch die Treiber laufen jetzt im 1/32 step.

Was man braucht ist folgendes:

Einen USBASP, ich habe den V3 verwendet. Ob das mit anderen geht, weiß ich nicht. USBASP V3 kostet so ca. 4€ mit Versand und sieht so aus:

USBASP V3

Das muss man dann aber nicht mit dem mitglieferten Kabel verbinden, sondern mit  Jumper Wire Kabel (beide Seiten weiblich). Dann muss man das so am GT2560 Board Rev. a verbinden:

USBaspV3 am GT2560 Board verbinden

Links in weiß ist das GT2560 Board Rev. A und das grüne soll das USBASP V3 sein. Fotos hätte ich auch machen können, aber das Board wollte ich nicht nochmal abklemmen. Aber am Resettaster und -stecker kann man ganz gut rausfinden wie das Board liegt.

Ich habe noch arduino-1.8.1 heruntergeladen.
Kann auch mit neuerer Version gehen, wenn eine rauskommt. Falls nicht, muss man sich die alte ZIP Version runterladen.
Als Zip-Version muss man nichts installieren und kann das danach löschen.

Prüftunbedingt die richtige Verkabelung, sonst ist das GT2560 Board und auch USBASP dauerhaft beschädigt!

Das Nachmachen geschieht auf eigene Gefahr! Ich übernehme keine Garantie und ihr verliert auch die Gartanie vom Gerät selber, steht ausnahmsweise sogar mal in der englischen Anleitung von CTC

Hier nochmal die Kabelfarben erläutert:

Rot = 5V+
Grau = MOSI
Braun = MISO
Lila= RST
Blau = GND
Schwarz = GND
Weiß = SCK

Wenn alles richtig angeschlossen ist, kann man endlich den nötigen Bootloader installieren. Man muss jetzt „arduino“ im Ordner ausführen und im Menü „Werkzeug“ -> „Programmer“ -> „USBASP“ auswählen. Dann wieder im Menü „Werkzeug“ -> „Board“ das Board „Arduino/Genuino Mega or Mega2560“ auswählen. Es muss natürlich auch ein Prozessor ATMega2560 ausgewählt werden. Das ist bei Menü „Werkzeug“ -> „Prozessor“ zu erledigen. Jetzt kann man das USBASP V3 mit dem PC verbinden, dazu eignet sich ein langes USB Verlängerungskabel.

Seit euch bewusst, dass ab jetzt die orginale Firmware dauerhaft gelöscht wird! Ihr müsst nach dem Brennen des Bootloaders eine neue Firmware raufladen. Auf marlinfw.org gibt es die Firmware zum runterladen, das allein genügt aber nicht. Man muss da einiges konfigurieren. Dafür muss man sich Zeit nehmen, sonst wird das nichts. Wichtig ist die Datei „Configurations.h“. Steht aber alles in der Dokumentation von marlinfw.org.

Nachdem man sich jetzt bewusst ist, was man tut, kann man im Menü „Werkzeug“ auf „Bootloader brennen“ klicken.
Wartet ab, bis das Programm „Arduino“ meldet, dass der Upload fertig ist. Kein Kabel ziehen oder irgendwelche Spiele nebenbei spielen. Lasst den Rechner nur das machen, um wirklich sicher zu gehen, das nichts passiert.
Nicht, dass mittendrin der Rechner abstürzt,… Eine rote LED sollte nun am GT2560 Board blinken.
Ab jetzt kann man die Firmware über USB mit Arduino IDE installieren.

Und hier ein CTC i3 Pro B mit der Firmware Marlin-1.1.0-RC8 und noch eine Antwort vom CTC Support:

CTC Marlin 1.1.0 RC8

Dear Marcus, how are you! Thank you for your quick response and understanding for our work, but really very, very sorry, we really do not have the firmware you said, if you have other questions, please contact me, will be promptly for you to solve.

Please also note that: if the printer can not be used because the customer changes the firmware, will not be in our warranty service, thank you!

Freundlich sind Sie ja 🙂