Forum: Mikrocontroller und Digitale Elektronik ICD2 Clone - Startprobleme


von Hias (Gast)


Lesenswert?

Hallo,

Ich habe mir die USB-Version des ICD2 Nachbaus von Lothar Stolz 
aufgebaut. http://www.stolz.de.be/
Den Bootloader habe ich mit einem JDM-Programmer programmiert.
Der ICD2 wir korrekt von MPLAB 8.43 erkannt, die Firmware wird korrekt 
geladen, jedoch wird das Target nicht erkannt.

ICDWarn0020: Invalid target device id (expected=0xC3, read=0x0)

Der zu programmierende PIC ist ein dsPic30F3013.

Die Schaltung habe ich schon zum 3.Mal kontrolliert. Da passt alles.
Auch das Target ist richtig angeschlossen. (MCRL, PGD, PGC, VDD, VSS)

Ich habe mal an PGC und PGD eine OSZI angeschlossen. Die Clock Leitung 
funktioniert, jedoch kann ich auf PGD gar nichts erkennen.
Nun ist das mein erster Versuch in Richtung PIC (bis jetzt nur Atmel 
8-bit), jetzt weiß ich nicht wie das Programmieren funktioniert. Aber 
normalerweise müsste ja der Programmer eine Art Kommando in 
Microkontroller seriell schreiben, um dann des Antwort zu lesen. Nur 
leider wird da nichts "reingetaktet". Die beiden Pins. RC4 und RC5 sind 
aber korrekt beschaltet. Wenn ich die beiden Pins "offen lasse" kann ich 
an einem eine Spannungshub von 0,2V messen wenn die Clock "an" ist. Das 
schaut so aus, als ob der µC nach Vdd schalten will. aber nicht kann. 
Einen Pullup habe ich versucht, hat aber nichts gebracht. Pulldown ist 
in der Schaltung vorgesehen. Das ist also auch nicht der Fehler.

Ich vermute jetzt einen Fehler in der Config des Programmer-Controllers.
So was in der Art JTAG disablen, damit PortB bei den Atmel-Kontrollern 
funktioniert. Im Datenblatt habe ich aber nichts dergleichen gefunden.

Hab ihr da Ideen, warum PGD nicht funktioniert?

Gruß Matthias

P.S.: Das Kabel zwischen Programmer und Target ist nur 10cm lang.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Hallo Hias,

>dsPic30F3013

da hast du dir ja direkt zum Start quasi das "dickste" ausgesucht, was 
Microchip so zu bieten hat.

Ich habe mir selbst den gleichen Programmer damals nachgebaut und kann 
dir nur sagen, dass er bei PIC16Fxxx und PIC18Fxxx funktioniert.
Bei den dsPICs bin ich mir leider gar nicht sicher, ob die sich damit 
flashen lassen...

Wurde denn, nachdem du das entsprechende Projekt mit MPLAB eingerichtet 
hast, die "Flash-Firmware" für den dsPic30F3013 in den ICD2-Clon 
übertragen?

(Vor der ersten Programmierung eines neuen Target-Devices wird zunächst 
eine andere Firmware, speziell für den entsprechenden Target, ins ICD2 
geflasht)

Schöne Grüße,
Alex

von Hias (Gast)


Lesenswert?

Hallo,

Ja er hat eine neue Firmware in den ICD geladen, das hat funktioniert.
Auch der Self-Test funktioniet.
Nur das Programmieren funktioniert nicht. (Ich hab auch einen PIC16F874 
getestet -> das gleiche Problem)

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

>(Ich hab auch einen PIC16F874 getestet -> das gleiche Problem)

Das ist gut (oder auch nicht). Es zeigt zumindest, dass es nicht 
unbedingt an dem dsPIC liegt.

Ich habe mir gerade das Datenblatt des dsPICs durchgelesen und konnte 
auch keinen Grund finden, warum er nicht programmiert werden können 
sollte...

Also:
>ICDWarn0020: Invalid target device id (expected=0xC3, read=0x0)

Ist natürlich nicht wirklich eine Hilfe bei der Fehlersuche, 0x0 
bedeutet einfach "Kein Target gefunden"...

Wie sieht es mit den Spannungen aus?
Bekommt dein Target Vdd = 5V? (aus dem ICD2 gespeist)
Liegt an dem Reset-Pin des Targets wenn du programmieren möchtest die 
Programmierspannung Vpp = 13V an?

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

