PIC16F887 Programmierproblem

Gast #2744309
Lesenswert?

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.
Gast #2744327
Lesenswert?

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 ...
#2744332
Lesenswert?

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.
Gast #2744335
Lesenswert?

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.
Gast #2744359
Lesenswert?

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.
#2744365
Lesenswert?

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.
Gast #2744369
Lesenswert?

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.
Gast #2744372
Lesenswert?

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.
Gast #2745067
Lesenswert?

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.

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