Hex aus PIC12F629 mit PICKit 3 auslesen

OP #7382095
Lesenswert?

Hallo Genies des Internet! Ich bin neu in dem Forum und auch in Sachen PIC Programmierung.

Mein Problem: Ich habe eine kleine Platine für eine Modelleisenban (Weichendecoder Weich-Ei / Zwei) mit einem PIC12F629. Ich möchte gerne die Hex-Datei (?) des PICs auslesen, ein paar Parameter ändern (Hab ne Liste) und sie dann wieder auf den PIC spielen.

Dazu habe ich mir jetzt ein PICKit 3 gekauft und auch ein passendes Poard mit Zange: https://www.amazon.de/dp/B09FK56625?psc=1&ref=ppx_yo2ov_dt_b_product_details https://www.amazon.de/dp/B08HQB1VL8?psc=1&ref=ppx_yo2ov_dt_b_product_details Als Programm wird MPLAB X IPE V6.00 auf Win 10 Pro verwendet. Anschschlossen an einem USB3.0

Ich habe alles wie auf den Photos gezeigt angeschlossen, roter Draht (1) der Klemme ist links oben beim Punkt des PICs. Klemme Position 1 ist auf dem Programmiersockel auf Pos. 11, Hebel ist runter gedrückt. Jumper am Programmiersockel: J1: 2 J2 - J7: 2-3 PICkit3 Stecker des Pfeiles zeigt zu UPP/MCLR am Sockel.

Einstellungen im Programm: Power: Power target circuit from PICkit 3 Voltage Level: 5.0 Programming Method: Apply Vdd before Vpp Family: Mid-Range 8-bit MCUs (PIC10/12/1... Device: PIC12F629 Tool: PICkit3 S.No: BUR....

Nach dem Druck auf "Connect" ca. 5 sec laden, dann die Warnung, dass 5V und nicht 3,3V eingestellt ist -> OK

Dann aber die Warnung: Target Device ID (0x0) is an Invalid Device ID. Please check your connections to the Target Device. -> OK Target has invalid calibration data (0x00).

Könnt ihr mir sagen, was ich falsch mache? vielen lieben Dank für eure Hilfe, Atvilar

OP #7382104
Lesenswert?

Hi, Danke für die schnelle Antwort! Denke nicht, da er selbst auf seiner Shopseite / Anleitung die Hex veröffentlicht hat und auch eben dazu anrät für gewisse Verhaltensänderungen die Hex selbst zu editieren. Sonst wär ich auch gar nicht auf die idee gekommen, das man so etwas überhaupt machen kann.

#7382151
Lesenswert?

Steck den PIC in ein Brotbrett und schliess den Brogrammer nach Datenblatt an. Also: GND - 8 VCC - 1 VPP/MCLR - 4 ICSPDAT - 7 ICSPCLK - 6

Kontrolliere die Versorgung des PIC. Wenn du ein Oszi hast, teste ob ICSPDAT/ICSPCLK beim PIC "wackeln". Das PICKIT2 mit seinem Standaloneutilty hatte einen Testmodus. Da konnte man statisch an diesen Signalen togglen und ein Multimeter reichte...

#7382613
Lesenswert?

Wenn das nicht funktioniert, dann hol dir erstmal einen PIC in DIL Gehäuse aus dem Werk. Versuche erstmal den so kurz wie möglich an dem PICkit anzubinden und schaue ob das tut. Wenn ja dann weist du, dass dein Setup prinzipiell OK ist. Danach kannst du weiterdenken wie man am besten weiterhing vorgeht.

PICs In Circuit zu flashen funktioniert theoretisch, praktisch können da Probleme entstehen. Der PICkit leifert zwar Spannung, kann aber den PCB nicht immer komplett versorgen. Dann bricht die Spannung ein. Eventuell muss man dann von aussen helfen. Sonst gucke mal auch an den MCLR. Der kann noch Probleme machen. Ist da ein Kondensator da? Weg damit. Es gibt auch etliche MCLR beschaltungen, von Pull Ups bis zu Diode,Pullup mit Kondensator, oder auch watchdog (wird hier nicht der Fall sein). Wenn da ein Kondi hängt, wird der MCLAR zu langsam. Das passt dann nicht.

Norfallt PIC runterlöten, und alleine Programmieren.

OP #7382810
Lesenswert?

Hallo! So, ich bin jetzt einfach mal her gegangen und habe mit einem Multimeter die Kontakte nachgemessen. -> Verbindung PICkit3 - Sockel war richtig angesteckt, der Sockel ist richtig konfiguriert, Die Verbindung Sockel -> Klemme passt, nur die Klammer / PIC ist Schrott. Habt ihr eine Empfehlung für eine preisgünstige, aber vernünftige Klammer?

@ Motopick Danke für die Pinbelegung. Ich muss gestehen, dass ich von dem Manual des PIC derart eingeschüchtert war, dass ich nichtmal auf den Pinout geschaut habe.

Heute Abend löte ich mal Kabel an den PIC an und versuche es erneut. Vor dem auslöten des PIC habe ich Respekt, da ich keine Reflowplatte oder eine Feine Lötspitze habe. Gottseidank hat der Hersteller genau an den Pins (...) freie Lötkontakte gelassen...

@Harald:Nein, muss ich nicht. Aber ich möchte bevor ich was verhau den PIC auslesen, die Hex mit der Herstellerhex vergleichen um zu sehen, dass ich alles Richtig gemacht habe, dann verändern und dann brennen. Also reiner Lern- / Testprozess.

@ Christian: Ja, Der Hersteller liefert sogar einen Hex Maipulator, aber ohen Schrib / Lese fuktion. ALso nur: Hex, rein, manupulierter Hex raus. Wie du dann auf den PIC gebetet bekommst, ist deine Sache.

@Andreas: Ja, das wird meine letzte Chance werden. Mal schauen was der heutige Abend bringt.

OP #7474569
Lesenswert?

Hi, Nein, ich hab mehr von den Platinchen gekauft und sie funktionieren, hab von denen auch Versucht mit der Klammer (ohne auslöten) auszulesen, mit den gleichen Errors. Habs momentan verworfen, da im Moment andere Sachen wichtiger sind, und befass mich mit dem Problem vielleicht im Herbst wieder, wenn ich Platz habe die Modellbahn wieder aufzubauen. Schade nur, hätte gehofft dass ich was neues Lern.

Danke der Nachfrage!

#7474826
Lesenswert?

von den Platinchen gekauft

Iffenbar ist bei den "Platinchen" die Schaltung fuer die Programmierung auf dem "Platinchen" etwas unguenstig geraten.

Du solltest dem Rat, einen oer mehrere 12F629 im DIL-Gehaeuse zu kaufen, vielleicht einmal folgen. Damit koenntest du dann naemlich sicherstellen, dass dein Programmieradapter funktioniert, und dein Verstaendnis vom Programmiervorgang als solchen, richtig ist. :)