>Ich vermute jetzt einen Fehler in der Config des Programmer-Controllers.

Das musst du mir näher erläutern. Da bei mir die Firmware funktioniert 
gehe ich davon aus, dass sie fehlerfrei ist.

von Hias (Gast)


Lesenswert?

Hallo,

>Wie sieht es mit den Spannungen aus?
>Bekommt dein Target Vdd = 5V? (aus dem ICD2 gespeist)
Nein wird über ein Netzteil gespeist.

>Liegt an dem Reset-Pin des Targets wenn du programmieren möchtest die
>Programmierspannung Vpp = 13V an?

Ich hab ca 12,2 V anliegen.

>Das musst du mir näher erläutern. Da bei mir die Firmware funktioniert
>gehe ich davon aus, dass sie fehlerfrei ist.

Ich denke da eher an Fusebits. Wie bei Atmel auch.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi,

ok,
>Ich hab ca 12,2 V anliegen.

könnte schon mal ein Problem sein.
Im Anhang habe ich dir mal die Spec. von Microchip angehängt. Laut denen 
muss Vpp zwischen 12,75V und 13,25V liegen. Deine 12,2V sind demnach 
etwas zu niedrig. Kannst du ja über das Poti höher einstellen.

>>Bekommt dein Target Vdd = 5V? (aus dem ICD2 gespeist)
>Nein wird über ein Netzteil gespeist.

Dass du die beiden GNDs verbinden musst brauche ich dir vermutlich nicht 
zu sagen ;-)

Lothar Stolz schreibt zudem:
>The target (the PIC you want to debug) and the ICD have to be powered with >same 
voltage (+5V)

Läuft dein Target also auf 5V?

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Ach so, wie man dem Anhang auch entnehmen kann sollte, nachdem man Vpp 
angelegt hat, mit dem 2. CLK-Puls ein HIGH an PGD aus dem Programmer 
rauskommen um dem Target ein "Write"-Command zu übermitteln.

von Hias (Gast)


Lesenswert?

Die Spannung hab ich hochgedreht (jetzt bei 12,7V, mehr geht nicht ohne 
die Schaltung zu ändern).

Die 5V kommen aus einem Labornetzgerät. Der Programmer wird über USB 
versorgt. Das sollte doch funktionieren?

Masse ist verbunden, klar ;)

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Tja, dann kann ich dir im Moment leider auch nicht weiter helfen... 
12,7V liegt natürlich immer noch außerhalb der Spec. aber ob es daran 
liegt ?! Ich kann es mir, um ehrlich zu sein, nicht vorstellen.

Wie gesagt, bei mir hat dieses Teil damals auf Anhieb funktioniert. 
Jedoch gab es damals nur die RS232-Version :-)

Sorry... du könntest vielleicht noch ein Foto deines Aufbaus posten.

Einem PIC-Kollegen hilft man immer gern, hier im Forum sind ja eher 
ATMEL-Leute unterwegs...

Ansonsten kann ich dir nur dies hier empfehlen:
http://sivava.com/MPLAB_ICD2.html

Habe ich mir dann irgendwann mal gegönnt, da mir die 
RS232-Programmierung auf den Keks ging.

von Hias (Gast)


Lesenswert?

Das Problem scheint PGD zu sein. Da bewegt sich rein gar nichts.

Ich habe im Gegensatz zum Programmer von Lothar den PIC16F876A statt den 
ohne "A" verbaut. Bis auf einen anderen Bootloader (der funktioniert) 
muss ich ja nichts ändern?

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

>Ich habe im Gegensatz zum Programmer von Lothar den PIC16F876A statt den
>ohne "A" verbaut. Bis auf einen anderen Bootloader (der funktioniert)
>muss ich ja nichts ändern?

Genau, ist bei mir auch der Fall. Der ohne "A" war damals schon nicht 
mehr zu bekommen :-)
Irgend jemand aus dem Gästebuch auf der Seite hat ja dann einen 
Bootloader für den 16F876A geschrieben. Diesen hab' ich verwendet.

Erläutere bitte nochmal etwas genauer was mit PGD bei dir ist.
Ich bin leider erst am Montag wieder zu Hause. Ggf. könnte ich dann dort 
mit einem Oszi messen, wie das Verhalten bei mir ist.

