Forum: Mikrocontroller und Digitale Elektronik ATMega 32 mit USBasp und Arduino IDE programmieren


von Markus (Gast)


Lesenswert?

So es ist wieder soweit, ich bekomms nicht hin ein Programm auf meinen 
mc zu laden. Folgendes Szenario. Ich habe einen Atmega32, einen USBasp 
und möchte die Arduino IDE nutzen. Zuerst habe ich mir das Boardpaket 
MightyCore installiert. Dann entsprechend alles ausgewählt:
Board: ATmega32
Clock: external 8Mhz
Programmer: USBasp (MightyCore) , wobei es auch noch enínen USBasp slow 
(mightycore) gibt.

Ich habe meinen mc auf die Platine gesteckt und versucht ein 
Testprogramm hochzuladen. Dann der typische Fehler:

avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: error: program enable: target doesn't answer. 0
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Der ausgewählte serielle Port
 ist nicht vorhanden oder das Board ist nicht angeschlossen

So, dann hab ich natürlich alle Verbindungen gecheckt. Also mim 
Durchgangsprüfer und geschaut ob die direkte Verbindung zwischen den 6 
Ausgängen des USBasps mit den dazugehörigen 6 am mc besteht. Das tuen 
sie. Dann hab ich gedacht, villeicht hab ich mich ja verlötet oder 
irgendwas. Also mc rausgezogen und aufs Steckbrett. Alles verbunden, 
gleicher Fehler. Jetzt bin ich fraglos und weiß nicht was machen.

von Erste Frage (Gast)


Lesenswert?

Markus schrieb:
> Ich habe einen Atmega32

Hast auch einen Bootloader drauf?

von Εrnst B. (ernst)


Lesenswert?

Markus schrieb:
> avrdude: warning: cannot set sck period. please check for usbasp
> firmware update.

USBasp-Clone aus China? Mit Uralt-Firmware-Version, aber dafür Jumper um 
zwischen Schnell/Langsam umzuschalten? Updaten oder auf "Langsam" 
stellen.

> avrdude: error: program enable: target doesn't answer. 0
> avrdude: initialization failed, rc=-1
>          Double check connections and try again, or use -F to override
>          this check.

Genau das machen, Verbindungen prüfen.

von Markus (Gast)


Lesenswert?

Wie überprüfe ich das bzw. wie mache ich das?

von Markus (Gast)


Lesenswert?

Ja, also USBasp war sehr billig, vermutlich China. Hab mir den libus 
Treiber draufgeladen. Für meine Atmega 8 funktioniert das auch ganz 
zuverlässig. Verbindungen habe ich schon mehrmals durchgecheckt :/

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Markus schrieb:
> Für meine Atmega 8 funktioniert das auch ganz
> zuverlässig

Auch für "Frisch aus der Packung"? Ohne den Jumper auf "Langsam" kommt 
der USBasp mit 1MHz-Targets nicht klar.

Markus schrieb:
> Clock: external 8Mhz

Sind die fuses dafür schon geschrieben, oder ist das deine 
Wunsch-Einstellung, die du erst noch per USBasp vornehmen willst.

von Stefan F. (Gast)


Lesenswert?

Du musst den Programmieradapter langsamer machen, weil AVR standardmäßig 
mit 1MHz getaktet sind. Bei USBASP gibt es drei Varianten:

a) Sie machen das automatisch (hast du offenbar nicht)
b) Sie lassen sich durch den avrdude Parameter -B16 steuern
c) Sie haben dafür den Jumper JP3 (der oft nicht bestückt ist)

von Markus (Gast)


Lesenswert?

Also der Atmega8 war der erste mc den ich programmiert hatte. Habe dafür 
auch ewig gebraucht und über meinen Arduino eine Datei namens Optiloader 
draufgemacht.

Die Clock sollte von der Arduino IDE über den USBasp auf den mc 
festgelegt werden. Man kann im Menü genau wie man die Porgrammer und das 
Board auswählt die Clock auswählen.

Mit den Jumpern sieht es bei mir folgendermaßen aus. Habe 5 männlich 
Pins, unterteilt in eine zweier und eine Dreier Grppe. In der Dreier 
Grupee kann ich anscheinen zwischen 5 und 3.3 V umschalten. Wenn ich die 
Zweier Gruppe verbinde, liegt keine Spannung mehr zwischen GND und VCC 
an.

von Markus (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> a) Sie machen das automatisch (hast du offenbar nicht)
> b) Sie lassen sich durch den avrdude Parameter -B16 steuern
> c) Sie haben dafür den Jumper JP3 (der oft nicht bestückt ist)

OK also a geht nicht, b ungern, da ich es mit der arduino ide und nicht 
mit der Kommandozeile machen möchte. Und zu c: Es gibt auf der Paltine 
des USBasp tatsächlich JP3, da fehlen aber die männlich pins.

von Markus (Gast)


Lesenswert?

Beziehungsweise, kann ich die Übertragungsrate nicht in der 
externalprogrammers.txt datei von meinen MightyCore Paket 
ändern/hinzufügen?

von Einer K. (Gast)


Lesenswert?

Markus schrieb:
> kann ich die Übertragungsrate
Du kannst vieles hinzufügen.
Aber offensichtlich sagt dir AVRDude, dass der Programmer darauf nicht 
reagiert.

Ich schließe daraus:
1. Hinzufügen geht
2. bleibt aber wirkungslos


