Forum: Mikrocontroller und Digitale Elektronik PICkit 3 -> Target Device ID (0x0) does not match


von Terence S. (takeshi)


Lesenswert?

Vorweg: Ich habe nach anderen Topics gesucht, ähnliche Fälle gefunden, 
aber kein Fall passte ganz und eine Lösung gab es auch nicht. Um 
Verwirrung zu vermeiden, habe ich mich für eine neue Topic entschieden.

Meine Hard- und Software:
- Windows 7 (64 Bit)
- PICkit 3 und MPLAB IPE v3.15.
- PIC24FJ128GA010 und PIC24FJ128GC010

Wenn ich nun mit MPLAB IPE den µC auswähle und auf "Connect" gehe, kommt 
die Fehlermeldung "Target Device ID (0x0) does not match expected Devide 
ID (0x4...). Would you like to continue?". Der µC kann also gar nicht 
angesprochen werden, die ID wird deshalb nicht ausgelesen und stimmt 
dann natürlich nicht mit der erwarteten ID überein. So weit klar, nur 
warum?

Ich habe mir eine kleine Platine zusammengeschustert, auf der neben dem 
PIC nur der Quarz und Kondensatoren am Quarz und der Vorsorgung sitzen, 
wobei der Quarz nicht bestückt ist (bei einem vorherigen Versuch schon). 
Dabei habe ich folgende Verbindung:
1 (MCLR): Pin 13 (MCLP)
2 (VDD): Pin 2 (VDD), 16 (VDD), 30 (AVDD), 37 (SVDD), 46 (VDD), 62 (VDD)
3 (VSS): Pin 15 (VSS), 32 (AVSS), 32 (SVSS), 45 (VSS), 65 (VSS), 75 
(VSS)
4 (PGD): Pin 25 (PGED1)
5 (PGC): Pin 24 (PGEC1)
6 (PGM): N/C

Die Verbindung geschieht über eine Stiftleiste direkt von der Platine 
zum PICkit, also keine lange Leitung.

Die Versorgung geschieht über den PICkit, dafür habe ich unter den 
erweiterten Einstellungen 3,25 V eingestellt und die sind nach Messung 
des PICkit auch in Ordnung.

Habe einen zweiten PICkit 3 ausprobiert, der definitiv funktioniert 
(wird wo anders mit PIC32 eingesetzt), der geht auch nicht. Dann habe 
ich es mit einem PIC12F675 versucht, mit dem geht es.

Daher schließe ich den PICkit 3 und die Software als Fehlerursache aus. 
Ich habe mehrere µCs probiert, alle neu, also schließe ich die auch aus. 
Der Fehler muss also vor der Tastatur sitzen, aber ich finde ihn einfach 
nicht. Muss ich beim Anschließen eines PIC24FJ etwas beachten, was bei 
kleineren PICs in DIP-Gehäuse nicht zu bachten ist? Da habe ich nur 
gefunden, dass ich AVSS und AVDD anschließen muss, da es sonst nicht 
geht. Aber das habe ich ja.

Vielen Dank schon mal fürs Lesen und eventuell noch für eine hilfreiche 
Antwort :)

von X4U (Gast)


Lesenswert?

Terence S. schrieb:
> Target Device ID (0x0) does not match expected Devide
> ID (0x4...). Would you like to continue?"

> Der µC kann also gar nicht angesprochen werden,
Dann kommt "Target not found"

Der Progger bekommt wohl falsche Daten von Pic zurück.

> Ich habe mir eine kleine Platine zusammengeschustert,
Mögliche Ursachen:

1. Datenleitungen: (ICSP / ICSD)
- zu hohe Kapazität gegen Vcc oder Vdd
- zu geringer Widerstand gegen Vcc oder Vdd
- zu hoher Widerstand zwischen Progger und Pic
- Kurzschluss oder zu kleiner Widerstand zwischen den Leitungen

2. MCLR (Reset)
- zu kleiner Pullup gegen Vcc (10k ist Ok)

3. Schaltung zieht zu viel Strom beim Proggen, Spannung bricht zusammen

4. Pic ist ein Low voltage programming Typ
  (spekulativ, ob es das gibt weiß ich grad nicht)

von Nico (nico123)


Lesenswert?

Ganz wichtig, an jedes Vcc-GND-Paar gehört ein 100nF-Kondensator!
Und dann mal testen den PIC per externer Stromversorgung zu speisen.