von Chris (Gast)


Lesenswert?

Wenn du zwei VDD Spannungen hast, könnte das ein Problem sein.
Der von dir gewählte Baustein braucht nächmlich ein Low auf PGM sowie 
PGC
wenn VCC anliegt, und dann später noch das Anlegen von VPP, ansonsten
geht er nicht in den ICP modus. Im ICP modus muß dann noch was 
configuriert werden, um dann beim nächsten Reset in den extended ICP 
modus
zu gelangen, ist also nicht so trivial wie andere Bausteine von 
Microchip.
Diser Baustein ist auch Weltraumfähig, und deshalb warscheinlich auch
diese Sicherheitsmaßnahme.

von Hias (Gast)


Lesenswert?

>Erläutere bitte nochmal etwas genauer was mit PGD bei dir ist.
>Ich bin leider erst am Montag wieder zu Hause. Ggf. könnte ich dann dort
>mit einem Oszi messen, wie das Verhalten bei mir ist.

Die PGD Leitung hat die ganze Zeit Massepegel. (Pulldown)

>Der von dir gewählte Baustein braucht nächmlich ein Low auf PGM sowie
>PGC
Was hats mit dem PGM auf sich? Im Datenblatt wird der nicht erwähnt?

Ich hab übrigens das Target über USB versorgt, also wie den 
Programmer...
Das selbe Spiel.

von E. M. (hias)


Lesenswert?

Hallo,

Wie warscheinlich ist es, dass ein einzelner Pin des µC defekt ist?
Der Controller war neu und ist einmal mit einem Bootloader programmiert 
worden. Ein Fehler in der Schaltung lag nicht vor. Jedoch scheint der 
PGD Pin tot zu sein.

Ich vermute, dass zur Programmierung die SPI-Einheit verwendet wird. 
Wenn durch Überspannung oder dergleichen ein Defekt verursacht worden 
wäre, müsste ja wohl die gesamte SPI Einheit oder der ganze Port defekt 
sein?

Habt ihr noch andere Ideen?

MfG
Hias

von hias (Gast)


Lesenswert?

So jetzt hab ich auch einen Controllerdefekt ausgeschlossen.
Ein neuer Controller zeigt das selbe Verhalten.

Kann das auch am Target hängen?
Was kann man am unverbundenem ICD2 am PGD-Pin messen? Hat da jemand eine 
Info für mich?

Danke

von hias (Gast)


Lesenswert?

Hallo,

Ich habe nun eine Hand voll neuer PICs.
Der ICD2 Nachbau funktioniert mit einem PIC16F887, auch einen PIC16F876 
kann ich programmieren.

Allerdings kann ich keinen dsPIC programmieren.

Die Schaltung ist immer die gleiche.
Der Target-µC ist an allen Vss, Vdd sowie AVss und AVdd Pins zur 
Spannungsversorgung beschaltet. Dazu jeweils ein 100nF C.
MCLR, PGD, PGC sowie Vss sind mit dem ICD2 verbunden. Sonst ist nichts 
verdrahtet.

MCLR ist während dem Programmiervorgang 13,2V.

Die Frage ist was jetzt den dsPIC vom PIC16 unterscheidet?

Ich habe mir einen PICKIT2 ausgeliehen der das selbe Verhalten zeigt.
Deshalb muss der Fehler in der Targetbeschaltung liegen.

Habt ihr vielleicht einen Tipp?

MfG
Hias

von regue (Gast)


Lesenswert?

Hallochen
Es gibt bei den 30Fxxx ein paar fallstricke, bei einige gehen die EMUD 
und EMUC pin nach einem prog vorgang nicht mehr zu nutzen mann muss auf 
die EMUD2 oder so gehen, weil die anderen mit I²C oder so gnutzt werden. 
Schau mal ins Datenblatt was das dazu sagt. Ich hab aber auch eine Prob. 
mit dem USB. Mir wird irgendwie nach einigen debug und prog Vorgängen 
die usb erkennung im 18F4550 überschrieben. Neu gebrannt und es geht 
wieder, ich hab aber bisher nichts dazu gefunden. Ausser das es mit dem 
USB beim ICD2 doch reichlich Probleme gibt. Vieleicht hat von euch einer 
eine Ide.
Reinhard

Beitrag #5076497 wurde von einem Moderator gelöscht.
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.