Forum: Mikrocontroller und Digitale Elektronik AVR-ISP-Stick wird nicht gefunden.


von ekkie (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Als Anfänger wollte ich mittels einen AVR-ISP-Stick erste Erfahrung 
sammeln in der Welt der Mikrocontroller Programmierung. Allerdings habe 
ich folgendes Problem.

ich benutze:
-Windows 7 x64
-AVR-ISP-Stick von ehajo.de 
(www.ehajo.de/bausaetze/smd/79/avr-isp-stick) mit dem Treiber 
"libusb-win32" (Version 1.2.6.0)
-Programmsoftware: AVRDUDE
-IDE: BASCOM-AVR IDE [2.0.7.5]
-Mikrocontroller: Atmega328-pu

den Schaltplan habe ich wie im Anhang aufgebaut und jedes Kabel nach 
Fehlern untersucht, sodass beim Testen überall eine Spannung anlag.

Der AVR-ISP-Stick ist nach Installation des Treibers im Geräte-Manager 
erkennbar und unter Eigenschaften als "Gerät funktioniert einwandfrei" 
eingetragen.

in BASCOM habe ich unter <Options/Programmer> folgendes eingetragen:
-Programmer: "external Programmer"

-Program: "D:\WinAVR\bin\avrdude.exe"
-Parameter: "-c usbtiny -P usb -p m328p -U flash:w:{FILE}:i"

Als Fehlermeldung bekomme ich:
"avrdude.exe: Error: Could not find USBtiny device (0x1781/0xc9f)"
"avrdude.exe done. Thank you."

Mein selbstgeschriebendes Programm ist eine einfache Blinkschaltung 
mittels LED. (siehe Anhang)

ich hoffe ihr könnt mir weiterhelfen, da ich leider keine weiteren 
Ansatz finde dieses Problem zu lösen.
(als Student habe ich leider kein Geld für ein Entwicklerboard)
Ich danke für euer Verständnis und euren Rat.

Ekkie

von Frank L. (hermastersvoice)


Lesenswert?

lern zuerst wie man einen Schaltplan zeichnet. In Deinem ist nix mit nix 
verbunden. Kein Wunder dass nix funktioniert.

von Karl M. (Gast)


Lesenswert?

Hallo,

wo ist das Bild vom Gerätemanager und den geladenen Treibern?

Welche Version von Avrdude hat Bascom da verwendet?

Hast Du mal die aktuelle Version von Avrdude geladen und direkt von der 
Konsole, resp. CMD ausprobiert?

Warum fragst Du Hannes nicht direkt?

Was solltest Du mal machen.

von Karl M. (Gast)


Lesenswert?

Hallo ekkie,

was Frank L. meinte, alle Vcc und GND müssen angeschlossen werden und 
müssen jeweils einen 100nF Kondensator erhalten.

Dann muss man noch den passenden ISP Takt, steht im Datenblatt als max. 
1/4* CPU-Takt, eingestellt werden!

von ekkie (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Vielen Dank für deine schnelle Antwort Karl.
ich weiß leider nicht wo ich nachsehen kann welche Version ich von 
AVRDUDE nutze. Ich hoffe dir reicht diese Information 
"avrdude_20100110".

In der Konsole habe ich die selben Parameter eingegeben wie bei Bascom. 
Dort kommt die selbe Fehlermeldung.

Leider bin ich neu hier in diesem Forum und kenne die User noch nicht. 
Wer ist denn Hannes?

von Jim M. (turboj)


Lesenswert?

Diesen Link: http://dokuwiki.ehajo.de/artikel:ispstick-avrdudeconf
hattest Du gesehen?

Der hat eine andere USB VID/PID Kombination, die vermutlich nur neueres 
AVRDUDE mitbringt.

ekkie schrieb:
> "avrdude.exe: Error: Could not find USBtiny device (0x1781/0xc9f)"



Neueres Avrdude müsste mit "-c ehajo-isp" den Programnmer erkennen. Lade 
Dir mal 'ne aktuellere Version runter.

von M. S. (ekkie)


Lesenswert?

Den Link kannte ich noch nicht.
ich habe den Anweisung soweit gefolgt.

als Fehlermeldung in der Konsole bekomme ich nun:
1
syntax error at C:\WinAVR-20100110\bin\avrdude.conf:355

Das ist die Zeile in der der neue programmer definiert wurde
1
type = "usbtiny"

egal was ich an dem Skript vornehme oder ändere, ich bekomme immer einen 
Syntaxfehler. Zusätzlich unterscheiden sich die Dateien avrdude.conf 
(standard) und avrdude.conf (welche im Link zur Verfügung gestellt 
wurde).

In der einen Datei wird alles in "" gesetzt, in der anderen nicht, warum 
auch die Fehlermeldung auftritt.

Wo könnte der Fehler liegen und wie kann ich einen Kontakt mit dem 
ISP-Stick von ehajo letztendlich aufnehmen ?
Außerdem, besitze ich nicht schon die neuste Version (WinAVR-20100110)?

ekkie

von Stefan F. (Gast)


Lesenswert?

> WinAVR-20100110

Das Programmpaket ist von 2010, und darin befindet sich ganz gewiss 
nicht die aktuelle Version von avrdude.

Aktuell ist Version 6.3: 
http://download.savannah.gnu.org/releases/avrdude/

von M. S. (ekkie)


Lesenswert?

ok tut mir leid, dass wusste ich nicht.

ich hatte den Artikel hier auf mikrocontroller.net von WinAVR 
durchgelesen und dort stand:

"Die aktuelle WinAVR Version ist derzeit (Stand 02/2016) 
WinAVR-20100110."

ich dachte die "20100110" würden das Datum der letzten aktuellen Version 
angeben.

Nun habe ich die Version 6.3 gedownloaded und entpackt. in dem Ordner 
befinden sich viele Dateien mit den ich nicht umgehen kann. Die README 
und INSTALL Dateien habe ich mir auch schon durchgelesen. Allerdings 
verstehe ich nicht genau was genau durchzuführen ist.

Ich weiß ich fordere viel, aber könnte mir jemand nochmal erklären wie 
ich von der gedownloadeten Datei "avrdude-6.3.tar.gz" bis zu der 
installierten avrdude.exe komme und diese dann anwenden kann. Ich habe 
wirklich kein Plan wie WinAVR funktioniert was man dort machen soll etc.
(ich habe mir auch schon die Wiki darüber durchgelesen, ist aber als 
Einsteiger nicht gerade einfach alle Informationen einwandfrei 
aufzunehmen)
Mittlerweile sitze ich schon seid Tagen an diesem Problem und verzweifle 
langsam.

Vielen lieben Dank

von Curby23523 N. (Gast)


Lesenswert?

Auf jeden Fall ist deine LED falsch herum.

von bingo (Gast)


Lesenswert?

Meik S. schrieb:
> Ich weiß ich fordere viel, aber könnte mir jemand nochmal erklären wie
> ich von der gedownloadeten Datei "avrdude-6.3.tar.gz" bis zu der
> installierten avrdude.exe komme und diese dann anwenden kann

Du brauchst nicht die Datei "avrdude-6.3.tar.gz", das ist die 
Linux-Version, sondern die Datei "avrdude-6.3-mingw32.zip", das ist die 
Windows-Version.

von Stefan F. (Gast)


Lesenswert?

Du brauchst nur die avrdude.exe und die Konfigurationsdatei. Ersetze 
einfach die beiden Dateien in deiner WinAvr Installation.

Beitrag #5338692 wurde von einem Moderator gelöscht.
von M. S. (ekkie)


Lesenswert?

Vielen dank. Das habe ich getan.

Nun bekomme ich mit den Parametern:
1
 avrdude -c  ehajo-isp -P usb -p m328p
folgende Meldung in der Konsole:
1
 avrdude.exe: initialization failed, rc=-1
2
             Double check connections and try again, or use -F to override
3
             this check.
4
5
6
avrdude.exe done.  Thank you.

Darauf habe ich mit den Parametern:
1
 avrdude -c  ehajo-isp -P usb -p m328p -F
folgende Meldung erhalten:
1
avrdude.exe: initialization failed, rc=-1
2
avrdude.exe: AVR device initialized and ready to accept instructions
3
avrdude.exe: Device signature = 0x4c0000
4
avrdude.exe: Expected signature for ATmega328P is 1E 95 0F
5
6
avrdude.exe done.  Thank you.

was hat das mit dem
1
avrdude.exe: initialization failed, rc=-1
 auf sich und was mache ich generell noch falsch da ich die 
Fehlermeldung nicht wirklich einordnen kann.

von Stefan F. (Gast)


Lesenswert?

Mit dem Parameter "-v" (eventuell merhmals) bekommst du mehr Details zu 
Fehler.

von M. S. (ekkie)


Lesenswert?

1
avrdude.exe: Version 6.2, compiled on Nov 20 2015 at 23:33:37
2
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
3
             Copyright (c) 2007-2014 Joerg Wunsch
4
5
             System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
6
7
             Using Port                    : usb
8
             Using Programmer              : ehajo-isp
9
avrdude.exe: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\\.\libusb0-0001--0x16d0-0x0ba5
10
             AVR Part                      : ATmega328P
11
             Chip Erase delay              : 9000 us
12
             PAGEL                         : PD7
13
             BS2                           : PC2
14
             RESET disposition             : dedicated
15
             RETRY pulse                   : SCK
16
             serial program mode           : yes
17
             parallel program mode         : yes
18
             Timeout                       : 200
19
             StabDelay                     : 100
20
             CmdexeDelay                   : 25
21
             SyncLoops                     : 32
22
             ByteDelay                     : 0
23
             PollIndex                     : 3
24
             PollValue                     : 0x53
25
             Memory Detail                 :
26
27
                                      Block Poll               Page                       Polled
28
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
29
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
30
               eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
31
               flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
32
               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
33
               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
34
               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
35
               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
36
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
37
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
38
39
             Programmer Type : USBtiny
40
             Description     : avr-isp-programmer from eHaJo, http://www.eHaJo.de
41
avrdude.exe: programmer operation not supported
42
43
avrdude.exe: Using SCK period of 10 usec
44
avrdude.exe: initialization failed, rc=-1
45
             Double check connections and try again, or use -F to override
46
             this check.
47
48
49
avrdude.exe done.  Thank you.

von Stefan F. (Gast)


Lesenswert?

Sieht für mich nach schlechter Verbindung zum µC aus. Mach mal LED's mit 
Vorwiderstand an alle Signal-Leitungen (auch Reset, dort aber die LEd 
zwischen VCC und dem Pin).

von Stephan S. (uxdx)


Lesenswert?

Den µC hat er ja wohl erkannt, zu lange Leitung, Kontaktproblem ?

von Stephan S. (uxdx)


Lesenswert?

> avrdude.exe: Version 6.2, compiled on Nov 20 2015 at 23:33:37

Der AVRDUDE 6.3 kennt den ehajo-Stick schon, der 6.2 - den Du benutzt 
hast - noch nicht.

: Bearbeitet durch User
von M. S. (ekkie)


Lesenswert?

Ich habe die VCC und GND Anschlüsse (Pin 7,8,20,22) kontrolliert und sie 
geben eine Spannung aus sodass die LED überall leuchtet. Die LED 
leuchtet allerdings nicht bei:

Vcc(Pin7) - 200 Ohm Widerstand - LED - PC6(Reset)
(ich hoffe das hab ich richtig so verstanden)

Mein Flachbandkabel ist 400mm lang + die Stecker auf dem Breadboard.

Als Kontrolle hab ich eine LED an der Stromversorgung angeschlossen, um 
einen Wackelkontakt zu vermeiden.

(ps: Heißt das, dass die avrdude.exe soweit den ISP-Stick erkennt, aber 
kein Kontakt zu den µC aufnehmen kann?)

von M. S. (ekkie)


Lesenswert?

Ich habe die Version 6.3 ausprobiert und kriege immer noch die gleiche 
Fehlermeldung.

von Karl M. (Gast)


Lesenswert?

Ich schrieb es oben schon:

Karl M. schrieb:
> Dann muss man noch den passenden ISP Takt, steht im Datenblatt als max.
> 1/4* CPU-Takt, eingestellt werden!

von M. S. (ekkie)


Lesenswert?

die Kondensatoren sitzen nun vor den VCC und GND (Pin 7,8,20,22). 
Allerdings verstehe ich noch nicht die Funktion der Kondensatoren.

ich hoffe ich verstehe das richtig, ich stelle den ISP-Takt mittels "-i" 
ein also z.B.
1
avrdude -c  ehajo-isp -P usb -p m328p -i 100000
oder mit "-B" ?

Außerdem weiß ich nicht wo ich den CPU-Takt finde bzw. welcher jetzt 
gemeint ist.
(Mit der Frequenz die ich im Beispiel eingestellt habe bekomme ich immer 
noch die selbe Fehlermeldung, jedoch blinkt die LED nun einmalig: 
"Vcc(Pin7) - 200 Ohm Widerstand - LED - PC6(Reset)")

von Stefan F. (Gast)


Lesenswert?

> Vcc(Pin7) - 200 Ohm Widerstand - LED - PC6(Reset)
> (ich hoffe das hab ich richtig so verstanden)

Beim Beginn des Programmiervorgangs muss der Programmer einen Reset 
auslösen. Dieser dauert solange, wie der ganze Programmiervorgang, denn 
AVR µC sind über die ISP Schnittstelle nur während des Reset 
programmierbar.

Die LED's an den drei anderen Signalen (MISO, MOSI, SCK) müssen während 
des Programmiervorgangs flackern. Ich stelle den Programmieradapter 
mittels Parameter (-B200) gerne auf super-langsam, dann kann die LED's 
besser flackern sehen. Allerdings unterstützen nicht alle 
Programmieradapter diesen Parameter. Ob deiner das kann, weiß ich nicht. 
Probiere es aus.

Wenn nur zwei von den drei LED's flackern (MISO bleibt inaktiv), dann 
reagiert der µC nicht. Wenn nur eine flackert, dann ist dein 
Programmieradapter eventuell defekt. Und wenn alle drei LED's inaktiv 
bleiben, dann hast du wahrscheinlich eher ein Softwareproblem auf dem 
PC.

von M. S. (ekkie)


Lesenswert?

ok ich habe den Fehler gefunden. Nun bekomme ich folgende Meldung:
1
avrdude.exe: AVR device initialized and ready to accept instructions
2
3
Reading | ################################################## | 100% 0.05s
4
5
avrdude.exe: Device signature = 0x1e950f (probably m328p)
6
7
avrdude.exe done.  Thank you.

die rote Lampe am ISP-Stick leuchtet beim bespielen des Programs auch.

Allerdings führt er nicht mein Programm aus. Das einzige was ich sehen 
kann ist, dass die LED an PC5 (welche ja blinken sollte) ganz leicht 
konstant dämmert.
Was mache ich hier falsch? (den 1/4 Takt für den ISP habe ich noch nicht 
eingestellt)

Wenn ihr denkt, das ich zu viel frage und daher nicht genug selbst 
anwenden kann, würde ich mich auch über eine Artikel-/ Buchempfehlung 
freuen. Trotzdem wäre es toll diesen letzen Schritt noch zu meistern, 
weil es mir eher um das Programmieren geht, was ich schon recht gut 
kann.

Vielen Dank

von Stefan F. (Gast)


Lesenswert?

Nach deinem obigen Zitat vom Bildschirm hast du den AVR nur ausgelesen, 
aber keine Firmware hochgeladen. Hast du aber, oder?

Wenn du wissen willst, warum, deine LED nicht tut, was sie soll, dann 
wäre es hilfreich, uns Einsicht in dein Programm zu geben. Ein schwaches 
Glimmen lässt vermuten, dass der Pin nicht als Ausgang konfiguriert 
wurde.

> den 1/4 Takt für den ISP habe ich noch nicht eingestellt

Da die Kommunikation nun funktioniert, ist das nicht mehr nötig.

> würde ich mich auch über eine Artikel-/ Buchempfehlung freuen

Ich habe Bascom selbst noch nicht benutzt, jedoch hatte ich bislang 
mehrmals den Eindruck, dass die Dokumentation des Herstellers bereits 
herausragend gut ist. Außerdem hat Conrad Elektronik jede Menge Bausätze 
und Bücher zu dem Thema, die ebenfalls einen durchdachten Eindruck 
erwecken.

Falls du mal C mit dieser Mikrocontroller Serie lernen möchtest: 
http://stefanfrings.de/mikrocontroller_buch/index.html

von Hans (Gast)


Lesenswert?

Nils N. schrieb:
> Auf jeden Fall ist deine LED falsch herum.

Nein, ist sie nicht. Es ist zwar mittlerweile unüblich LEDs in diese 
Richtung anzuschließen, aber möglich. Sie leuchtet dann eben wenn der 
Port Low ist.
Selbst heute wird in Vorlesungen noch gelehrt, dass LEDs üblicherweise 
so angeschlossen werden.

von Hans (Gast)


Lesenswert?

Hans schrieb:
> Nils N. schrieb:
> Auf jeden Fall ist deine LED falsch herum.
>
> Nein, ist sie nicht. Es ist zwar mittlerweile unüblich LEDs in diese
> Richtung anzuschließen, aber möglich. Sie leuchtet dann eben wenn der
> Port Low ist.
> Selbst heute wird in Vorlesungen noch gelehrt, dass LEDs üblicherweise
> so angeschlossen werden.

Sie muss dann eben auf Masse angeschlossen werden

von M. S. (ekkie)


Lesenswert?

Ich habe mittlerweile den Fehler gefunden und das Programm läuft jetzt 
endlich.

ich möchte mich nochmal herzlich bedanken für die hilfreichen Tipps und 
Ratschläge. Ihr habt mir sehr geholfen!

(der Fehler mit der LED wurde auch schon längst behoben, trotzdem danke 
für die Auskunft.)

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.