Benutzt Du den internen Spannungregler im PIC? Ich weiß nicht genau ob 
man den deaktivieren muss/sollte wenn man ihn nicht nutzt!?

von Klaus (Gast)


Lesenswert?

X4U schrieb:
> 3. Schaltung zieht zu viel Strom beim Proggen, Spannung bricht zusammen

Der PICKit prüft die Spannung am Target. Ist sie nicht da, gibt es eine 
passende Fehlermeldung. Speist er das Target und bricht die Spannung 
ein, gibt es ebenfalls eine passende Meldung. Diese Meldung "Target 
Device ID (0x0) ...." kommt dann nicht.

MCLR, PGD und PGC sollten direkt und ohne andere Bauteile angeschlossen 
sein. Der PICKit kümmert sich um MCLR, solange er dran ist brauchts auch 
keinen Pullup. Auf keinen Fall ein C an einen dieser Anschlüsse.

MfG Klaus

von Terence S. (takeshi)


Angehängte Dateien:

Lesenswert?

Danke erst mal für die Antworten!

X4U schrieb:
> Terence S. schrieb:
>> Target Device ID (0x0) does not match expected Devide
>> ID (0x4...). Would you like to continue?"
>>
>> Der µC kann also gar nicht angesprochen werden,
> Dann kommt "Target not found"
>
> Der Progger bekommt wohl falsche Daten von Pic zurück.
Das habe ich direkt einmal überprüft, da muss ich korrigieren ;)
Die Software macht es daran fest, ob die Versorgungsspannung vorhanden 
ist. Wenn ja -> PIC vorhanden, wenn nein -> kein PIC vorhanden. Versorge 
ich über den PICkit 3, dann sagt mir die Software, dass die ID nicht 
stimmt, wenn gar kein PIC vorhanden ist. Versorgt der PICkit 3 die 
Schaltung nicht selbst, dann fehlt die Versorgung und es kommt "Device 
not found".

X4U schrieb:
> 1. Datenleitungen: (ICSP / ICSD)
> - zu hohe Kapazität gegen Vcc oder Vdd
> - zu geringer Widerstand gegen Vcc oder Vdd
> - zu hoher Widerstand zwischen Progger und Pic
> - Kurzschluss oder zu kleiner Widerstand zwischen den Leitungen
- Eine zu hohe Kapazität an VDD glaube ich nicht. Im beiliegenden 
Blättchen steht, dass die Kapazität 100 µF nicht überschreiten darf. Ich 
habe 500 nF.
- Zu geringe Widerstände (also Kurzschlüsse) zwischen den Leitungen sind 
nicht vorhanden, alle > 200 kΩ.
- Zu hoher Widerstand in den Leitungen dürfte es auch nicht sein, denn 
der ist echt ganz kurz und direkt angebunden, keine zusätzöichen 
Bauteile (von den Kapazitäten an VDD mal abgesehen).

X4U schrieb:
> 2. MCLR (Reset)
> - zu kleiner Pullup gegen Vcc (10k ist Ok)
Da ist in der Tat kein Pull-Up vorhanden.

X4U schrieb:
> 3. Schaltung zieht zu viel Strom beim Proggen, Spannung bricht zusammen
Da wirklich ausschließlich der PIC dran hängt (die Platine ist nur für 
den Test gefräst, daher nichts drauf), glaube ich das weniger, hab den 
Strom aber nicht gemessen.

Nico .. schrieb:
> Ganz wichtig, an jedes Vcc-GND-Paar gehört ein 100nF-Kondensator!
Sind vorhanden :)

Nico .. schrieb:
> Und dann mal testen den PIC per externer Stromversorgung zu speisen.
Das werde ich mal noch testen.

Nico .. schrieb:>
> Benutzt Du den internen Spannungregler im PIC? Ich weiß nicht genau ob
> man den deaktivieren muss/sollte wenn man ihn nicht nutzt!?
Interner Spannungsregler? Nun ja, der wird ja nur mit 3,3 V versorgt, 
mehr will er nicht und mehr bekommt er auch nicht. Die 3,3 V bekommt er 
vom PICkit. Der PIC läuft aber auch mit weniger, von 2,0 V bis 3,6 V. 
Hier gleich noch der Link zu dem Typen:
http://www.microchip.com/wwwproducts/en/PIC24FJ128GC010

