Hallo,
Und zwar habe ich heute einen PIC 16F876 bekommen, und wollte ihn gleich
mal testen. Hab mein ICD2 angeschlossen, in MPLab 8.2 das Device
ausgewählt, und connected. Lief alles gut. Hab testweiße mal einfach A0
auf high geschalten. Doch als ich weiter programmierte, kam plötzlich
beim übertragen auf den PIC folgendes:
Verify failed (MemType = Program, Address = 0x0, Expected Val = 0x3000,
Val Read = 0x3FFF)
Hab ihn danach einfach mal abgesteckt, und wieder angesteckt. Aber ohne
Erfolg. Nun kommt direkt beim connecten ein Fehler:
Invalid target device id (expected=0x4F, read=0x1FF)
Wenn ich ans ICD2 einen 18F4550 anschließe klappt alles, also kanns das
ICD2 bzw. das Kabel nicht sein, auch deshalb weil er ja eine ID
einliest, nur eben die falsche(oder?).
Wenn ich den Pic aus dem Sockel nehme und versuche zu connecten zeigt er
mir Invalid target device id (expected=0x4F, read=0x0). Stimmt auch,
was soll er den lesen, wenn nichts eingesteckt ist, also in den Sockel.
Also an was könnte denn das nun liegen, dass der PIC auf einmal nicht
mehr erkannt wird?
MfG Kurt H.
hm, unsere schule hat die boards bestellt, bist du dir sicher dass es
das nicht kann?
lvp ist ja low voltage programming oder? kann das das icd2?
und das mit dem pgm pin auf masse legen funktioniert? auf welchen pin
des 16f876 geht den dieser pgm pin? kann das sein dass es der pin 24
ist? und diesen einfach auf gnd legen damit es funktioniert?
sry für solche fragen, aber ich kenn mich noch nicht wirklich gut mit
dem icd bzw. pic's aus.
im anhang mal ein bild vom meinem icd2.
Hi das kann ich dir net genau sagen es gibt ne ganze menge nachbauten am
besten ausprobieren kaputtmachen kanste dabei nichts.
Aso sehen ob dein Brenner lvp kann tuste da dran ob der icsp 5pin hat
oder 6 pin
PGM auf gnd und den des configwort löschen und beim nästen mal drauf
achten des das LVP bit nicht gesetzt ist.
LVP = Low Voltage Programming.
mfg tb
ok, also der icsp anschluss hat 5 pins. +5V, GND, PGD, PGC und MCLR.
Nun hab ich den Pin RB3, laut datenblatt PGm, auf GND gelegt, dann in
mplab unter configure, configuration bits das lvp auf disabled
eingestellt. muss ich das nun irgendwie auf den pic rauf spielen, oder
macht er das gleich bei der änderung von den einstellungen.
und wie kann man das config word löschen?
ok, thx soweit.
also mplab kennt folgende sachen nicht:
Symbol not previously defined (_INTOSC_OSC_NOCLKOUT)
Symbol not previously defined (_MCLRE_OFF)
Symbol not previously defined (_BOREN_OFF)
Symbol not previously defined (_DATA_CP_OFF)
wenn ich diese weg gebe, kompiliert er es. aber wie krieg ich das hex
file auf den pic? denn mit dem icd2 klappt das ja nicht, da er immer die
falsche id liest...
hm ich glaub mplab hat ne funktion zum ignorieren der meldung ansonsten
mit piclab da gibs nen comandozeilen tool für windows.
die nicht erkanten flags sind nicht so wichtig kanste weglassen sind von
gputilits deswegen kann des sein des die bei mpasm anders sind hab die
nur wegen der Vollständigkeit drinne gelassen.
hm, also in mplab finde ich die option nicht, und bei piclab kann man
nur serielle schnittstellen auswählen aber kein usb...
wie könnte ich den das prog sonst auf den pic schmeißen?
kh wrote:
> ok, das hatte ich auch schon gemacht, aber wie bekomme ich jetzt die> einstellungen auf den pic. denn er wird ja nicht richtig erkannt.
Programmer -> Program
sollte jetzt funktionieren, sofern Du RB3 auf GND gesetzt hast.
Ok, Ich habe RB3 auf GND gelegt, aber es kommt diese Meldung wenn ich
programmieren will:
Verify failed (MemType = Config, Address = 0x2007, Expected Val =
0x3F72, Val Read = 0x3FFF)
Und wenn ich RB3 auf GND gelegt habe und neu connecte, erkennt er immer
noch nicht die richtige ID.
der chip ist endweder defekt oder du hast nen fehler im layout.
ID = chiptyp, das is das erste was er versucht abzufragen, wenn er da ne
falsche antwort kriegt (zb 0x00 bei gar keiner verbindung) dann meldet
er das.
hilft das soweit?
Er kriegt 0x1ff als ID. Also irgend etwas erkennt er. Als ich gestern
versuchte dass erste mal den PGM Pin auf low zu legen, erkannte MPLab
ihn als 16f876. Dann wollte ich etwas raufprogrammieren, aber er nicht
mehr erkannt.
Also müsste die Schaltung stimmen...
Und außerdem hab ich hier auch noch ein Demo Board mit einem 18F4550 und
einen Steckplatz für den 16f876. Das Board funktioniert mit dem 4550
ganz normal, aber beim 16f876 kommt wieder 0x1ff.
Der hat doch schon einmal funktioniert :(
ok hab gerade etwas gefunden:
und zwar wenn ich in mplab auf programmer, settings, power gehe, dann
habe ich beim 16f876 eine target vdd von 5,00V target vpp von 5,6V und
MPLAB ICD2 Vpp 12,94V.
Ist das Target Vpp nicht viel zu wenig? Normal muss ich doch so 12-13V
haben oder?
Schonmal Baudrate heruntergesetzt?
Das Phänomen kommt mir bekannt vor. Ich habe hier zwei von Elektor
nachgebaute ICDs. Das eine selbst geätzt, das andere professionell mit
kleinen Layoutänderungen erstellen lassen. Ich brenne damit einen 16f876
und einen 24f64.
Und jetzt kommt's: Das selbstgeätzte brennt beide, das andere nur den
16f. Baudrate runter = auch der 24f wird richtig erkannt. 4k7 Pulldown
durch 470 Ohm ersetzt = 24f wird auch mit hoher Baudrate erkannt, dafür
aber der 16f nicht.
Wenn hierzu jemand 'ne Idee hat, Tipps werden gerne entgegen genommen.
Bei mir war das so, ich hab pic18LF2321 programmieren müssen.
Die PINS von Data und Clock waren bei mir für die Tasten belegt. Ich
hatte da eine Hardware - Tastenentprelung aus Widerstand und
Kondensator.
Ich bekamm auch immer flasch ID angezeigt, als ich dan die Kondensatoren
in Data und Clock Leitungengen raus gelötete habe.
DAnn ging ohne Probleme.
Hi,
offenbar kann man sich auch beim PIC „aussperren“ so wie das bei ATMEL
möglich ist. Mein Effekt im Grunde der gleiche - nur noch etwas
seltsamer.
Sei einem halben Jahr verwende ich ein 16F819 basierendes,
selbstgebautes Eval Board um Programmteile zu testen. Nie gab’s Probleme
obwohl auch ich mit MCLR als IO Pin und internen Oszillator arbeite.
MPLAB (Ver. 8.00) bzw. der ICD2 meckerte zwar – macht es aber doch. An
den Programmierleitungen hängt sonst nichts weiter.
Gestern erhielt ich nach dem progamieren dann plötzlich auch diese
„invalid target device ID“ Meldung. Der Code (einschließlich des CONFIG
Words) lief seit 2 Wochen problemlos. Und: Das Programm selbst läuft
auch – ich sehe es da ich verschiedene Signale ausgebe.
Ich habe dann den PIC gewechselt und neu programmiert: Das ging genau
ein mal. Der Code läuft wieder und nun komme ich wieder nicht mehr in
den PIC – kann also auch das CONFIG Word nicht mehr rücksetzen.
Beim manchen ATMEL Programmern gab es mal eine Funktion: „Ignore false
device ID“, die finde ich aber im MPLAB nicht.
Hat irgend eine Idee (ein Tool) wie man den PIC wieder in den
„Werkszustand“ bekommt ???
Vielen Dank,
EXE