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 :)
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)
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!?
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
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.
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
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.
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.
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).
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
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!
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.
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.
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
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
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!
Noch eine andere Idee, vielleicht liegt das Problem in der Schaltung ansich oder im Layout!? Du kannst ja beides mal hier posten.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.