Klaus schrieb:
> MCLR, PGD und PGC sollten direkt und ohne andere Bauteile angeschlossen
> sein. Der PICKit kümmert sich um MCLR, solange er dran ist brauchts auch
> keinen Pullup. Auf keinen Fall ein C an einen dieser Anschlüsse.
MCLP, PGD und PGC sind direkt und ohne weitere Bauteile angeschlossen. 
Leiterbahnlänge unter 15 mm inkl. Stiftleiste. Habe mal ein Foto 
angehängt.

von Thomas E. (picalic)


Lesenswert?

Terence S. schrieb:
>> Benutzt Du den internen Spannungregler im PIC? Ich weiß nicht genau ob
>> man den deaktivieren muss/sollte wenn man ihn nicht nutzt!?
> Interner Spannungsregler? Nun ja, der wird ja nur mit 3,3 V versorgt,
> mehr will er nicht und mehr bekommt er auch nicht. Die 3,3 V bekommt er
> vom PICkit. Der PIC läuft aber auch mit weniger, von 2,0 V bis 3,6 V.
> Hier gleich noch der Link zu dem Typen:

Ich denke, das dürfte die Ursache sein! Schau mal ins "Programming 
Specification", gleich auf den ersten Seiten unter "Power Requirements" 
- so, wie ich das sehe, muss der Regulator ge-enabled sein!

: Bearbeitet durch User
von Terence S. (takeshi)


Lesenswert?

Sorry, bin gerade irgendwie blind. Welcher Punkt und welche Seite ist 
das in der PDF?
Das würde ja aber bedeuten, dass ich einen neuen PIC in einer Schaltung 
gar nicht programmieren könnte. Hätte ich vor hunderte Platinen mit dem 
PIC herstellen zu lassen, hätte ich damit ja echt ein Problem. Ich 
brauche ja erst mal Zugriff, um daran etwas zu ändern. Aber dem gehe ich 
natürlich trotzdem mal nach, wenn ich es finde.

Beim Durchstöbern sehe ich gerade unter 2.3 (Seite 34), dass man 
tatsächlich einen 10 kΩ gegen VDD und einen 470 Ω in Reihe zu MCLR 
anschließen soll. Das dem PICkit 3 beiliegende Blättchen sagt mir auch, 
da muss Widerstand um die 4,7 kΩ bis 10 kΩ hin. Keine Ahnung, wieso ich 
das nicht gesehen habe. Werde ich jedenfalls auch testen.

von Poster (Gast)


Lesenswert?

Schau dir nochmal deine Platiene genau an, da ist einmal ein Riesen 
Zinnklecks drauf. Darf das?
Außerdem scheint der PIC etwas versetzt aufgelötet zu sein.

von Thomas E. (picalic)


Lesenswert?

Terence S. schrieb:
> Welcher Punkt und welche Seite ist
> das in der PDF?

Seite 3, Punkt 2.1 Power Requirements.
Das Bild (Figure 2-3) müsste auf Deine PIC-Typen zutreffen.
Der Core wird intern mit 1,8V versorgt und braucht dafür seinen internen 
Spannungsregler. Der muß einen 10µF Abblock-Kondensator an VCAP haben 
und der VBAT-Pin muss wohl ebenfalls versorgt werden (z.B. mit VDD 
brücken).

von Terence S. (takeshi)


Lesenswert?

Poster schrieb:
> Schau dir nochmal deine Platiene genau an, da ist einmal
> ein Riesen Zinnklecks drauf. Darf das?
> Außerdem scheint der PIC etwas versetzt aufgelötet zu sein.
Das ist in Ordnung, das ist nur eine Massefläche.
Stimmt, der PIC ist ganz leicht verrutscht, ist aber noch im grünen 
Bereich. Daran liegt es leider auch nicht.

Thomas E. schrieb:
> Seite 3, Punkt 2.1 Power Requirements.
Gut, jetzt bin ich einerseits beruhigt, dass ich nicht ganz blind bin, 
aber gleichzeitig auch verwirrt. Wir haben ganz offensichtlich 
unterschiedliche PDFs. Ich hab die direkt von Microchip, die bei dem PIC 
verlinkt ist: 
http://ww1.microchip.com/downloads/en/DeviceDoc/30009312c.pdf
In der ist das wohl Punkt 2.4 auf Seite 35. Leider schreiben die nicht, 
wofür der Pin eigentlich gut ist, also dass der für die CPU-Spannung da 
ist. Nun ja.
Punkt 2.1 sollte ich mir aber auch mal zu Gemüte führen. Das ist mir bei 
der riesigen PDF irgendwie untergegangen. Das schreit schon fast nach 
einer neuen Platine dafür ...

