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
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.
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...
Am ehesten würde ich auf schlechte/falsche Kontaktierung tippen. Da sind so vielfältige Möglichkeiten zum verwechseln. Darum am besten: Motopick schrieb: > Steck den PIC in ein Brotbrett Oder direkt Drähte/Litzen anlöten. Gruss Chregu
Daniel schrieb: > 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. Dann musst Du sie ja gar nicht auslesen, sondern kannst die veröffentlichte Fassung verwenden.
Ja das dachte ich auch zuerst, da gibt es ja diesen HEX-Manipulator dazu. Ob der aber ein ausgelesenes HEX richtig interpretieren kann, ist eine andere Frage. Jedenfalls hat er ja gar keinen Zugriff auf den PIC, darum wird das Schreiben auch scheitern... Gruss Chregu
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.
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.
Edit: Ich schaffe es nicht mal, an den Lötstellen Kabel anzulöten, ohne 2 Beinchen des PICs kurzzuschließen. Darauß wird also momentan nix.
Daniel schrieb: > Edit: Ich schaffe es nicht mal, an den Lötstellen Kabel anzulöten, ohne > 2 Beinchen des PICs kurzzuschließen. Darauß wird also momentan nix. Wenn Du das geschafft hast, ist es am besten, Du verbindest den PIC mit kurzen Leitungen <15 cm wie im Bild beschrieben mit dem PICKIT.
So, PIC wurde ausgelötet und laut Schema von Stephan S. verkabelt. Identer Fehler: Target Device ID (0x0) is an Invalid Device ID. Please check your connections to the Target Device. -> OK Target has invalid calibration data (0x00). Wirklich Danke für eure Hilfe!
Daniel schrieb: > Target Device ID (0x0) is an Invalid Device ID. Please check your > connections to the Target Device. Das heisst nur dass die Kommunikation zwischen PICKIT und PIC nicht geht. Checke nochmal alle Verbindungen. > Target has invalid calibration data (0x00). Auch das deutet auf einen Verbindungsfehler hin.
Wenn du das Hex-File herunterladen kannst, wäre der nächste Versuch - einen neuen PIC kaufen und das geänderte File auf den neuen brennen. Vielleicht auch einen PIC im DIL Gehäuse mit bestellen. Da kannst du wenigstes sicher sein, die Lötstellen hauen hin. https://www.sprut.de/electronic/pic/icsp/icsp.htm#dil8
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!
> 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.
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).
Hi Wenn das Programmierkabel zu lang ist und/oder die Leitung PGC (Clock) dabei parallel zur Leitung PGD (Data) geführt ist, tritt genau auch dieser Fehler auf: Daniel schrieb: > Please check your connections to the Target Device. > -> OK > Target has invalid calibration data (0x00). mfg Ottmar
Wie viele dieser Platinen möchtest Du denn umprogrammieren? VG Stephan
Beitrag #7474865 wurde vom Autor gelöscht.
... 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.
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.
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
> 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.
Laut Beschreibung ist ICSP möglich https://www.digital-bahn.de/bau_weiche/weichzwei.htm ganz unten. Ich hätte da noch eine Diode zwischen MCLR und +5V gemacht, es müsste aber auch ohne gehen.
Hi, Empfohlene Länge des ICSP-Kabels ca. 10cm. Siehe: http://www.sprut.de/electronic/pic/icsp/icsp.htm#kabel mfG Ottmar
Ottmar K. schrieb: > Empfohlene Länge des ICSP-Kabels ca. 10cm. > Siehe: http://www.sprut.de/electronic/pic/icsp/icsp.htm#kabel ACK. Und es gehört eigentlich eine Diode zwischen R2 und MCLR oder VPP und R2
:
Bearbeitet durch User
> 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.
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.
> 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!
Du kannst R2 weglassen, aber nur zum programmieren, denn sonst funktioniert die Schaltung nicht :) Der oben zitierte sprut zeigt ja auch, dass da eine Diode hin muss https://www.sprut.de/electronic/pic/icsp/icsp.gif in einigen Microchip-Datenblättern steht das auch so, aber nicht überall.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Beitrag #7477014 wurde vom Autor gelöscht.
Stephan S. schrieb: > nur mit einem 22k-Widerstand zwischen VPP und VDD ...und an VDD 5.7V - wenn Du Glück hast! Gruss Chregu
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.