Forum: Mikrocontroller und Digitale Elektronik ATtiny84A-PU mit AVRISP mkII programmieren


von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche einen ATtiny84A-PU mit dem AVRISP mkII zu programmieren, 
erhalte jedoch dabei immer folgende Fehlermeldung:
1
% avrdude -c avrispmkII -p attiny84
2
3
avrdude: stk500v2_command(): command failed
4
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00
5
avrdude: initialization failed, rc=-1
6
         Double check connections and try again, or use -F to override
7
         this check.
8
9
10
avrdude done.  Thank you.
(Im Anhang ist die Ausgabe von avrdude nochmal im Verbose-Mode.)

Ich habe den ATtiny84A-PU an eine 5V-Spannungsquelle angeschlossen. 
Zwischen VCC und GND befindet sich ein 100nF Abblockkondensator und 
zwischen RESET und VCC ein 10kΩ Pull-up-Widerstand.

Das Verwenden einer 3.3V-Spannungsquelle oder das Herabsetzen der 
Frequenz des AVRISP mkII (in Atmel Studio 6 oder mit avrdude -B <x>) hat 
leider keine Veränderung gebracht. Das Problem tritt bei allen fünf 
frisch gekauften ATtiny84A-PU auf.

Da ich einen ATXMEGA32A4 über PDI mit dem AVRISP mkII programmieren 
kann, kann ich einen Defekt des ISP ausschließen oder?

Ich bin im Moment ziemlich ratlos. Hat jemand eine Idee woran das 
Problem liegen könnte?

von Helmut S. (helmuts)


Lesenswert?

Nimm mal das Atmel Studio 6.
Da kannst du erkennen ob der Programmer erkannt wurde und ob der ATtiny 
Spannung hat und dessen Device ID erkannt wird. Außerdem kannst du die 
Fusebits überprüfen bevor du den programmierst.

Warum arbeitest du mit der Kommandozeile?

von Ich (Gast)


Lesenswert?

Tobias schrieb:
> das Herabsetzen der Frequenz des AVRISP mkII

Wie weit bist Du runter gegangen?
Normal werden die mit 8Mhz und div8 eingestellt ausgeliefert, das macht 
dann maximal 250kHz ISP-Takt.

von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Der Programmer wird auch unter Atmel Studio 6 erkannt. Er erkennt die 
angelegte Spannung, kann jedoch keine Device signature, Fusebits oder 
Lockbits auslesen. Es erscheint immer die Fehlermeldung "Unable to enter 
programming mode. Verify device selection, interface settings, target 
power and connections to the target device.". Ich kann jedoch keinen 
Fehler finden.

von Helmut S. (helmuts)


Lesenswert?

Ich schrieb:
> Tobias schrieb:
>> das Herabsetzen der Frequenz des AVRISP mkII
>
> Wie weit bist Du runter gegangen?
> Normal werden die mit 8Mhz und div8 eingestellt ausgeliefert, das macht
> dann maximal 250kHz ISP-Takt.

Aber zunächst läuft der doch mit 1MHz. Da muss der ISP-Takt deutlich 
unter 125kHz gesetzt werden. Erst nachdem die entsprechenden Fusebits 
gesetzt sind läuft der mit 8MHz.

von spess53 (Gast)


Lesenswert?

Hi

Zeig mal die 'Interface Settings'.

MfG Spess

von Tobias (Gast)


Lesenswert?

Ich schrieb:
> Wie weit bist Du runter gegangen?
> Normal werden die mit 8Mhz und div8 eingestellt ausgeliefert, das macht
> dann maximal 250kHz ISP-Takt.

Ich habe verschiedene Werte auch kleiner als 250kHz probiert. Leider 
erfolglos.

von Volker G. (voga2073)


Lesenswert?

Kontrolliere mal die Belegung von MOSI und MISO mit den Vorgaben aus dem 
Datenblatt (Kapitel 19.5).

Ist mir auch schon passiert, dass ich die beiden vertauscht hatte.

Volker

von Achim K. (aks)


Lesenswert?

"-B <x>"

schreib doch mal, welchen Wert Du eingesetzt hast. Ich war mal so 
schlau, hier die Frequenz anstatt die Zeit anzugeben. Und mit 125000 
erreicht man
dann etwas ganz anderes :-). Doku lesen hilft dann ...

von Tobias (Gast)


Lesenswert?

Volker G. schrieb:
> Kontrolliere mal die Belegung von MOSI und MISO mit den Vorgaben
> aus dem
> Datenblatt (Kapitel 19.5).

Ich habe die Belegung mehrmals geprüft und auch mal beide getauscht. 
Jedoch ohne Wirkung.

von Achim K. (aks)


Lesenswert?