Was hindert dich den "Slow Speed" Jumper zu bestücken?
Oder den Programmer mit eine modernen Software zu bespielen?
Das sind die beiden Möglichkeiten, die dir offensichtlich zur Verfügung 
stehen.

von Markus (Gast)


Lesenswert?

Dann mach ich mal den Slow Speed Jumper dazu und melde mich wieder.

von Markus (Gast)


Lesenswert?

avrdude: set SCK frequency to 16000 Hz
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.

Der ausgewählte serielle Port
 ist nicht vorhanden oder das Board ist nicht angeschlossen

hat nicht viel gebracht :/
Kann es sein, dass der mc kaputt ist, weil ich ihn mal falschrum 
angeschlossen habe oder etwas ähnliches?

von Markus (Gast)


Lesenswert?

Ne, daran liegts nicht. Es muss irgendwas essentielles sein. Meinen 
Atmega 8 kann ich jetzt auch net mehr programmieren, selber Fehler

von Erste Frage (Gast)


Lesenswert?

Markus schrieb:
> Der ausgewählte serielle Port
>  ist nicht vorhanden oder das Board ist nicht angeschlossen

Und du meinst nicht zumindest mal das offensichtliche zu beantworten?

Erste Frage schrieb:
> Hast auch einen Bootloader drauf?

von Markus (Gast)


Lesenswert?

Markus schrieb:
> Wie überprüfe ich das bzw. wie mache ich das?

.

von Markus (Gast)


Lesenswert?

OK, ich erziele Teilerfolge: Heute Nacht kam anscheined ein Windos 
update. Danach musste ich den USBasp Treiber neu installieren. Wie fr 
mich bekannt, habe ich den libusb0 driver drauf gemacht. Mit dem ging es 
nicht. Warum auch immer. Jetzt habe ich den libusk drauf gemacht. Mit 
ihm kommt folgendes:

Hochladen Abgeschlossen
Der Sketch verwendet 1042 Bytes (3%) des Programmspeicherplatzes. Das 
Maximum sind 32256 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 
Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
avrdude: set SCK frequency to 16000 Hz
avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: set SCK frequency to 16000 Hz
avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.


Also meckert der immer noch irgendwie mit der Frequenz aber das Programm 
ist drauf. Bei meinem Atmega 8 am LED Würfel funktionierts auch wieder 
und das Testprogramm fpr den Atmega32 geht anscheinend auch.

von Markus (Gast)


Lesenswert?

Falls sich jemand dafür interessiert, hier nochmal der lange log:

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:\Users\fuhrm\AppData\Local\Arduino15\packages\MightyCore\hardware\avr 
\2.0.5/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         Setting bit clk period        : 32.0
         AVR Part                      : ATmega32
         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         4    10    64    0 no       1024    4      0 
9000  9000 0xff 0xff
           flash         33     6    64    0 yes     32768  128    256 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           efuse          0     0     0    0 no          0    0      0 
0     0 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00
           calibration    0     0     0    0 no          4    0      0 
0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: set SCK frequency to 16000 Hz
avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.01s

avrdude: Device signature = 0x1e9502 (probably m32)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be 
performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: set SCK frequency to 16000 Hz
avrdude: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude: reading input file 
"C:\Users\fuhrm\AppData\Local\Temp\arduino_build_225643/ATMega_32_blinke 
n.ino.hex"
avrdude: writing flash (1042 bytes):

Writing | ################################################## | 100% 
1.28s

avrdude: 1042 bytes of flash written
avrdude: verifying flash memory against 
C:\Users\fuhrm\AppData\Local\Temp\arduino_build_225643/ATMega_32_blinken 
.ino.hex:
avrdude: load data flash data from input file 
C:\Users\fuhrm\AppData\Local\Temp\arduino_build_225643/ATMega_32_blinken 
.ino.hex:
avrdude: input file 
C:\Users\fuhrm\AppData\Local\Temp\arduino_build_225643/ATMega_32_blinken 
.ino.hex  contains 1042 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 
0.66s

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

avrdude done.  Thank you.

von buggy (Gast)


Lesenswert?

Die Meldung kommt bei meinen zwei USBASP auch dauernd. Das liegt daran, 
dass der avrdude dem USBASP ein Kommando schickt, was dieser nicht 
ausführen will.
Da das aber trotzdem funktioniert, kann man die Meldung getrost 
ignorieren.

Ist bei mir mit Windows und Linux das Selbe, ist ja auch die selbe 
Hardware und der selber avrdude ;)

von Markus (Gast)


Lesenswert?

Dann hiermit die abschließende Nachricht. Danke an alle beteiligten.

von Stefan F. (Gast)


Lesenswert?

Markus schrieb:
> In der Dreier Gruppe kann ich anscheinen zwischen 5 und 3.3 V umschalten.

Ja, aber schrägerweise bestimmst du damit nur die Spannung am VCC Pin 
der Stiftleiste. Die Signale haben trotzdem 5V - deswegen sind die 3,3V 
hier sinnlos.

> Also meckert der immer noch irgendwie mit der Frequenz

Weil dein USBASP (wie fast alle) das entsprechende Kommando nicht 
unterstützt. Das ist nur eine Warnung, kein Fehler.

Wie gesagt schalten manche automatisch auf den "Slow" Modus um und 
manche brauchen dafür den Jumper JP3.

> aber das Programm ist drauf.

Also hast dein USBASP erfolgreich auf "Slow" umgeschaltet.

Ich bin neugierig: War das jetzt mit JP3 oder ohne?

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
Noch kein Account? Hier anmelden.