Forum: Mikrocontroller und Digitale Elektronik Diamex ISP will nicht


von Freddy L. (ananas_k)


Angehängte Dateien:

Lesenswert?

Hallo,

ich wollte mal zu Testzwecken einen Atmel Atmega328p mit einem 
ISP-Programmer programmieren. Dazu habe ich mir folgenden Programmer 
geholt:

https://www.amazon.de/ISP-Programmer-Adapter-STK500-ATmega-ATtiny/dp/B00IYNAXUC/ref=sr_1_5?ie=UTF8&qid=1487491568&sr=8-5&keywords=tremex

Ich habe also auf einem Breadboard einen Atmega328p. Dieser wird mit 5V 
von einem 7805 versorgt. Vcc und Avcc sind mit dem Pluspol und die 
beiden GND-Pins mit dem Minuspol verbunden. Zusätzlich ist ein 0,1µF 
Kondensator zwischen Vcc und GND geschaltet.
An dem Resetpin ist ein 10k-Widerstand an Vcc angeschlossen.
Die Pins des Diamex-ISPs sind mit den entsprechenden Pins am µC 
angeschlossen (SCK, MISO, MOSI, RESET).

Zum Testen ist habe ich eine einfache LED, welche blinken soll. Wenn ich 
jedoch das Programm flashen will, erhalte ich immer Fehlermeldungen (s. 
Anhang). Das Hostsystem ist ein Windows 10 x64.

Kann mir jemand helfen oder vielleicht ein Tipp geben?

Gruß,
Freddy

von Wilhelm S. (wilhelmdk4tj)


Lesenswert?

Hallo Freddy,

versuche malin Bascom bei Options->Programmer:

'USBprogProgrammer/AVR ISP MkII'

Deinen Progger kenne ich nicht. Ich benutze seit
einigen Jahren eine Diamex AllAvr. Deiner wird wohl ähnlich sein.

73
Wilhelm

von Heinz V. (heinz_v)


Lesenswert?

Schau mal da:

http://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-Atmel-AVR-Rev2

Atmel Studio muss installiert sein. Kontrollier mal unter 
Systemsteuerung/System/Hardware/Gerätemanger ob der Jungo Treiber 
installiert ist, ohne den gehts nicht.

von Freddy L. (ananas_k)


Lesenswert?

Wilhelm S. schrieb:
> versuche malin Bascom bei Options->Programmer:
>
> 'USBprogProgrammer/AVR ISP MkII'

Klappt leider nicht. Er sagt, er findet keine USB-Device mit "MK2".

Heinz V. schrieb:
> Atmel Studio muss installiert sein. Kontrollier mal unter
> Systemsteuerung/System/Hardware/Gerätemanger ob der Jungo Treiber
> installiert ist, ohne den gehts nicht.

Version 7 ist ok? Oder doch lieber eine ältere? Ich hatte das schon 
einmal installiert, aber da ging es auch nicht. Ich kann es aber gerne 
nochmal installieren.

von Heinz V. (heinz_v)


Lesenswert?

http://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-Atmel-AVR-Rev2

Du kannst dort evtl. notwendige Treiber runterladen.

von Bernd K. (prof7bit)


Lesenswert?

Freddy L. schrieb:
>> 'USBprogProgrammer/AVR ISP MkII'
>
> Klappt leider nicht. Er sagt, er findet keine USB-Device mit "MK2".

Kann auch nicht denn das ist ein STK500. Steht doch in der verlinkten 
Artikelbeschreibung.

von Freddy L. (ananas_k)


Lesenswert?

Heinz V. schrieb:
> Du kannst dort evtl. notwendige Treiber runterladen.

Angeblich braucht man die unter Win10 nicht. Ich werde es mal trotzdem 
versuchen. Bin momentan unterwegs.

von c-hater (Gast)


Lesenswert?

Freddy L. schrieb:

> Angeblich braucht man die unter Win10 nicht.

Braucht man dort tatsächlich nicht. Kann man ganz einfach verifizieren: 
Man zieht den Programmer ab und schaut sich im Gerätemanager die Liste 
der "Anschlüsse (COM und LPT)" an. Dann steckt man das Teil dran und 
beobachtet die Liste. Hier sollte ein neuer COM-Port auftauchen. Das ist 
dann der gesuchte Programmer und auch alles, was nötig ist, um ihn zu 
benutzen.

