USBASP Firmware und Treiber

Ich habe mir ein USB ASP kompatibles PCB besorgt. Und ich benutze die Arduino Software. Im Menu lässt sich das Modul einstellen um z.B. den Bootloader auf ein Arduino zu programmieren.
Ich habe leider für den Programmer keine "vernünftige" Software/Treiber gefunden.
Ich habe mittlerweile die Treiber Installations-SW Zdac gefunden. In der Software gibt es 4 verschiedene "Treiber" auswählbar:
WinUSB V6..., libusb-win32 V1.2.6.0, libusbK V3.0.7.0 oder USB Serial CDC
Meine dringlichste Frage: Welcher Treiber wird von der Arduino GUI SW verwendet?
Ich finde hier nichts in den Hilfen.
Als Firmware finde ich nur die SW von Fichl.
Gibt es keine andere Firmware ?
Aufbau:

Gruß
Stefan

Ist die Firmware nicht schon beim Kauf drauf?
Ich habe meinen damals nur Plug&Play angesteckt und kann ihn Problemlos nutzen. Ich musste nichts von Hand installieren.

Die ist doch gut!

Sonst gibts noch die Chinesischen, und eine Bug bereinigte. Die dümpelt irgendwo im Netz rum.

Denn sowohl die Chinesische, als auch die originale funktionieren nicht mit dem ATMega2560

was erträumst du dir denn?

Ja, da ist eine Firmware drauf.
Doch die scheint nicht mit der Software zu funktionieren.
Da kommt z.B. Fehlermeldung mit SCK kann nicht gesetzt werden.

  1. das ist nur eine Mitteilung, also irrelevant
  2. gibt es einen Jumper auf dem Board, zu diesem Zweck
  3. die neueste fischl kann den -B Parameter

Du hast also ein anderes Problem.
KA, welches.

Falls du eine Meldung meinst wie:

Warning: usbasp cannot set sck period

Das betrifft nur "slow clock devices", mit weniger als 1,5 MHz. Aber selbst das funktioniert - siehe: usbasp cannot set sck period? - #9 by bperrybap

Ok, schon mal gut.
Ich habe jetzt den Parm. -F beim programmieren mit Bootloader gesetzt. Dann wird es nur noch zur Warning. Trotzdem noch unschön.
Nächstes Problem:
Beim programmieren des Bootloaders meint er falsche Signature beim Zielgerät.
Ist ein 168PA drauf. So wie es aussieht ist jedoch nur 168A codiert?

Warum?
Kenne keinen einzigen Fall, wo das notwendig wäre.

Ich wiederhole:

Solange du nicht verrätst, was du eigentlich willst, kann ich dir auch nicht helfen.

Wo?

Das ist die Fehlermeldung, die jetzt noch kommt:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: Expected signature for ATmega32U4 is 1E 95 87
Fehler beim Brennen des Bootloaders.

Unter Arduino\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168.c finde ich kein 168PA. Der hat die Signatur 0x1E 0x94 0x0B

Ich möchte mein Nano-ähnliches Produkt mit Bootloader flashen. So wie es aussieht kann ich nicht mit ihm direkt kommunizieren, da kein Arduino bootloader drauf ist.

Warum wählst du einen Leonardo/Micro aus, wenn du doch einen Nanno beschreiben willst?
Wähle mal den 168 Nano aus. Die Meldung würde ich gerne sehen.

image

Mein Tipp:
Du suchst die betreffende boards.txt Datei.
Lege daneben eine boards.local.txt mit deiner neuen Konfiguration.

Eigentlich/Vielleicht reicht da eine Zeile:
nano.menu.cpu.atmega168.build.mcu=atmega168p

evt. sind dort noch mehr Einstellungen nötig....

------------------------------------------------------------

Nachtrag:


## China Nano Nachbauw mit ATmega168P
## -------------------------
nano.menu.cpu.atmega168p=ATmega168P

nano.menu.cpu.atmega168p.upload.maximum_size=14336
nano.menu.cpu.atmega168p.upload.maximum_data_size=1024
nano.menu.cpu.atmega168p.upload.speed=19200

nano.menu.cpu.atmega168p.bootloader.low_fuses=0xff
nano.menu.cpu.atmega168p.bootloader.high_fuses=0xdd
nano.menu.cpu.atmega168p.bootloader.extended_fuses=0xF8
nano.menu.cpu.atmega168p.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex

nano.menu.cpu.atmega168p.build.mcu=atmega168p

Sieht dann im Menü so aus:
image

Quasi völlig ungetestet, da ich einen solchen Nano nicht hier habe.

Ich habe die zusätzlichen Einträge in boards.txt gemacht. Das hat keine Änderung gebracht.
Ich denke der bootloader muss um die Signatur erweitert werden.

Ich sachte: boards.local.txt
(hatte schon Gründe dafür)

Dann denke...
(ich kann dich offensichtlich nicht aufhalten)

Die Meldung ist bis zur Unkenntlichkeit verstümmelt!
Warum zeigst du sie nicht vollständig, incl der Kommandozeile?

Hallo combie,
wir verstehen uns wohl nicht:

  • ich habe ein Nano festgelegt, kein Micro, habe ich auch nie gesagt. Wie kommst du auf Micro?
  • warum neues boards.txt? was ändert das, am Problem? mag ja sein, dass es nicht so niotwendig war.
  • welche Meldung ist verstümmelt? Ich habe einen Screenshot hochgeladen und ich kann den erkennen.
  • jedenfalls erwartet das Tool eine andere Signatur. Warum? bzw. wie lösen?
    Stefan

