Guten Morgen Nach mehreren Arbeitswochen an meinem Developmentboard habe ich mittlerweile grosse Fortschritte gemacht. nun, folgende Situation: Ich habe auf meinem Board einen PICKit2 Clone gebaut, über welchen ein PIC16F887 Programmiert werden soll. Mein selbstgemachtes PICKit erkennt MPLAB Perfekt, keine Fehlermeldungen. Sobald ich das USB Kabel einstecke, leuchten auch meine dafür vorgesehenen LED. Wenn ich dann MPLab öffne, und mein Controller Programmieren will, erhalte ich folgende Meldung: Found PICkit 2 - Operating System Version 2.32.0 Target power detected ( 4.99V) PKWarn0003: Unexpected device ID: Please verify that a PIC16F887 is correctly installed in the application. (Expected ID = 0x2080, ID Read = 0x0) PICkit 2 Ready Programming Target (06.07.2012 08:05:44) PKWarn0003: Unexpected device ID: Please verify that a PIC16F887 is correctly installed in the application. (Expected ID = 0x2080, ID Read = 0x0) Erasing Target Programming Program Memory (0x0 - 0x37) Programming Program Memory (0x60 - 0xF7) Programming Program Memory (0x128 - 0x14F) Programming Program Memory (0x190 - 0x1B7) Programming Program Memory (0x1F0 - 0x237) Programming Program Memory (0x258 - 0x267) Programming Program Memory (0x2B8 - 0x2D7) Programming Program Memory (0x320 - 0x377) Programming Program Memory (0x5D8 - 0x5F7) Programming Program Memory (0x708 - 0x77F) Programming Program Memory (0x800 - 0x96F) Verifying Program Memory (0x0 - 0x37) PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0x2864 - Value Read 0x0) PICkit 2 Ready Gleich vorab: Ich kann mit einer 100 % Sicherheit sagen, dass ich den richtigen Controller ausgewählt habe! MCLR ist über einen 10k Widerstand mit VDD verbunden. "Value Read 0x0" <- Habe an einigen Orten gelesen, dass das bedeuten soll, dass der PIC mit einer 99 % Wahrscheinlichkeit kaputt ist. Da ich aber gerade keinen anderen hier habe, frage ich lieber zuerst einmal nach. Achja, bevor ichs vergesse. Habe es auchschon mit der PICKit V2.61 Software probiert. Auch da erkennt es meinen PICKit 2 Clone, sobald ich dann bei Device Family PIC18F auswähle, steht "No Device detected". Ich danke euch schon im voraus für eure Antworten! Falls ihr noch irgendwelche Informationen braucht, stehe ich zur Verfügung.
Elolehrling schrieb: > Guten Morgen > "Value Read 0x0" <- Habe an einigen Orten gelesen, dass das bedeuten > soll, dass der PIC mit einer 99 % Wahrscheinlichkeit kaputt ist. Da ich > aber gerade keinen anderen hier habe, frage ich lieber zuerst einmal > nach. > Nein das heist ganichts nur das der Chip nicht gelesen werden kann, haste ne Schaltung von deinem aufbau/Board betreibst den PIC beim Programmieren Selfpowerd oder über den Brenner ...
Elolehrling schrieb: > "Value Read 0x0" <- Habe an einigen Orten gelesen, dass das bedeuten > soll, dass der PIC mit einer 99 % Wahrscheinlichkeit kaputt ist. Da ich > aber gerade keinen anderen hier habe, frage ich lieber zuerst einmal > nach. Meiner Erfahrung nach heißt das zu 99%, dass der ICSP-Stecker nicht steckt oder falschrum oder Clock und Data vertauscht wurde. Sprich, dass die Verbindung nicht so besteht, wie sie erforderlich ist. Ich hab bisher nur einen PIC geschrottet, und das nur, weil ich versehendlich einen Ausgang auf High gemacht habe, der mit Masse (versehentliche Lötbrücke) verbunden war -> Kurzschluss. Danach ging noch alles, bisauf diesen Pin. Dinge, die ich ausprobieren würde: - Nochmal genau prüfen, ob jede Leitung vom Clone auch dahin geht, wo sie soll (Also Vpp, Vss, Vdd, CLK, Data). - Programmier den PIC..887 mit einem anderen, sicher funktionierenden Programmiergerät (womit du den PIC für den Clone gebrannt hast z.B.). Wenn das geht, ist der PIC heile und der Fehler ist in deinem Clone. - Den PIC-Clone einzeln Testen, kein PIC dranhängen sondern ein Oszilloskop und gucken, ob die Pegel passen. Das Programm wird dir einen Fehler geben, weil eben kein PIC dran ist, die Pegel sollte man aber dennoch sehen.
Nachtrag: 10k für den Pullup sind zu wenig nach apnote muss das 10x der innen Widerstand der Brennerschaltung sein beim ICD2 ca. 200k ich benutze um die 47k klappt mit allen Brennern/PICs die ich rumliegen habe ganz gut.
@K. J.: Punkte werden nicht ohne Grund benutzt, um Sätze zu beenden. So muss man nicht 2-3mal lesen, bis man rafft, was du meinst. Der nächste Schritt wäre Groß-/Kleinschreibung ;)
47k Pullup Widerstand? Verwundert mich jetzt ein wenig, da selbst auf den Datasheets von Microchip stehts 10k erwähnt werden... Anschlüsse habe ich wie folgt: PICKit 2 Clone: PIC18F2550 Von RA2(Pin 4)von PIC18F2559 auf RB7(Pin 40) von PIC16F887 Von RA3(Pin 5)von PIC18F2550 auf Rb6(Pin 39) von PIC16F887 Die beiden Verbindungen Stellen CLK & Data dar. VSS(Ground) habe ich an den Pin's 12 & 31 VDD(+5V) habe ich an den Pin's 11 & 32, jeweils mit einem 100n Kondensator zwischen VDD und VSS MCLR ist wie bereits erwähnt über einen 10k Pullup an 5V. Ich habe eben Probiert den PIC16F887 mit einem PICKit 3 zu Programmieren (Damit habe ich auch meinen PICKit Clone Programmiert) Nun, ich muss sagen mit meinem Clone funktioniert das ganze irgendwie besser. Folgende Fehlermeldung: Programming... The following memory regions failed to program correctly: Program Memory Address: 00000000 Expected Value: 00002864 Received Value: 00000000 Programming failed Bin gerade etwas Ratlos. Bin allerdings gerade dabei wieder einmal die Datenblätter zu den Controllern zu lesen. Vielleicht weiss ja einer von euch noch irgenwas.
Elolehrling schrieb: > Von RA2(Pin 4)von PIC18F2559 auf RB7(Pin 40) von PIC16F887 > Von RA3(Pin 5)von PIC18F2550 auf Rb6(Pin 39) von PIC16F887 Gehören da nicht noch Widerstände zwischen? Wenn du den PIC später benutzen willst und als Ausgang nehmen willst, hast du Ausgang an Ausgang und das is nicht so gut. Hast du den PIC16F887 rausgenommen, als du das mit dem PICKIT3 getestet hast? Wenn nicht, wird es denke ich daran liegen.
Sorry, vergessen dazu zu schrieben. Klar sind die Leitungen über einen Spannungsteiler mit dem Controller verbunden. Und nein, ich habe ihn nicht herrausgenommen. Wäre auch schlecht möglich, da ich auch den PIC18F2550 direkt auf dem Board Programmiert habe. Bzw, die ganze Schaltung ist alles auf einem Board. Kann den PIC Also unmöglich herrausnehmen um das ganze zu probieren, da ich ja sonst keine andere möglichkeit habe die Verbindungen zwischen PICKit3 und dem Controller herzustellen... ausser ich würde mir die Mühe machen ein veroboard dafür zu fertigen. Stellt sich mir nur die frage, ob sich diese Umstände Lohnen oder nicht.
Nachtrag: Sorry, vergessen zu schreiben. Die Eingänge Rb6 und Rb7 werden für das spätere Programmieren nicht verwendet, habe an die beiden PORTs absichtlich keine Peripherien angeschlossen. Hatte gneug freie PORT's um diese nicht benutzen zu müssen, also spielt das keine sonderlich grosse Rolle.
Also ist der PIC16F887 nicht gesockelt bzw SMD!? Naja.. Dann hätte ich gesagt, miss die Spannungen mal mit nem Oszi und guck, ob Vpp auch auf dem richtigen Pegel ist und relativ konstant ist. Wird ja meine ich mit einem Step-Up hochgesetzt.
Doch, der PIC16F887 ist gesockelt. Nur was bringt es mir, den herrauszunehmen ?! Dann habe ich den PIC und ein PICKit 3 in meinen Händen, was soll ich dann damit? Verbindungen zwischen den beiden Geräten bestehen ja trotzdem keine.
Dann nimm ihn raus, löte kurz 5 kabel dran und versuch ihn zu brennen. Somit hättest du die Fehlerquelle schon raus. Wenn er sich nicht brennen lässt ist der PIC wohl kaputt und mit deiner Schaltung ist evtl garnichts.
Elolehrling schrieb: > MCLR ist wie bereits erwähnt über einen 10k Pullup an 5V. Ist Dir bekannt, dass Du zum Programmieren eine Spannung von 10V-12V an Vpp (/MCLR) brauchst? Ist diese beim Programmieren vorhanden? Michael Skropski schrieb: > guck, ob Vpp auch auf dem richtigen Pegel ist und relativ konstant ist Gruß John
Elolehrling schrieb: > Die Eingänge Rb6 und Rb7 werden für das > spätere Programmieren nicht verwendet, habe an die beiden PORTs > absichtlich keine Peripherien angeschlossen. Du verstehst es, deine Leser zu verwirren. Im allgemeinen werden RB6+RB7 zum Programmieren benutzt, also solltest du - wenn das bei deinem PIC ebenfalls so ist - selbige an den Steckverbinder zum Programmer führen. MCLR wird mit ca. 10k gegen VCC gezogen und mit 1..2 nF gegen Masse abgeblockt, damit etwaige Einstreuungen nicht zum Reset führen. Der Programmer himself zerrt MCLR auf ca. 13 Volt zum Programmieren. Bei manchen PIC's gibt es noch nen Low-Volt-Programmiermodus, der es erforderlich macht, daß man für's Pickit ein anderes Bein (oft RB3) dezent gegen Masse ziehen muß, 47 k reichen. Das war's eigentlich schon. W.S.
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.