Natürlich muss man die Software auf die Nummer eben dieses COM-Ports 
einstellen und als Protokoll STK500v2.

Damit sollte auf jeden Fall erstmal der Programmer selber erreichbar 
sein. Überprüfen läßt sich das, indem man die ISP-Geschwindigkeit 
einstellt oder die Targetspannung anzeigen läßt. Geht das, ist die 
Anbindung des Programmers selber OK. Alles andere sind dann Probleme in 
der Verkabelung zwischen Programmer und Target, bei der Beschaltung des 
Targets oder bei dessen Taktsystem.

von Freddy L. (ananas_k)


Lesenswert?

c-hater schrieb:
> Überprüfen läßt sich das, indem man die ISP-Geschwindigkeit
> einstellt oder die Targetspannung anzeigen läßt. Geht das, ist die
> Anbindung des Programmers selber OK.

In Atmel Studio habe ich das schon hinbekommen.
Ich weiß leider nicht, was das alles für Takte sind und was sie 
bewirken. Hättest du irgendeine Quelle zum Nachlesen? Ich werde selber 
aber auch noch mal schauen.

von Stefan F. (Gast)


Lesenswert?

Den Jungo treiber brauchst du ganz sicher nicht. Den braucht man nur für 
Programmer, die KEINEN seriellen Port emulieren. Ebenso brauchst du 
keinen libusb Treiber, aus dem selben Grund.

Benutze mal zum Vergleich avrdude, das Programm gibt detailliertere 
Fehlermeldungen aus.

Download: 
http://download.savannah.gnu.org/releases/avrdude/avrdude-6.3-mingw32.zip

Befehl: avrdude -c stk500v2 -P COM1 -p atmega328p -vvv

Wenn dein COM-Port eine zweistellinge Nummer hat, dann schreibe: -c 
\\.\COM10

von Freddy L. (ananas_k)


Angehängte Dateien:

Lesenswert?

Stefan U. schrieb:
> Befehl: avrdude -c stk500v2 -P COM8 -p atmega328p -vvv

Hat leider nicht geklappt (s. Anhang).