Das geht auch ohne Eisenbahn.

#7474844
Lesenswert?

Daniel schrieb:

Vor dem auslöten des PIC habe ich Respekt, da ich keine Reflowplatte oder eine Feine Lötspitze habe.

Nicht mit Tauben auf Spatzen schiessen :) Feine Loetspitze brauchts da nicht, die ist sogar hinderlich. 'Reflowplatte'? Brauchts auch nicht.

Alles nicht so schwierig: Kuperdraht einmal im Rechteck um den 8-Beiner herumlegen, so dass der Draht an den Beinchen an bzw besser aufliegt. Dann erstmal den Draht rundum mit ordentlich Loetzinn an allen Beinchen anloeten. Sobald das getan ist, verteilt der Draht die Hitze der Loetspitze, so dass ganz fix alle Beinchen simultan im Loetzinn schwimmen und der IC weggeschoben / mit der Pinzette abgehoben werden kann.

Anschauen kannste Dir diese Methode dort:

https://www.youtube.com/watch?v=Vou2xlJkuoU

Hat er da wohl hauptsaechlich an THT-Bauteilen vorgefuehrt, funktioniert aber mit SMD genausogut (letztens mit ein paar SMD-NE555ern so gemacht, hat prima geklappt).

Beitrag #7474865 wurde von einem Moderator gelöscht.
OP #7475139
Lesenswert?

... 12F629 im DIL-Gehaeuse zu kaufen...

werd ich macven, wenn ich das nächstw mal was von conrad, rs und co brauche.

... Kuperdraht einmal im Rechteck ...

aha, das schaut spannend aus, muss mal Probieren. Danke für den Rat!

... Programmierkabel zu lang ist ...

Ca 20cm, denk also nicht. Parallel geführt auf alle Fälle, da alle Kabel vom Programmierer als Flachbandleiter wegführen. nichts einfacher wie die CLCK vom Band Abzutrennen

... Wie viele dieser Platinen ...

Eigentlich nur 2~5, werde in der Anlage über 100 verbauen. Es geht mir aber um was andres: Diese Platinen werden nur von einem Kleinunternehmer hergestellt. Wenn dieser aufhört, dann sitze ich mit einer halbfertigen Anlage da und muss wieder alles umpudern. Außerdem schlägt er ja selbst vor, hat sogar eine Anleitung geschrieben, dass man bestimmte Parameter (Schaltzeit, Anschlussart, ...) im Programm ändern kann, falls es man mal brauchen sollte.

#7475143
Lesenswert?

Daniel schrieb:

... Wie viele dieser Platinen ...