Thomas E. schrieb:
> Der Core wird intern mit 1,8V versorgt und braucht dafür seinen internen
> Spannungsregler. Der muß einen 10µF Abblock-Kondensator an VCAP haben
> und der VBAT-Pin muss wohl ebenfalls versorgt werden (z.B. mit VDD
> brücken).
Danke, kommt mit auf meine Liste mit Dingen, die ich noch ausprobieren 
muss.
(Mit all dem, was noch bei 2.1 steht)

Aber ich sehe, ich komme voran, hätte ich nicht erwartet. Danke dafür!

: Bearbeitet durch User
von Nico (nico123)


Lesenswert?

Hier gibts nützliche Informationen: 
http://ww1.microchip.com/downloads/en/DeviceDoc/39768d.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/39970e.pdf

Der Kondensator an VCAP scheint wichtig zu sein.....den bekommt man zum 
Testen bestimmt rangefrickelt! Und ENVREG- bzw. VBAT-PIN muss auf VDD!

von Thomas E. (picalic)


Lesenswert?

Terence S. schrieb:
> Gut, jetzt bin ich einerseits beruhigt, dass ich nicht ganz blind bin,
> aber gleichzeitig auch verwirrt. Wir haben ganz offensichtlich
> unterschiedliche PDFs.

Sorry für die Verwirrung - vielleicht hätte ich es auch gleich verlinken 
sollen. Ich meinte eben das extra PDF mit der "Programming 
Specification", nicht das Datenblatt. Auf der Produktseite findet man 
bei Microchip unter "Documents" nicht nur des Datenblatt, sondern auch 
noch andere Dokumente z.B. Errata, Prog-Specs...). Wenn etwas nicht wie 
erwartet läuft, sollte man auch mal hier gucken, nicht nur im 
Datenblatt.

von Terence S. (takeshi)


Angehängte Dateien:

Lesenswert?

Ah, deshalb. Na ja, das ist immer so das Problem bei den 
Mikrocontrollern, es gibt zig PDFs mit zusammen über 1000 Seiten, da 
wird man immer erst mal erschlagen.
Danke auch für die beiden PDFs.

Ich habe nun an VCAP einen 10 µF dran, der VBAT ist nun auch mit VDD 
verbunden, genau so wie AVDD und SVDD. AVSS und SVSS sind mit VSS 
verbunden.
An MCLR habe ich in Reihe einen 100 Ω, dazu einen Pull-Up von 10 kΩ, so 
wie in der PDF gefordert.
Dann habe ich den PIC noch extern mit 3,3 V vrsorgt und einen 10 µF an 
die Versorgungsspannung gepackt. An VCAP kann ich auch 1,82 V messen, 
passt. Die Versorgungsspannung habe ich gemessen, die bricht nicht ein.
Am Ergebnis hat sich jedoch nichts geändert.

Ich hab natürlich keine genaue Vorstellung davon, was der PICkit genau 
machen soll, aber mit einem Oszi gemessen (siehe Screenshot) sieht das 
schon ganz sinnvoll aus.

von Terence S. (takeshi)


Lesenswert?

Habe mir die PDF "Flash Programming Specifications" zum PIC24FJxxxGC0 
noch mal angesehen, genauer Punkt 3.3 "Entering ICSP Mode" (Seite 21). 
Da wird nämlich gezeigt, wie das MCLR-Signal auszusehen hat und das 
sieht mir sehr verdächtig aus. Der Pin muss laut PDF erst High sein, 
dann auf Low gehen und bleiben, während die Daten gesendet werden. 
Danach geht er wieder auf High. Bei mir geht er vorher und nachher auf 
High, während des Clocks ist er aber High. So kann das natürlich nicht 
funktionieren, nur frage ich mich, wie der PICkit bitte darauf kommt das 
so zu machen. Ich guck aber sicherheitshalber noch mal nach, ob das 
Signal nicht vom Oszi invertiert wurde. Wenn nicht, hau ich da mal einen 
Schmitt-Trigger vor (Verzweiflungstat :D), auch wenn das nicht die 
Lösung des Problems sein kann.