EDIT: COM-Port habe ich über den Geräte-Manager ermittelt. Sowohl Port 
10 als auch Port 8 haben nicht funktioniert. Beim Port 10 musste ich 
jedoch den Parameter anpassen, da "-c" den Programmer setzt (s. "avrdude 
-h")

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Die Fehlermeldung kommt dann, wenn der COM Port nicht existiert. Bist du 
sicher, dass dein Programmer COM8 verwendet? Und warum hast du dann 
COM10 versucht?

Wie wird dein Programmer im Gerätemanager angezeigt?

von Freddy L. (ananas_k)


Angehängte Dateien:

Lesenswert?

Ich habs über den Geräte-Manager ermittelt. Da steht auch der COM-Port 
dahinter. Wenn man in den Erweiterten Einstellungen schaut, kann man 
auch manuell einen COM-Port definieren. Da habe ich mal den nächsten 
freien ausgewählt, weil bei den anderen belegt dahinter stand.

von Stefan F. (Gast)


Lesenswert?

Ok, dann ist zumindest momentan COM10 richtig.


Aber die Fehlermeldung "Das System kann die angegebene Datei COM10 nicht 
finden" widerspricht dem. Kann es sein, dass du keine Admin Rechte hast?

Probier mal einfach zum Vergleich COM6. Das ist zwar ein andere gerät, 
aber so merkst du, ob dein Windows generell ein Problem damit hat, 
COM-Ports zu öffnen.

von Quarz? (Gast)


Lesenswert?

Ist der Atmega auch wirklich fabrikneu, dass heist der interne 
Oszillator enabled? Falls der 328 schon mal geflasht wurde und die Fuses 
auf einen externen Quarz gestellt sind, muß ein solcher auch beim 
Programmieren auf einem Steckbrett angeschlossen werden (+ 2 
Kondensatoren).

von c-hater (Gast)


Lesenswert?

Stefan U. schrieb:

> Aber die Fehlermeldung "Das System kann die angegebene Datei COM10 nicht
> finden" widerspricht dem. Kann es sein, dass du keine Admin Rechte hast?

Das spielt keinerlei Rolle. Natürlich dürfen auch Nicht-Admins auf 
COM-Ports zugreifen.

Ein Problem könnte aber dumme, nur noch historisch wertvolle Software 
sein, die COM-Ports nur bis COM9 ansprechen kann. Keine Ahnung, ob 
BASCOM zu dieser Kategorie gehört.

Die Abhilfe gegen dieses Problem bestünde natürlich darin, dem COM-Port 
im Gerätemanager eine Nummer kleiner 10 zuzuweisen. Achtung: Windows 
zickt da manchmal rum. Am besten nach der Zuweisung einen Reboot 
ausführen und dann im Gerätemanager kontrollieren, dass die zugewiesene 
Nummer tatsächlich benutzt wird.

von Freddy L. (ananas_k)


Angehängte Dateien:

Lesenswert?

Quarz? schrieb:
> Ist der Atmega auch wirklich fabrikneu

Ja sollte er. Ich habe ihn bei Reichelt bestellt. Davor habe ich ihn 
noch nie benutzt. Sollte also leer sein.

Ich habe mal COM6 benutzt, das sieht schonmal besser aus (s. Anhang)

von Freddy L. (ananas_k)


Lesenswert?

c-hater schrieb:
> Die Abhilfe gegen dieses Problem bestünde natürlich darin, dem COM-Port
> im Gerätemanager eine Nummer kleiner 10 zuzuweisen.

Aber das hat vorher doch auch schon nicht funktioniert!

Über modernere Software wie Atmel Studio 7 und über die Arduino IDE 
1.8.1 funktioniert es auch nicht. Hättest du vielleicht noch eine andere 
Idee?

Gruß,
Freddy

von c-hater (Gast)


Lesenswert?

Freddy L. schrieb:

> Über modernere Software wie Atmel Studio 7 und über die Arduino IDE
> 1.8.1 funktioniert es auch nicht.

Was genau funktioniert nicht? Hast du die beiden Sachen ausprobiert, die 
ich vorgeschlagen habe und somit den Fehlerbereich eingegrenzt?

von Stefan F. (Gast)


Lesenswert?

@Freddy

Wir sind also jetzt darüber hinaus, den COM-Port zu öffnen.

Stimmt die Ausgabe "Vtarget 2,6V?" und sind die ungewöhnlichen 2,6V auch 
gewollt? Mess mal nach. Ich wette, dass dein µC keine ordentliche 
Spannungsversorgung hat.

von Freddy L. (ananas_k)


Lesenswert?

Mein Problem ist, dass ich das Ding nicht benutzen kann, um mein 
einfaches LED-Blink-Programm auf den µC zu brennen.

Die COM-Ports habe ich überprüft. Es ist der richtige auch ausgewählt.

Die Verkabelung des Targets (Atmega328p) ist minimalistisch: 5V an Vcc 
und Avcc, 2x GND an GND. Außerdem die SCK, MISO, MOSI Pins an die 
entsprechenden Pins des µC. Reset am Reset-Pin. Außerdem 10k-Widerstand 
von Vcc nach Reset-Pin.

Mehr ist da nicht. Und ich finde den Fehler leider nicht.

von Freddy L. (ananas_k)


Lesenswert?

Stefan U. schrieb:
> Stimmt die Ausgabe "Vtarget 2,6V?" und sind die ungewöhnlichen 2,6V auch
> gewollt? Mess mal nach. Ich wette, dass dein µC keine ordentliche
> Spannungsversorgung hat.

Ich benutze eine Externe Spannungsversorgung. Das ist ein 12V-Netzteil, 
was an einem 7805 angeschlossen ist. Somit liegt die Spannung bei 5V. 
Die PINs zur Stromversorgung habe ich garnicht am 6PIN-Header 
angeschlossen. Außerdem sind die Jumper auf dem ISP auch so eingestellt, 
dass gar keine Spannung anliegen dürfte (s. 
http://www.diamex.de/dxshop/mediafiles//Sonstiges/erfos-avr-isp2.pdf)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> 5V an Vcc

Aber dein Programmer zeigt 2,6V an. Mess doch mal nach. Wenn der 
Programmer lügt, ist er kaputt (oder einfach nur das Flachkabel).

Wenn er nicht lügt, ist dein Netzteil kaputt.

> Die PINs zur Stromversorgung habe ich garnicht am
> 6PIN-Header angeschlossen.

Das musst du aber machen, zumindest bei den "originalen" 
Programmieradaptern von Atmel. Die funktionieren sonst nicht, weil ihre 
Ausgangstreiber sonst keine Stromversorgung haben.

von Freddy L. (ananas_k)


Lesenswert?

Wenn ich nachmesse, dann kommt der richtige Wert. Jedoch habe ich etwas 
merkwürdiges entdeckt:

Das Pinout im Datenblatt ist völlig falsch.

? -> x  x -> GND
? -> x  x -> ?
? -> x  x -> Vcc (2,66V)

Irgendwas stimmt hier nicht.

von Bernd K. (prof7bit)


Lesenswert?

Freddy L. schrieb:
> Das Pinout im Datenblatt ist völlig falsch.
>
> ? -> x  x -> GND
> ? -> x  x -> ?
> ? -> x  x -> Vcc (2,66V)
>
> Irgendwas stimmt hier nicht.

Fragezeichen und x? Ich glaub nicht daß das so in irgendeinem Datenblatt 
steht.

Die 6 Pins haben eine eindeutige Nummerierung von 1 bis 6 und im Web 
sind notfalls haufenweise Bilder zu finden anhand derer man sich an der 
Nase des Wannensteckers orientieren kann um herauszufinden wo Pin 1 
liegt.

von Stefan F. (Gast)


Lesenswert?

> Wenn ich nachmesse, dann kommt der richtige Wert

Welcher "richtige" Wert?

Welche Spannung liegt an den Pins des Mikrocontrollers an und welche 
Spannung am anderem Ende des Flachkabels (Stecke notfalls eine Nadel 
rein, um messen zu können).

> Das Pinout im Datenblatt ist völlig falsch.

Dort ist es richtig dargestellt: 
http://makerdude.com/blog/wp-content/uploads/2012/03/icsp_hookup.png

von Freddy L. (ananas_k)


Lesenswert?

Ok, ich habe mal die Anschlüsse aus dem Datenblatt (s. 
http://www.diamex.de/dxshop/mediafiles//Sonstiges/erfos-avr-isp2.pdf) 
genommen und spiegelverkehrt angeschlossen. Jetzt konnte folgenden Code 
flashen
1
$regfile = "m328pdef.dat"
2
3
Config Portc.5 = Output
4
5
   Do
6
      Portc.5 = 1
7
      Waitms 800
8
      Portc.5 = 0
9
      Waitms 800
10
   Loop
11
12
End

Jetzt blinkt meine LED aber nicht in einem 800ms Abstand (immerhin 
blinkt sie), sondern in einem größeren. Liegt das am Takt des µC?

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Vermutlich musst du deinem Compiler irgendwo mitteilen, welche 
Taktfrequenz der µC hat. Da ist vermutlich standardmäßig 8Mhz 
vorgegeben, aber im Lieferzustand haben die AVR's einen Taktgeber mit 
8Mhz der durch 8 geteilt wird - also effektiv 1Mhz.

Du kannst im Register CLKPR den Teilerfaktor für die Taktfrequenz 
verändern.

von Freddy L. (ananas_k)


Lesenswert?

Habs gefunden und gelöst!

Läuft jetzt alles wie es soll! Großen dank an alle!!! Einen schönen 
Sonntag wünsche ich!

von Bernd K. (prof7bit)


Lesenswert?

Freddy L. schrieb:
> Ok, ich habe mal die Anschlüsse aus dem Datenblatt (s.
> http://www.diamex.de/dxshop/mediafiles//Sonstiges/erfos-avr-isp2.pdf)
> genommen und spiegelverkehrt angeschlossen.

Das Datenblatt ist richtig. Die Abbildung zeigt die Stiftwanne von oben 
betrachtet (nicht von der Lötseite!) Pin 3 ist SCK (am nächsten zur 
Nase), Pin 1 ist MISO (Pin 1 ist auch auf dem Stecker mit einem kleinen 
Dreieck markiert)

von Freddy L. (ananas_k)


Lesenswert?

Ich sehe da kein Dreieck.

von Bernd K. (prof7bit)


Lesenswert?

Freddy L. schrieb:
> Ich sehe da kein Dreieck.

Hier ist eine Abbildung für einen 10-poligen, da ist es gut zu sehen:
http://dl6gl.de/basteltipps/flachkabel-und-pfostenstecker

beim 6-Poligen ist es genauso. Auch die Nummerierung: alle ungeraden 
Zahlen auf der Seite mit der Nase. Pin 1 beim Dreieck.

von Stefan F. (Gast)


Lesenswert?

> Habs gefunden und gelöst!

Was denn? Sei so nett und verrate uns deine Lösung.

von Dummy (Gast)


Lesenswert?

Freddy L. schrieb:
> Ok, ich habe mal die Anschlüsse aus dem Datenblatt (s.
> http://www.diamex.de/dxshop/mediafiles//Sonstiges/erfos-avr-isp2.pdf)
> genommen und spiegelverkehrt angeschlossen. Jetzt konnte folgenden Code
> flashen
> $regfile = "m328pdef.dat"
>
> Config Portc.5 = Output

von Stefan F. (Gast)


Lesenswert?

Ich dachte, du hättest das gelöst:
> Jetzt blinkt meine LED aber nicht in einem 800ms Abstand

von Freddy L. (ananas_k)


Lesenswert?

Hatte ich auch. Schau mal beim Flashen in das Tab "Locks and Fuse bits". 
Da gibt es eine Option "Oszilator divide enable". Die kannst du auf 
disable stellen.

von Freddy L. (ananas_k)


Lesenswert?

Das Ding funktioniert jetzt irgendwie nicht mehr. Ich habe keine 
Einstellung geändert. Warum kann etwas nicht einmal laufen :( Blödes 
Win10

von Stefan F. (Gast)


Lesenswert?

Welches Ding funktioniert nicht mehr?
Was heisst "irgendwie"?

Ich habe das Gefühl, dass du gar keine Hilfe haben willst.

von Freddy L. (ananas_k)


Lesenswert?

Entschuldige, mein Fehler.

Jetzt habe ich wieder die gleichen Probleme. Mal kann der COM-Port nicht 
geöffnet werden, mal kann die DeviceID nicht gelesen werden. Ich habe 
den Verdacht, dass das Problem beim Betriebssystem liegt. Ich werde mal 
ein Linux aufsetzten und es dann morgen nochmal probieren.

von Stefan F. (Gast)


Lesenswert?

Ubuntu kannst du ohne Installation benutzen

von Holger L. (max5v)


Lesenswert?

Freddy L. schrieb:
> Die Verkabelung des Targets (Atmega328p) ist minimalistisch: 5V an Vcc
> und Avcc, 2x GND an GND. Außerdem die SCK, MISO, MOSI Pins an die
> entsprechenden Pins des µC. Reset am Reset-Pin. Außerdem 10k-Widerstand
> von Vcc nach Reset-Pin.

Freddy L. schrieb:
> Die PINs zur Stromversorgung habe ich garnicht am 6PIN-Header
> angeschlossen.

Hast du denn den GND deines Programmers mit dem GND deiner 
Stromversorgung verbunden?

Wozu überhaupt die externe Versorgung mit Netzteil wenn dein Programmer 
bei 5V ca. 500mA liefern kann, ist doch wesentlich einfacher zum Testen.

von Freddy L. (ananas_k)


Lesenswert?

Aktuell sieht es bei mir so aus, dass Linux nicht will... nur für den 
Fall, dass sich jemand wundern sollte, wenn ich länger nicht schreiben 
sollte.

Gruß,
Freddy

von Freddy L. (ananas_k)


Lesenswert?

Ich wollte nur noch mal schreiben, dass das Problem gelöst ist.

Es schien daran zu liegen, dass der µC defekt war. Ein anderer hat 
sofort problemlos funktioniert.

Gruß,
Freddy

von Wilhelm S. (wilhelmdk4tj)


Lesenswert?

Hallo Freddy,
na prima.

Ich finde es nett, dass du dir wenigstens die Mühe
gibst uns mitzuteilen, dass sich das 'Problem' gelöst hat.
Weiter viel Erfolg beim Basteln.

73
Wilhelm

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.