PICkit3 programmiert einen bestimmten Controllertyp nicht mehr

OP #2433009
Lesenswert?

Hallo Leute,

ich nutze ein PICkit3 zum Programmieren meines PIC16F627A. Ich 
programmiere den PIC mit einem selbstgebauten Adapter:

http://www.jb-electronics.de/html/elektronik/digital/d_artikel06_pickit3_und_icsp.htm

Funktionierte früher problemlos, und auch immer noch mit diversen 
PIC16F716. Wenn ich aber nun versuche, PIC16F627A zu beschreiben, meldet 
der mir "Device ID 0000000". Also wahrscheinlich ein 
Kommunikationsproblem.

Das Kuriose ist: Einer der PIC16F627A war frisch bestellt. Ausgepackt, 
beschrieben, alles kein Problem. Beim zweiten Mal dann auf einmal diese 
Meldung.

Das PICkit3 weigert sich offenbar, den PIC des Typs 16F627A mehrfach zu 
beschreiben. Ich habe das mit insgesamt sieben PICs (16F627A) 
ausprobiert, mittlerweile lassen sie sich alle nicht mehr beschreiben. 
Die 16F716 allerdings schon.

Irgendwelche Ideen?

Beste Grüße
Jens
OP #2433522
Lesenswert?

Torsten Schwalm schrieb:
> Nimm mal den 4,7k Widerstand aus dem Adapter raus. Der ist dort unnötig.

Probiere ich gleich aus.

Torsten Schwalm schrieb:
> In MPLAB ist der Haken das er die Konfigurationsdaten aus dem Programm
> und
> nicht aus dem Menü nimmt gesetzt?
Ja.

Torsten Schwalm schrieb:
> Ansonsten probiere mal die Konfiguration mit MPLAB zu machen und nicht
> per Software.
Eine Überlegung wert, aber das kann nicht die Ursache des Problems sein. 
Ich habe ja weder meinen Compiler geupdatet noch meine Firmware.

Gruß
Jens
#2433632
Lesenswert?

Ich hatte es allerdings schon, dass die Kürzel für z.B. MCLRE_ON in
der Config für einen einzelnen Prozessor falsch waren, und damit
ein falsches Config-Bit gesetzt wurde. War wahrscheinlich nur ein
Schreibfehler, hat mich aber ewigkeiten gekostet das rauszufinden.

Läuft den das Program auf dem µC wenigstens? Wenn ja kannst du ja mal
testen, ob du es mit einem Reset an MCLR anhalten kannst. Da kannst
du dann ein falsch beschalteten MCLR Pin mit Sicherheit ausschließen.

Wenn du ein Oszi hast, schau dir mal die Flanke von VPP an. Wenn die
zu langsam ist, startet der µC mit dem internen Oszillator das
Programm, aber du kommst nicht in den Programmiermodus! Ist mir mal
mit einem 635 passiert.
Gast #2433971
Lesenswert?

Sowas ähnliches hatte ich auch kürzlich. Bei mir waren es PIC16F872, die 
man nur genau ein mal mit dem PICKit2 progammieren konnte. Danach wurden 
sie nicht mehr erkannt. Auch nicht mehr mit dem PICKit3. Wenn ich sie 
aber mit dem Galep4 gelöscht habe, gingen sie wieder - wieder genau ein 
mal. Also defekt sind die PICs sicher nicht, aber Microchip ist auch 
nicht mehr das, was es mal war....
Wenn man die PICs nur mit dem PICKit3 programmiert hat, gabs keine 
Probleme. Also hab ich das Problem erst mal nicht weiter verfolgt.
OP #2434768
Lesenswert?

Torsten Schwalm schrieb:
> Läuft den das Program auf dem µC wenigstens? Wenn ja kannst du ja mal
> testen, ob du es mit einem Reset an MCLR anhalten kannst. Da kannst
> du dann ein falsch beschalteten MCLR Pin mit Sicherheit ausschließen.

Werde ich gleich machen - das Programm läuft allerdings, nur lässt sich 
der uC nicht mehr programmieren.

Torsten Schwalm schrieb:
> Wenn du ein Oszi hast, schau dir mal die Flanke von VPP an. Wenn die
> zu langsam ist, startet der µC mit dem internen Oszillator das
> Programm, aber du kommst nicht in den Programmiermodus!

Welche Größenordnung bedeutet zu langsam?

Ich hatte gestern noch so ein seltsames Erlebnis. Ich hatte mittags kurz 
Zeit und habe ein paar der vorher nicht beschreibbaren PIC16F627A 
ausprobiert, und auf einmal ließen sich zwei wieder beschreiben, und das 
Programm lief auch stabil. Danach war auf einmal wieder Schluss.

Ich lade gleich mal meine Schaltung sowie meinen C-Quellcode hoch, dann 
müssen wir nicht so im Dunkeln stochern. Vorher checke ich noch die 
Config-Bits aus dem Header-File.

Gruß
Jens
OP #2435689
Lesenswert?

Ich habe das Problem mittlerweile teilweise behoben:

Ich habe ein neues Programm beschrieben, dass nur das Config-Word 0x3fff 
enthält. Nun habe ich dieses mit der niedrigsten VDD (3.000V) mit dem 
PICkit3 an den PIC gesendet, und dann schrittweise die Spannung erhöht 
(über MPLAB -> Programmer -> Settings).

Was soll ich sagen? Drei meiner fünf PICs sind nun wieder ansprechbar, 
irgendwann kamen dann Signale zurück.

In meinem neuen Programm habe ich zudem zu Beginn (direkt nach dem 
Präprozessor-Befehl für das Config-Word, aber vor den Definitionen der 
Steuerregister) eine Warteschleife eingebaut. Das scheint einiges 
auszumachen, der PIC lässt sich nun problemlos flashen.

Woran das liegt ist mir nicht so ganz klar, habe aber im englischen 
MicroChip-Forum den obigen Tipp genannt bekommen. Dort wurde zudem 
geäußert, dass dieses Problem oft mit 18-poligen 16F-PICs auftritt, die 
im INTOSC-Modus arbeiten.

Gibt es diese Probleme auch bei AVRs?

Gruß
Jens
Gast #2435990
Lesenswert?

Firmware updaten:
In MPLAB -> Menü "Programmer" -> Settings
Es geht ein Fenster auf "PicKit3 Settings" -> Reiter "Configuration" -> 
Button "Manual Download"

Ich brauchte keine neue Firmware, es hat gereicht, die vorhandene 
nochmal neu ins PicKit zu programmieren.
Gast #3665179
Lesenswert?

> Ich hoffe er hat das Problem in den letzten 3 Jahren schon gelöst...

Selbst Microchip hat Jahre gebraucht, die Taktversorgung als
die Quelle des Uepels zu erkennen.

ICSP braucht gar keinen (CPU-)Takt um zu funktionieren.

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