Komisch ist aber, unter 3.12 "Exiting ICSP Mode" (Seite 31) zeigt das 
Bild, dass MCLR während der Clock läuft auf High ist und zum Beenden auf 
Low gezogen wird, also genau das Gegenteil von dem vorher. Verstehe ich 
da was falsch?

Hat sich zufällig schon mal jemand das den Verlauf von MCLR angesehen 
und kann mir sagen, wie das da ablaufen muss?

: Bearbeitet durch User
von Volker S. (vloki)


Lesenswert?

Terence S. schrieb:
> Hat sich zufällig schon mal jemand das den Verlauf von MCLR angesehen
> und kann mir sagen, wie das da ablaufen muss?

Habe ich mal für einen PIC18F25K22 im MCHP Forum gepostet.
Das Bild ist nicht soooo schön und bei einem PIC24 könnte es natürlich 
auch etwas anders aussehen, aber vielleicht hilft es:
http://www.microchip.com/forums/FindPost/708631

von Terence S. (takeshi)


Lesenswert?

Hm, das müsste noch ein alter Typ sein, der über VPP eine höhere 
Programmierspannung braucht, sind bei dir ja so 9 V. Der PIC24 
funktioniert da ja ganz anders, daher wahrscheinlich nicht adaptierbar, 
aber trotzdem danke!

von Nico (nico123)


Lesenswert?

Noch eine andere Idee, vielleicht liegt das Problem in der Schaltung 
ansich oder im Layout!? Du kannst ja beides mal hier posten.

von Terence S. (takeshi)



Lesenswert?

Das hätte ich vielleicht mal viel eher machen sollen ...
Ich hab die Platine ja etwas umgestrickt, der Schaltplan ist jetzt auf 
dem Stand der umgestrickten Platine. Beim Umändern ist mir aufgefallen, 
dass ich PGEC und PGED vertauscht habe! Hab die einfach gerade 
durchgereicht, dabei sind die an der Buchse in Bezug auf den Controller 
"gekreuzt". Also vorher konnte es gar nicht funktionieren. Funktioniert 
aber trotzdem weiterhin nicht, argh!

Der Schaltplan ist also aktuell, das Layout ist noch der alte Stand. Auf 
dem Foto kann man das leider nicht alles so genau erkennen. Bevor es 
Nachfragen gibt:
- Oben der Kondensator in 1210 macht keinen Kurzschluss zum Pin 1 der 
Stiftleiste.
- Unter dem 100 Ω vor MCLR habe ich die Leiterbahn durchtrennt.
- Der Kondensator ganz unten macht keinen Kurzschluss. Da sind nur Pads 
für 1206, der Kondensator ist 0603 und daher hängt der etwas in der 
Luft.
- Ja, auf der linken Seite am PIC oben ist ein Kurzschluss zwischen zwei 
Pins. Das ist SVSS, habe ich dort mit dem benachbarten AVSS verbunden.

Also nicht, dass ich was gegen Rückfragen hätte, nur einige Dinge kann 
man ja schon im Voraus klären ;)

Edit: Habe übrigens noch irgendwo einen Fall gefunden, bei dem es so 
ähnöich war. Microchip empfiehlt da drei Widerstände im PICkit 
auszutauschen (100 Ω zu 0 Ω), da die den Strom an MCLR, PGEC und PGED 
begrenzen und eventuell zu einem zu hohen Spannungsabfall führen können. 
Hab geguckt, bei mir sind ab Werk sogar schon 0 Ω drin.

: Bearbeitet durch User
von Terence S. (takeshi)


Lesenswert?

Es geht!

Nun habe ich, als ich den 100 Ω an MCLR mal auslöten wollte, 
festgestellt, dass sich dieser gelöst hatte ... angelötet, nun erkennt 
IPE den PIC. Es war also viel trivialer Kram (VCAP fehlte, VBAT, AV, SV 
und VUSB nicht verbunden, Clock/Data vertauscht, Pull-Up an MCLR), der 
zusammenkam, schon leicht peinlich. Lesen bildet doch :D

Ich hoffe nun die eigentliche Entwicklung mit dem Teil läuft atwas 
runder.

Danke für die Unterstützung hier!

: Bearbeitet durch User
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.