Forum: Mikrocontroller und Digitale Elektronik PIC Microcontroller lässt sich nicht mehr programmieren


von Alex (Gast)


Lesenswert?

Hallo,

ich hab's leider irgendwie geschafft, meinen PIC24F32K302 unbrauchbar zu 
machen :(
Hatte nie Probleme mit dem Teil, aber seit dem ich letztens ein kurzes 
Programm hochgeladen hatte, lässt sich das Teil nicht mehr 
Programmieren.
Das Programm scheint tatsächlich zu tun, was es soll, aber in der 
Konsole von MPLAB X steht jetzt jedes Mal, wenn ich versuche was 
hochzuladen:
"Target Device ID (0x0) is an Invalid Device ID." und
"[config mem] 0xf80000, expected 0xf, got 0x0."

Hab hier im Forum schon paar Beiträge mit ähnlichem Betreff gelesen, hat 
aber bisher leider nichts geholfen.
Der Microcontroller ist definitiv richtig angeschlossen; der gleiche 
Aufbau hat bisher auch immer funktioniert.
Mittlerweile hab ich sogar bis auf das Programmiergerät alles andere 
abgestöpselt, geht aber immer noch nicht.

Konnte leider nicht rausfinden, ob oder wie man die wieder programmieren 
kann. Wär toll, wenn mir da wer helfen könnte.

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Mal versucht den PIC zuerst einmal
komplett zu löschen, bevor du ihn
neu programmierst ?

von morph1 (Gast)


Lesenswert?

Target Device ID (0x0) is an Invalid Device ID.

Das ist in 99% der Fälle kein Problem am/im Mikrocontroller.
Da hats was mit den Programmierleitungen und/oder der 
Spannungsversorgung. Am Programmiergerät, im Kabel, in der Buchse auf 
der Platine, an den Lötstellen der Buchse, an den Leitungen auf der 
Platine selbst oder an den Lötstellen am Prozessor.

Da wir 0 Informationen haben in welchem Umfeld du den µC betreibst - 
wirds schwer hier weiterzuhelfen.

Ein Durchgangsprüfer könnte helfen (MCLR, PGD, PGC, Masse, VCC) - ein 
Ende am µC - das andere am Kabelende beim PRogrammiergerät (Allein 
schon, dass wir nichtmal wissen welches du verwendest ist echt nicht 
zielführend).

Also eigentlich kanns einfach alles sein solange du nicht systematisch 
beginnst Ursachen auszuschließen (wirklich angefangen bei der 
Stromversorgung)...

von Alex (Gast)


Lesenswert?

Ich hab schon versucht einfach den ganzen Programmspeicher zu löschen, 
ja..
Leider wird, bevor mit dem Löschvorgang überhaupt begonnen wird, bereits 
die device ID überprüft und der Vorgang dann abgebrochen.

von Alex (Gast)


Lesenswert?

Hallo morph,

ich verstehe was du meinst. Normalerweise vertrau ich meinen Schaltungen 
auch keinen Millimeter weit ;)
Nur hat alles wunderbar funktioniert (konnte problemlos Programme 
hochladen, der Controller hat gemacht was er soll etc) bis ich ein neues 
Programm hochgeladen hab.
Der Chip hat gemacht was er sollte nur konnte ich auf einmal nichts mehr 
hochladen. Hab darauf hin einen neuen Chip eingesetzt und zu erst ein 
älteres Programm hochgeladen; hat alles funktioniert. Dann hab ich das 
neue Programm auf den neuen Microcontroller geladen und seitdem geht der 
auch nicht mehr.
Irgendwelche Fehler in der Verkabelung sind also eigentlich 
ausgeschlossen.

Gerade eben ist das Teil im Breadboard und es ist nur das 
Programmiergerät(PICKIT 4) angeschlossen.
Hab alle Anschlüsse mehrfach überprüft; stimmt alles. Ich kann einen 
neuen Chip an die gleiche Stelle stecken und diesen programmieren. Nur 
die Microcontroller mit dem neuen Programm drauf wollen einfach nicht.

von Christian M. (christian_m280)


Lesenswert?

Mit den wenigen Informationen, vielleicht:

http://www.sprut.de/electronic/pic/fallen/fallen.html#intoscmclr

Gruss Chregu

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Alex schrieb:
> ich hab's leider irgendwie geschafft, meinen PIC24F32K302 unbrauchbar zu
> machen :(

Der Klassiker ... du hast wahrscheinlich MCLR pin als RA5 input pin 
enabled und damit MCLR disabled. Jetzt geht extern kein Reset mehr ... 
und somit kein Programmieren.

Da hilft nur noch high voltage clearing um die Config Bits zurück zu 
setzen.

von Alex (Gast)


Lesenswert?

Hallo Chregu,

danke für den Tipp! In meinem Fall wurde MCLR aber leider nicht als 
Output konfiguriert. Hab eben trotztdem getestet, ob der Microcontroller 
reseted wird, wenn ich den Pin auf Low level lege und das scheint der 
Fall zu sein.
Daran liegts also vermutlich nicht.

von Alex (Gast)


Lesenswert?

Hallo Apollo,

der MCLR Pin tut leider was er soll. Hab in meinem gesamten Programm den 
PORTA nicht angefasst. Mein Programmer unterstützt außerdem High voltage 
programming und das hab ich auch schon erfolglos ausprobiert.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Alex schrieb:
> Daran liegts also vermutlich nicht.

... garantiert doch und MCLR is jetzt ein port input!

Lese mal
https://ww1.microchip.com/downloads/en/DeviceDoc/DS-39919c.pdf
3.3.2 HIGH-VOLTAGE ICSP ENTRY

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Alex schrieb:
> Mein Programmer unterstützt außerdem High voltage
> programming und das hab ich auch schon erfolglos ausprobiert.

Ich bin ungläubig zu deinen Aussagen, wenn du wohl eher unbewußt die 
Config Bits verdreht hast (z.B. auch Code Protection!?), dann kannst du 
diese nur im  HIGH-VOLATGE-ICSP Mode wieder zurückbiegen.

: Bearbeitet durch User
von Alex (Gast)


Lesenswert?

Der PIC24F32KA302 den ich verwende, hat sogar ein Configuration Bit, mit 
dem man MCLR enablen muss. Das ist in meinem Programm gesetzt gewesen.
Aber danke für das Dokument; da werd ich mal schnell reinschauen.

von Alex (Gast)


Lesenswert?

Hab gerade nochmal nachgeschaut, die Config bits sind genau gleich wie 
bei Programmen, nach denen der Controller bei noch funktioniert hat. 
Code Protect oder sowas hab ich auch nicht aktiviert.

von Anja (Gast)


Lesenswert?

Alex schrieb:
> Konnte leider nicht rausfinden, ob oder wie man die wieder programmieren
> kann. Wär toll, wenn mir da wer helfen könnte.

Bei mir war es mal das Programmiergerät (PicKit 3).
Das hatte irgendwie seine Programmierung verloren.
Nach einem Firmwareupdate ging es dann wieder.

Gruß Anja

von Michael O. (michael_o)


Lesenswert?

Ich habe es bei einem PICkit3 geschafft den Feldeffekt Transistor für 
die VDD zu grillen. Ein halbes Jahr später hab ich es repariert und 
läuft als Drittgerät wieder.
Es gibt aber genug andere Fälle die die gleiche Wirkung haben bis hin zu 
durchgegarten PIC.

MfG
Michael

von Jens P. (picler)


Lesenswert?

Alex schrieb:
> Der Microcontroller ist definitiv richtig angeschlossen; der gleiche
> Aufbau hat bisher auch immer funktioniert.

Der PIC24F hat meines Wissens drei Paare PGC / PGD. Den Sinn habe ich 
nicht wirklich verstanden, aber vermutlich hängt das mit dem PPS 
zusammen. Kann es sein, dass du in den Config-Bits im Feld ICS einen 
falschen Anschluss eingetragen hast und somit versuchst, auf dem 
"falschen" ICSP-Paar zu programmieren. Das würde auch erklären, warum du 
den neuen PIC einmal programmieren konntest. Da stand vermutlich 
PGC/PGD1 drin und in deiner Konfiguration steht vielleicht PGC/PGD2 
drin. Danach ist er halt umprogrammiert und erwartet jetzt seine Daten 
auf einem anderen Anschluss. Ist nur so eine Idee...

von Dieter W. (dds5)


Lesenswert?

Die PGC / PDG Auswahl ist nur für das Debuggen maßgeblich, programmieren 
ist immer an allen 3 Paaren möglich.

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
Noch kein Account? Hier anmelden.