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.
ausersehen LVP aktiviert ? und dein ICD2 kann des net (wens nen nachbau ist) Bugfix wehre den PGM auf gnd legen beim proggen
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?
Hi, ka ob des bei mplab direkt geht sollte aber ansonsten erstell dir ne asm Datei mit folgenden Inhalt.
1 | #include <p16f876.inc> |
2 | list p=16f876 |
3 | |
4 | __CONFIG _WDT_OFF & _PWRTE_OFF & _INTOSC_OSC_NOCLKOUT & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF |
5 | |
6 | end |
die jagst durch mpasm und Flasht den die hex auf den Chip. mfg tb
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:
> hm, also in mplab finde ich die option nicht
Configure -> Configuration bits...
ok, das hatte ich auch schon gemacht, aber wie bekomme ich jetzt die einstellungen auf den pic. denn er wird ja nicht richtig erkannt.
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.
push keiner mehr eine idee? Das mit RB3 auf Masse legen will irgendwie nicht funktionieren...
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?
sag rein aus interesse, stellst du auch den chiptypen im mplab um? also wenn du zwischen den beiden devices wechselst
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
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.