Hallo Ich arbeite mit einem PIC18F2331 und dem Programm MBLab C18 Ich habe einen Programmcode in der Programmiersprache C geschrieben und wollte diesen via ICD2 auf den PIC übertragen. Das ging ein paar mal ohne das ich einen Fehler bekam. Nur als ich einige male den Code geändert hatte und ich den Code wieder übertragen wollte bekam ich einen Fehler und ich weiß nicht woran das liegen kann. Im Anhang ist der Programmcode. Der Fehler lautet: Verify failed (MemType = Program, Address = 0x0, Expected Val = 0xEFD2, Val Read = 0xFFFF) Ich hoffe ihr könnt mir helfen! Mfg
beim ICD2 wirst du wahrscheinlich auch einstellen können, ob vor dem brennen der PIC gelöscht werden soll. aktiviere das. ich bekam die selben fehlermeldungen beim ICD3, als ich einmal fand, dass diese einstellung (vorher PIC löschen) doch nicht nötig sei und deaktivierte ;-)
Hallo erst einmal vielen Dank für die Hilfe. Leider lag es daran auch nicht. Langsam verzweifle ich daran..:-( mfg
hast du ein zu langes kabel oder sonst störende einwirkungen auf die übertragungsleitungen? läuft das programm an sich (d.h. kein fehler beim brennen, sondern nur beim lesen/vergleichen)? schon mal einen anderen chip ausprobiert? mach mal einen blank check (alles löschen), verifizieren und dann brennen... sonst weiss ich auch nicht was... sorry
Das Programm an sich läuft wenn ich auf Build All gehe schreibt er mir Build Succeeded. Erst wenn ich Programm Traget Device mache kommt die Fehlermeldung. zum Blank Check: Wenn ich den Blank Check auswähle kommt: Blank Checking... ...Program Memory .. Config Memory ...EEPROM ...User ID Memory ...Blank Check Passed MPLAB ICD 2 Ready Wenn ich Verify auswähle kommt: Verifying... ...Program Memory ICD0161: Verify failed (MemType = Program, Address = 0x0, Expected Val = 0xEFD2, Val Read = 0xFFFF) MPLAB ICD 2 Ready
Was hast Du für ein Kabel? Die ICD2 reagiert ein bisschen allergisch auf zu lange Kabel. Wenn Du ein selbstgebasteltes Kabvel hast dann mach es so kurz wie möglich. Was auch helfen kann - einfach den PIC nur löschen Menü-Programmer-Erase Part und anschliessend neu flashen. Du kannst auch mal probieren unter Menü->Programmer->Settings->Reiter Program den Punkt Allow ICD2 to select memories.... manuell auswählen und Dort bei Memories PROGRAM Configuration EEPROM(?) ID aktivieren und bei Program Memory Full Range botton betätigen und übernehmen Typischerweise ist das ein Kommunikationsproblem zwischen PIC-ICD-USB-MPLAB und liegt nicht nicht am Code. Ich geh mal spontan davon aus, dass Du nicht irgendwelche nicht existieren Speicherbereiche gefüllt hast... MfG Karsten
Hi! Ich hatte vor einiger Zeit ein ähnliches Problem, als die Spannungsversorgung vom Board Probleme gemacht hat. Da hat die ICD2 nicht mehr genügend Strom liefern können und dauernd Programmierfehler gebracht. Vielleicht hilft das weiter. Grüße, TommyS
Versuch mal Folgendes: Falls dieser PIC-Typ low voltage programming beherrscht, dieses in den configuration settings ausschalten. Den Pin PGM auf GND legen. Dann erneut Build all und programmieren. (Hatte beim PIC16F883 ein solches Problem)
Vielen Dank für die vielen und schnellen Antworten. Ich benutze vom MPLAB zur ICD2 ein USB AB Kabel und von der ICD2 zum PIC ein RJ11 Kabel. Ich habe versucht den PIC zu löschen, habe unter Settigs die einstellungen gemacht die oben vorgeschlagen worden sind...hat leider alles nichts geholfen. Nicht dasich wüsste habe ich nicht existierende Speicherbereiche programmiert. Als ich angefangen habe habe ich ein kleines Programm geschrieben um 2 LEDs zum leuchten zu bringen. Das hat ohne Probleme funktioniert. Erst als ich das Programm erweitert habe(Timer,PWM) kamen die Probleme. Es ließ sich 1-2x übertragen und seitdem nicht mehr. Ich habe auch schon die 2 arten der Spannungsversorgung für die ICD2 versucht. 1.) Wo das ICD2 direkt an der Steckdose hängt 2.) Wo das ICD2 über den USB Port versorgt wird leider hat das alles nichts geholfen Mfg Patrick
Patrick Frei wrote: > Vielen Dank für die vielen und schnellen Antworten. > > Ich benutze vom MPLAB zur ICD2 ein USB AB Kabel und von der ICD2 zum PIC > ein RJ11 Kabel. RJ11: Wie lang? Sind alle 6 Kontakte bestückt und angeschlossen? > > Ich habe versucht den PIC zu löschen, habe unter Settigs die > einstellungen gemacht die oben vorgeschlagen worden sind...hat leider > alles nichts geholfen. Und den PGM Pin auf GND? > Als ich angefangen habe habe ich ein kleines Programm geschrieben um 2 > LEDs zum leuchten zu bringen. Das hat ohne Probleme funktioniert. > Erst als ich das Programm erweitert habe(Timer,PWM) kamen die Probleme. > Es ließ sich 1-2x übertragen und seitdem nicht mehr. Versuch es nochmals mit dem kleinen Programm. > 1.) Wo das ICD2 direkt an der Steckdose hängt Meinst sicher über ein Netzteil, oder?
Ein Blick in deinen Source-Code enthüllt mir, dass Du zumindest hier keine Config-Register Einstellungen gemacht hast. Wenn Du diese im MPLAB machst bitte überprüfen ob brown-out ausgeschaltet ist, der Watchdog deaktiviert, Low-Voltage Programming ausgeschaltet ist, der Korrekte (interne?) Oszillator ausgewählt ist. MfG Karsten
Hallo Das RJ11 Kabel ist ca. 38,5cm lang. Es sind nur 5 oder 6 Pins auf meiner Platine bestückt, da das ICD2 meines wissens nur 5 Kontakte benötigt. Der PGM Pin ist nicht auf GND, aber das werde ich jetzt einmal versuchen. Das kleine Programm lässt sich auch nicht mehr übertragen. Es erscheint der gleiche Fehler wie immer. Ja ich meine via Netzteil. Ich habe den Source Code neu überarbeitet mit einigen neune Einstellungen die aber auch nicht zur Lösung beigetragen haben. ich werde den neuen Source Code auch in den Anhang hier stellen. Wo schalte ich im MPLAB brown-out,Watchdog,Low-voltage programming aus? mfg Patrick
Patrick Frei wrote: > Der PGM Pin ist nicht auf GND, aber das werde ich jetzt einmal > versuchen. Und, ging's jetzt? > Wo schalte ich im MPLAB brown-out,Watchdog,Low-voltage programming aus? Configure -> Configuration Bits und dort Haken bei "Configuration Bits set in code" entfernen. Anschliessend Werte einstellen.
Ich hatte die Pins AVdd und AVss nicht verbunden. Nachdem ich etwas recherchiert hatte hab ich die Pins AVdd und AVss mit GND und 5V verbunden. Auch den Pin PGM hab ich auf Masse gelegt und es hat auf anhieb funktioniert das sich der PIC porgrammieren lies. Vielen Dank für die kompetente Hilfe. Mfg
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.