Das ist nicht Wahr!

Originalton:


Und nochmal:
Keine neue boards.txt, sondern eine boards.local.txt
Ein einfacher Grund: So wird es in der Arduino Dokumentation für individuelle Board Erweiterungen/Anpassungen vorgeschlagen.
Und so macht es auch Sinn.

Ich zeige dir mal wie solche Meldungen bei mir aussehen:
(Upload eines einfachen Programms auf einen UNO)

E:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CE:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM9 -b115200 -D -Uflash:w:E:\temp\Arduino/sketch_dec25c.ino.hex:i 

avrdude: 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 "E:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM9
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 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 : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "E:\temp\Arduino/sketch_dec25c.ino.hex"
avrdude: writing flash (1414 bytes):

Writing | ################################################## | 100% 0.24s

avrdude: 1414 bytes of flash written
avrdude: verifying flash memory against E:\temp\Arduino/sketch_dec25c.ino.hex:
avrdude: load data flash data from input file E:\temp\Arduino/sketch_dec25c.ino.hex:
avrdude: input file E:\temp\Arduino/sketch_dec25c.ino.hex contains 1414 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.20s

avrdude: verifying ...
avrdude: 1414 bytes of flash verified

avrdude done.  Thank you.

Wichtig ist auch die erste Zeile. Da sieht man schon viele Fehler.

Welches Tool?
In deiner verstümmelten Meldung sehe ich nichts davon, dass eine andere Signatur erwartet wird.

Hallo combie,
in den Voreinstellungen gibt es eine Option "Ausführliche Ausgabe während: ... hochladen"
Wenn ich diese setze, dann bekomme ich zusätzliche Ausgaben, in deinen Worten unverstümmelt:

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega168p -cusbasp -Pusb -F -e -Ulock:w:0x3F:m -Uefuse:w:0xF8:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m 

avrdude: 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 "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega168P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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    20     4    0 no        512    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 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: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x6d3438
avrdude: Expected signature for ATmega168P is 1E 94 0B

avrdude done.  Thank you.

Fehler beim Brennen des Bootloaders.

was mich wundert, dass er eine ganz fremde Device Signature ausgibt.
Wenn ich "Expected signature for ATmega168P is 1E 94 0B" durch Google Übersetzer übersetzen lasse, kommt das hier heraus: "Erwartete Signatur für ATmega168P ist 1E 94 0B"
Ob die Signatur nun für ein Micro oder Nano ist weiß ich nicht, jedenfalls habe ich Nano eingestellt und nie etwas anderes behauptet.
Hast du mir einen Link in die Dokumentation, wo das mit dem boards.local.txt steht?
Ich habe es nicht gefunden.

Ich habe dir doch deine Meldung mit dem 32U4 zitiert!
Das kannst du doch jetzt nicht negieren.

Aber ich weiß das!

Hier ist der Fehler:

Dein angeblicher 168P antwortet nicht.
Beim lesen der Signatur kommt darum auch dieser 0x6d3438 Müll.
Ursache:

  1. Verkabelung
  2. Stromversorgung
  3. Takt
  4. Störungen
  5. Defekt

Such dir was aus

Lass das blöde -F weg! (Aber das sagte ich doch auch schon)
Ohne -F würdest du den Müll gar nicht sehen.

Hier

so ich habe jetzt boards.local.txt gemacht und das -F wieder raus genommen.
Bekomme nun folgende Meldungen:

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega168p -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xF8:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m 

avrdude: 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 "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega168P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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    20     4    0 no        512    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 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: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
Fehler beim Brennen des Bootloaders.
avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Die Punkte von dir schließ ich soweit erstmal aus, weil:

  • Beide Module direkt an USB-Hub angeschlossen. Hub mit 5V Netzteil dediziert versorgt.
  • Verkabelung nochmal gecheckt.
  • Auf SCK des "Nano" hängt eine Led, die vor sich hin blinkt 1s, d.h. Nano kann kein Programming erkennen, weil Port auf Ausgang. Wie bringe ihn dazu in den Programming Mode zu gehen?
    Stefan

Nachtrag:
ich habe jetzt noch die RST Verbindung angeschlossen. War der Meinung die brauch ich nicht.
Kommt jetzt folgende Meldung:

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega168p -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xF8:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m 

avrdude: 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 "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega168P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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    20     4    0 no        512    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 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: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Fehler beim Brennen des Bootloaders.

Diese Annahme ist leider ganz falsch.

Tja...
Sonst noch was falsch angeschlossen?

Die Meldung ist eindeutig:

Double check connections and try again,

Ich stimme der Meldung zu!
Auch gerne mehrfach.

Übrigens:
Wenn die LED im Sekunden Takt erleuchtet ist da auch wohl schon ein Bootloader drauf und Blink.

ob mich "double check" weiterbringt?
Ich habe sck und rst angeschlossen
und Miso an Mosi und andersherum.
Ist das sicher ein Bootloader?
Und welcher Programmer ist beim Nano einzustellen?
Bei Boarddaten holen bekomme ich nur Board unbekannt.
und programmieren kann ich scheinbar auch nichts.