avrdude doku:
1
-B bitclock
2
Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE
3
only). The value is a floating-point number in microseconds. The default value
4
of the JTAG ICE results in about 1 microsecond bit clock period, suitable for
5
target MCUs running at 4 MHz clock and above. Unlike certain parameters in
6
the STK500, the JTAG ICE resets all its parameters to default values when the
7
programming software signs off from the ICE, so for MCUs running at lower
8
clock speeds, this parameter must be specified on the command-line. It can
9
also be set in the configuration file by using the ’default bitclock’ keyword.

Meine Tiny's kammen mit 1 Mhz, man muss also was angeben.

von Tobias (Gast)


Lesenswert?

Achim K. schrieb:
> "-B <x>"
>
> schreib doch mal, welchen Wert Du eingesetzt hast.

Da habe ich auch schon mehreres durchprobiert: 0.05, 1, 5, 100, 1000...

von Achim K. (aks)


Lesenswert?

Hallo,

ich habe gerade mal versucht, mit avrdude, stk500v2 und einem tiny44 
(auf interner Osz. 8MHz/8) die Fehlermeldungen nach zustellen:
1
avrdude -c stk500v2 -p t44 -B 10
2
3
avrdude: AVR device initialized and ready to accept instructions
4
5
Reading | ################################################## | 100% 0.01s
6
7
avrdude: Device signature = 0x1e9207
8
9
avrdude: safemode: Fuses OK (E:FF, H:DE, L:62)
10
11
avrdude done.  Thank you.
Mit "-B 10" so funkioniert es bei mir.
1
avrdude -c stk500v2 -p t44 -B 1
2
3
avrdude: AVR device initialized and ready to accept instructions
4
5
Reading | ################################################## | 100% 0.01s
6
7
avrdude: Device signature = 0x010305
8
avrdude: Expected signature for ATtiny44 is 1E 92 07
9
         Double check chip, or use -F to override this check.
10
11
avrdude done.  Thank you.
Mit "-B 1" ist es zu schnell, die Fehlermeldung sieht aber anders aus.
1
avrdude -c stk500v2 -p t44 -B 10
2
3
avrdude: stk500v2_command(): command failed
4
avrdude: initialization failed, rc=-1
5
         Double check connections and try again, or use -F to override
6
         this check.
7
8
9
avrdude done.  Thank you.
Hier habe ich das ISP Kabel abgezogen.

Aber Deine Bilder zeigen eigentlich, dass die Verkabelung richtig ist.
Mir ist aber noch eine "Stromversorgung" aufgefallen. Was nimmst Du den
da? Lässt sich Dein Aufbau um einen 100uF Elko oder gar 
Linearspannungsregler erweitern?

von Axel S. (a-za-z0-9)


Lesenswert?

Verkabelung paßt. Abblock-C ist da. Wenn es trotzdem nicht geht, würde 
ich ein Kontaktproblem vermuten. Steckbretter sind leider manchmal 
unzuverlässig.


XL

von Achim K. (aks)


Lesenswert?

Je nach Netzteil, über das nichts angegeben wurde, kann aber die 
Versorgungsspannung rippeln/schwanken und ein 100uF Elko würde hier 
etwas glätten.

von isnah (Gast)


Lesenswert?

Nach dem avrdude-Verbosefile programmierst du den ATtiny84A mit 3.3V.
Hast du es schon mal mit 5V probiert?

von Tobias (Gast)


Lesenswert?

Achim K. schrieb:
> Je nach Netzteil, über das nichts angegeben wurde, kann aber die
> Versorgungsspannung rippeln/schwanken und ein 100uF Elko würde hier
> etwas glätten.
Verwendet wurde ein 5V 1A Netzteil, welches ursprünglich zu einem D-Link 
Switch gehörte. Wo müsste der 100uF Kondensator hin? Parallel zum 
Ablockkondensator zwischen VCC und GND?

isnah schrieb:
> Nach dem avrdude-Verbosefile programmierst du den ATtiny84A mit
> 3.3V.
> Hast du es schon mal mit 5V probiert?
Ja, mit dem o.g. Netzteil. Bei avrdude wird dann eine Spannung von 5.3 V 
angezeigt.

von Tobias (Gast)


Lesenswert?

Axel Schwenke schrieb:
> Verkabelung paßt. Abblock-C ist da. Wenn es trotzdem nicht geht,
> würde
> ich ein Kontaktproblem vermuten. Steckbretter sind leider manchmal
> unzuverlässig.
Ich hab das ganze nochmal auf einem anderen Steckbrett aufgebaut und 
siehe da, es funktioniert! Ärgerlich, eine so lange Problemsuche für 
einen so einfachen Fehler...

Vielen Dank an dich und alle anderen!

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.