Eigentlich nur 2~5, werde in der Anlage über 100 verbauen. Es geht mir aber um was andres: Diese Platinen werden nur von einem Kleinunternehmer hergestellt. Wenn dieser aufhört, dann sitze ich mit einer halbfertigen Anlage da und muss wieder alles umpudern. Außerdem schlägt er ja selbst vor, hat sogar eine Anleitung geschrieben, dass man bestimmte Parameter (Schaltzeit, Anschlussart, ...) im Programm ändern kann, falls es man mal brauchen sollte.

Dann solltest Du gleich dazu übergehen, eigene Platinen herzustellen, die einen ICSP-Anschluss haben. Das habe ich seit Jahren bei meinen PICs immer gemacht, 5 kleine Durchkontaktierugenn im 1,27-mm-Raster. Wenn Du Hilfe bei der Platinenerstellung brauchst, kann ich Dir gerne helfen, dann schick mir eine PN.

#7475287
Lesenswert?

Daniel schrieb:

... Kuperdraht einmal im Rechteck ...

aha, das schaut spannend aus, muss mal Probieren. Danke für den Rat!

Ja, versuch das mal.

Hab mir frueher auch immer einen abgebrochen, wenn was auszuloeten war. Sehr gerne endete das in Zerstoerung des betreffenden Bauteils oder der Platine... Dann die Methode mit dem angeloeteten Draht gefunden...und nun ist der Horror vor dem Ausloeten von Bauteilen verschwunden.

Im Uebrigen: Auch beim wieder Einloeten brauchst Du keine besonders feine Loetspitze, um Bruecken zu vermeiden. Es reicht eine 'normal grosse' Hufeisenspitze, die mit ein wenig Loetzinn ueber die mit Flussmittel benetzten Pads/Beinchen gezogen wird. Die Oberflaechenspannung des Zinns sorgt schon dafuer, dass es hinfliesst, wo es hin soll:

https://www.youtube.com/watch?v=6PB0u8irn-4

#7475299
Lesenswert?

nur von einem Kleinunternehmer hergestellt

Moeglicherweise programmiert er seine PICs vor dem Einloeten in einem ZIF-Sockel. :)

Du solltest einmal nachfragen, ob und wie ICSP mit seinen "Platinchen" ueberhaupt funktioniert. Mitunter muss man an einem bestehenden Design einige Aenderungen, wie z.B. das Einfuegen von Widerstaenden, vornehmen.

#7475874
Lesenswert?

eine Diode zwischen R2 und MCLR oder VPP und R2

Man sollte die Spannung die an MCLR beim Programmieren anliegt, vielleicht einfach einmal messen. Die kann von einer Ladungspumpe erzeugt werden, da es keine Programmierspannung im eigentlichen Sinne ist, sondern nur ein Schaltsignal.

Testweise koennte man auch R2 einfach mal entfernen.

#7476049
Lesenswert?

Motopick schrieb:

Testweise koennte man auch R2 einfach mal entfernen.

Das sicher nicht. Die Programmierspannung an MCLR beträgt beim 12F629 um die 12 Volt, das darf nicht an VDD ran. Deswegen gehört da eine Diode rein.

Ich gehe mal davon aus, dass der Autor von Weichzwei die PICs immer ausserhalb des PCB programmiert hat. Deswegen habe ich ja vorgeschlagen, dass der TE seine eigene Platine macht (oder von einem Mitforisten machen lässt), das ist ja ruckzuck erledigt. Ich biete mich dafür an. Die Diode und ein ICSP-Anschluss passen noch auf die Platine.

#7476140
Lesenswert?

das darf nicht an VDD ran

Wenn R2 fehlt, ist MCLR vom Taster abgesehen, recht freistehend. Wie sollte also "Programmierspannung" vpn MCLR an VDD kommen?

Man koennte R2 auch einfach groesser machen. Z.B. 220 k. Ich habe kein PICKIT3, und kann daher nicht sagen, wie stromergiebig das PICKIT3 bei seiner Programmierspannung ist. Scheinbar reicht es ja wohl nicht. Oder es ist noch etwas anderes. :)

Schoenes WE!

#7476208
Lesenswert?

Wie heisst es so schön: Versuch macht kluch

Ich habe mal einen PIC12F675 genommen (der ist zum 629 kompatibel, hat aber noch einen ADC, das ist hier aber irrelevant) und auf ein Breadboard gesteckt. Mein PICkit3 kann den sowohl nur mit einem 22k-Widerstand zwischen VPP und VDD als auch mit 22k plus Diode programmieren und wieder fehlerfrei auslesen. Es geht wider die Theorie also auch ohne Diode.

D.h. das Problem des TE muss woanders liegen. Denkbar wäre noch, dass der 78L05 durch die 12 Volt gehimmelt wurde (die 78er mögen keine reverse voltage), das kann der TE aber leicht mit einem Multimeter ausschliessen.

Beitrag #7477014 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren