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.
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
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)
>(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?
>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.
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.
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?
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.
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 ;)
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.
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?
>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.
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.
>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.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.