Hallo µC-Experten, eine grundsätzliche Frage zum Flashen mit folgendem Setup: PICkit3, MPLAB IPE v2.10 Das flashen funktioniert und wird mit Programming... Programming/Verify complete 2015-01-03T11:43:12+0100- Programming complete Pass Count: 16 bestätigt. Führe ich aber "Verify" durch, kommt die Meldung Verifying... User Id Memory Address: 8005c2 Expected Value: ffff Received Value: ffffff Verify failed 2015-01-03T11:43:42+0100- Verify failed Warum? Vorher bestätigt er Verify complete, danach Verify failed??? Läuft der PIC dennoch? Wer weiß mehr? Gruß Gerhard
Hallo, was ist den MPLAB IPE v2.1 (kenne ich nicht)? Meistens kommt der Verify-Fehler, wenn Du: - den Chip mit Code-Protection programmiert hast, - den falschen Chip für das Lesen eingestellt hast, - die Spannungsversorgung nicht stimme. Ob der PIC läuft, läßt sich ja ganz einfach prüfen - nämlich Anschliessen und schauen, was der tut. Wenn der Fehler NUR bei der ID liegt, dann ist das sowieso unkritisch. Gruß TK
Hallo TK, danke für die Hinweise. MPLAB IPE v2.1 ist im Prinzip ein Stand-Alone-Programm zum flashen von PIC, welches mit MPLAB X IDE v2.10 installiert wird. Damit musst du nicht das mächtige MPLAB X IDE v2.10 starten. Zu deinen Hinweisen kann ich jetzt schon mal was sagen: Spannung: Diese sollte stimmen. Ich hatte am Anfang eine Fehlermeldung, musste dazu von 5V auf <5V einstellen und dann funktionierte es auch. Also Probleme mit der Spannung schließe ich aus. Chip-Auswahl: Die Einstellungen des Chip für das Auslesen ist unverändert. Protection: Muss ich erst mal prüfen. Wenn du schreibst TK schrieb: > Wenn der Fehler NUR bei der ID liegt und ich die Meldung Gerhard schrieb: > User Id Memory > Address: 8005c2 Expected Value: ffff Received Value: ffffff > Verify failed dann ist ja nur die Adresse ID betroffen und somit wäre das nach deine Aussage unkritisch. Bzgl. Einbau: Ich flashe für einen Bekannten den PIC und habe seine Schaltung nicht zur Hand. Gruß Gerhard
Hallo TK, ich habe nochmal bzgl. Code-Protection geschaut. Wenn ich richtig liege? dann ist Code-Protection disabled,zumindest kann ich das so aus der Config Memory auslesen. Aber wenn dem so ist, dass die Adresse User-ID unkritisch ist, dann schicke ich meinem Bekannten mal den PIC zu. Gruß Gerhard
Hallo, kann es sein, dass ggf. ein Quarz angeschlossen werden muss, da die Zielschlatung einen Quarz enthält? Geht daher "Verify" nicht beim direkten flashen des Pic? Gruß Gerhard
Hast du beim Verify das richtige Hex File noch geladen? Gerhard schrieb: > Hallo, > > kann es sein, dass ggf. ein Quarz angeschlossen werden muss, da die > Zielschlatung einen Quarz enthält? Geht daher "Verify" nicht beim > direkten flashen des Pic? > > Gruß > Gerhard Das sollte eigentlich keine Rolle spielen, da der PIC während dem Programmieren/Verifizieren immer mit dem internen Takt läuft
Hallo Dominic, ja, der PIC ist unverändert. Ich kann mir auch nicht vorstellen, warum sich die Einstellung plötzlich ändern sollte. Ich nehme an du kennst die MPLAB IPE? Gruß Gerhard
Gerhard schrieb: > Ich nehme an du kennst die MPLAB IPE? Auch nur vom ein bisschen herumspielen. Benutzt du zufällig lange Programmierleitungen? Was du noch probieren könntest wäre folgende Dinge: *Den Programmiertakt reduzieren(Geht nicht bei allen Typen) *Den Flashmemory anschauen ob da alles auf 0xFFFF steht oder Daten drin sind *Direkt mit dem MPLAB versuchen
Hallo Gerhard, zwei Dinge machen mich stutzig: 1) Du mußt die Spannung von 5V auf <5V stellen, damit das Programmieren geht. Benutzt Du dann einen 3V-Typ? (Um welchen Chip handelt es sich denn überhaupt?) Wie sind die Einstellungen im MPLAB bzgl. Programmieren. Wird die Zielanwendung über das PICKit (also USB) versorgt, oder legst Du externe Versorgung an die Baugruppe? 2) Der Fehler besagt, dass > User Id Memory > Address: 8005c2 Expected Value: ffff Received Value: ffffff > Verify failed (also der received value hat eine andere Datenbreite als der expected value) Dies läßt mich vermuten, dass der falsche Chip eingestellt ist, oder beim expected value die führenden Nullen unterdrückt werden. Gruß TK
Ich habe mittlerweile aufgegeben den Fehler zu suchen. Die Pic's mx150/170/250 werden aber immer richtig gebrannt und laufen.
Hallo TK und Mitleser, ich habe hier einen dsPIC30F2010 und ein PICkit3. Der PIC wird über das PICkit gespeist. Bei MPLAP IPE wird ja ganz oben der zu programmierende PIC ausgewählt, dann der PICkit3 connected. Es ist somit ausgeschlossen, dass sich die Einstellung bzgl. der Auswahl des PIC ändert. Ich müsste ja dann schon vorsätzlich die PIC-Auswahl ändern. Ich hatte vorher die empfohlene (recommended) Spannung 5V eingestellt. Da meckerte aber die IPE. Stellte dann auf 4,75V und dann war alles völlig ok. Meine Erfahrung ist auch, dass bzgl. Spannung die PIC sehr großzügig sind. Also ein 5V-Typhabe ich versuchsweise mal mit 4V und 3,5V programmiert, ging auch. Gruß Gerhard
Volker SchK schrieb: > Sieht aus als erwartet das Programm 2 Byte und bekommt aber 3 ... Ja, danach sieht es tatsächlich aus. So was kann aber IMHO nur eine Macke in MPLAB IPE sein.
Ein paar Möglichkeiten wurden ja schon genannt. Weitere mögliche Ursachen für dein Problem können sein: LVP-Modus beim Programmieren aktiviert, und der LVP-Pin ist offen bzw. wird nicht auf Low gezogen. Externes MCLR abgeschaltet, und der Programmer verwendet aus irgendwelchen Gründen nicht die richtige Power-On-Sequenz.
Mein PIC-Progger macht Probleme, wenn ich die Config bits mit flashe. Flashe ich alles ausgenommen der Config bits, ist Verify ok. Deshalb flashe ich die config bits in einem Extraschritt.
Gerhard schrieb: > PICkit3, MPLAB IPE v2.10 Aus dem Microchip Forum "Sorry, the latest IPE version as of now is 2.25. You may use that."
X4U schrieb: > "Sorry, the latest IPE version as of now is 2.25. You may use that." Das stimmt leider nicht, die aktuelle Version ist 2.26. Auch diese Version bringt keine Verbesserung. Trotzdem Danke für den Hinweis. Gerhard
Hallo, ich habe genau dieses Problem und wollte deswegen diesen Beitrag auffrischen. MPLAB IPE v6.05 ICD 3 (Scheint noch kompatible mit neueren MPLAB IPEs zu sein) dsPIC30F5011 für genaue Version-Info:
1 | Connecting to MPLAB ICD 3... |
2 | |
3 | Currently loaded firmware on ICD 3 |
4 | Firmware Suite Version.....01.56.10 |
5 | Firmware type..............dsPIC30F |
6 | Target voltage detected |
7 | Target device dsPIC30F5011 found. |
8 | Device Revision ID = 1005 |
Programming ist erfolgreich mit der folgender Meldung
1 | The following memory area(s) will be programmed: |
2 | program memory: start address = 0x0, end address = 0x1bff |
3 | configuration memory |
4 | Programming/Verify complete |
5 | 2023-01-10 09:42:33 +0100 - Programming complete |
Ich gehe davon aus, dass kein Verify durchgeführt wird, denn nur "Programming complete". Wenn ich anschließend Verify durchführen will, dann bekomme ich den folgenden Fehler:
1 | Verifying... |
2 | |
3 | The following memory areas(s) will be verified: |
4 | program memory: start address = 0x0, end address = 0xafff |
5 | configuration memory |
6 | EEData memory |
7 | User Id Memory |
8 | |
9 | User Id Memory |
10 | Address: 8005c2 Expected Value: ffff Received Value: ffffff |
11 | Verify failed |
Dass MPLAB IPE eine 3-Byte Memory-Adresse erwartet, macht mir eigentlich Sorgen. Ist jemand schlauer mit diesen Fehlermeldungen? Mir scheine alle meiner Einstellungen richtig zu sein aber ich übersehe vllt. etwas. Wo soll ich denn Fehler suchen?
uu92 schrieb: >
1 | > Verifying... |
2 | > |
3 | > The following memory areas(s) will be verified: |
4 | > program memory: start address = 0x0, end address = 0xafff |
5 | > configuration memory |
6 | > EEData memory |
7 | > User Id Memory |
8 | > |
9 | > User Id Memory |
10 | > Address: 8005c2 Expected Value: ffff Received Value: ffffff |
11 | > Verify failed |
12 | > |
> > Dass MPLAB IPE eine 3-Byte Memory-Adresse erwartet, macht mir eigentlich > Sorgen. Ist jemand schlauer mit diesen Fehlermeldungen? Mir scheine alle > meiner Einstellungen richtig zu sein aber ich übersehe vllt. etwas. Wo > soll ich denn Fehler suchen? Daten, nicht Adresse. Der Flash-Adressraum im PIC24 und dsPIC ist 24 Bit breit, der Daten-Adressraum 16 Bit breit. In Deinem Fall ist das oberste Byte auf 0, soll aber ff sein. Ich gehe mal davon aus, dass es irgend ein Problem mit Deinem Hex-File gibt. Ältere Tool-Versionen haben das oberste Byte in der User ID wohl ignoriert, aktuelle berücksichtigen es, und die Hardware hat es schon immer implementiert. Am besten compilierst Du Deinen Code mal ganz neu mit der aktuellen XC16-Version (oder besser nicht der ganz aktuellen 2.00, sondern der 1.70) und probierst das so erzeugte Hex-File mal aus. Wenn Du den Quellcode nicht hast, hast Du mehr oder weniger verloren. Hex-Files per Hand im Editor zu reparieren geht zwar prinzipiell, macht aber keinen Spaß, zumal jede Zeile durch eine Prüfsumme gesichert ist. fchk
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.