Guten Tag FOlgendes Problem: Wenn ich mit MPLAB versuche mein PIC18F2550 zu Programmieren, erhalte ich folgende Meldung im Output Fenster: PICkit 3 detected Connecting to PICkit 3... Firmware Suite Version...... 01.27.04 Firmware type......................PIC18F PICkit 3 Connected. Target Device ID (0000ffe0) does not match expected Device ID (00001240). Weiss einer woran das liegen kann? Das Layout ist 100 % richtig, daran besteht kein Zweifel. Bei Programmer -> Settings -> Power habe ich das Häckchen auch hingemacht bei 5V. Hatte vielleicht schon jemand von euch ein ähnliches Problem? Ist es möglich dass der Controller kaputt ist? Danke für eure hilfe!
Also wenn keine Spannung anliegen würde, wäre die gelesene ID meines Wissens nach 0x00000000. Doch das ist ja nicht der Fall. Ich würde sagen, wenn der PIC wirklich der ist, der im Projekt ausgewählt ist und alle Verbindungen komplett richtig sind, bleibt nur noch der PIC, der einen abbekommen haben kann. Probier mal einen anderen PIC. edit: Also im Datenblatt seht, dass in DEVID1 und DEVID2 die ID steht. Diese wäre beim 2550 auch 1240. ffe0 wäre, wenn alle Bits der ID auf 1 wären. Also wäre meine Vermutung, dass die Spannung zu hoch ist/war, und der PIC kaputt ist.
Du hast auch in MPLAB den richtigen PIC ausgewählt und diese Einstellung nicht irgendwo per Software geändert? Torsten
Flashst Du InCircuit oder Standalone ? Diese Fehlermeldung kommt gerne beim InCircuit Flashen, wenn das PicKit noch weitere Teile der Hostschaltung "mitversorgen" muss. Ein weiterer Fehlergrund kann sein, daß Die Zuleitungen zur Zielschaltung Störungen einfangen. CLK ist recht empfindlich. (Eventuell sind auch CLK und DTA in der Hostschaltung zu sehr belastet.) Im Zweifel also den Pic aus der Schaltung nehmen und separat brennen. Gruss, Marcus
Danke schonmal für eure Beiträge. Ja, ich habe den richtigen PIC ausgewählt, daran besteht kein Zweifel. Mittlerweile habe ich auch den Controller einmal ausgewechselt, erhalte aber nach wie vor die selbe Fehlermeldung. Ich überprüfe jetzt trotzdem noch einmal die Hardware, auch wenn ich mir den Fehler auf dieser schlecht vorstellen kann.
Gern auch der Fehler, dass der PullUp an MCLR zu klein ist. Dann kann das PicKit den nicht schnell genug auf Masse ziehen. Bei mir waren 10k manchmal schon zu klein. Mit 20k gings dann wunderbar. Torsten
>Gern auch der Fehler, dass der PullUp an MCLR zu klein ist.
Oder ein viel zu fetter Kondensator an MCLR.
Der PIC befindet sich auf einem selbst entwickelten Developmentboard, das Teil soll für ÜK's im Bereich Mikrokontrollertechnik angewendet werden. Nun, ich bin im zweiten Lehrjahr, das Board wurde von einem Lehrling aus dem vierten Jahr entwickelt. Da man aber noch einige Sachen anpassen musste, bekam ich den Auftrag das Board noch einmal neu zu machen und die Schaltung ein wenig anzupassen. Nun, ich habe auf dem Board einige Sachen verändert, was den PIC18F2550 und seine Schaltung rund um ihn angeht, habe ich allerdings nichts verändert, sondern alles so gelassen wie es war. Auf der ersten Demoversion des Boards hat das ganze Prima funktioniert, ich vermute ich muss sonst irgendwo einen Fehler gemacht haben... nicht ganz einfach zu finden wenn man die Schaltung nicht selbst entwickelt hat ;) Naja, zurück zum Thema. Im Anhang findet ihr einen Auszug aus dem Schema, vielleicht hilft das ja ein wenig weiter. Wage ich zwar stark zu bezweifeln, da dass ganze so ja schonmal funktioniert hat. Freue mich trotzdem über einige Kommentare dazu, danke!
1. Der ICSP-Stecker entspricht nicht der standardmäßig verwendeten PICKIT-Pinbelegung. Richtig ist: 1. !MCLR 2. VCC 3. GND 4. PGD 5. PGC 6. nc bzw PGM Das solltest Du auch genau so machen. Unbedingt! Sonst haut sich der nächsten seinen Programmer kaputt. 2. An !MCLR ist kein Pullup. Schau ins Datenblatt, da steht die empfohlene Reset-Beschaltung drin. Oder ins PICKIT3 bzw ICD3 User Manual. 3. Wenn mit PGDATA und PGCLOCK die ICSP-Signale gemeint sind, dann sind die garantiert nicht auf RA2 und RA3, sondern auf RB6 und RB7. 4. 100n Abblockkondensator zwischen VDD und VSS fehlt. fchk
DIe Pinbelegung habe ich geändert, hatte aber bereits vorhin ein Flachbandkabel gemacht das richtig war. Den Pullup Widerstand werde ich einbauen, sowie den 100n Abblockkondensator zwischen VDD und VSS, danke für die Hilfe!!! Wegen PGDATA und PGCLOCK, die beiden Signale führen niergends mehr hin. Bei der überarbeitung des Schemas gingen die beiden Verbindungen verloren, habe allerdings vergessen diese im Schema zu entfernen...
Es sind nun ein paar Tage vergangen und ich stecke immer noch Fest. Nach wie vor erhalte ich folgende Fehlermeldung, sobald ich bei MPLAB die 5V Spannung auf dem PICKit 3 Aktiviere: Target Device ID (00000000) does not match expected Device ID (00001240). Dass dies bedeutet, dass die kommunikation zwischen dem PICKit 3 und dem PIC18F2550 nicht richtig funktioniert, ist mir mittlerweile bekannt. Der Grund weshalb das so ist, ist mir aber ein Rätsel. Im Anhang findet ihr ein Bild des aktuellen Schemas. Sieht vielleicht irgend jemand von euch ein Anschluss der fehlt/falsch ist? Ich habe das Datasheet schon oft durchgelesen, seh aber einfach den Fehler nicht ein, also dachte ich mir ich frage mal hier wieder nach, vielleicht weiss es ja einer von euch. Falls wer von euch den Fehler sieht, bzw. irgend eine Bemerkung hat, wäre ich euch dankbar wenn ihr diese Begründet oder mir sagen könnt, woher ihr die Information habt. Schliesslich geht es mir darum dass ich selber etwas dabei lerne. Ich danke euch !
Wenn der Aufbau so ist wie im Schaltplan hast du kein Hardware-Problem. Dann stimmt irgendwas in der Software nicht. Schaltung schaut OK aus.
Danke für die schnelle Antwort. Software ist 100 % nicht möglich, da diese auf der alten Version des Boards perfekt funktioniert hat. Zudem ist es eine Software von Microchip selbst, welche die Funktion eines PICKit 2 Programmers übernimmt. Ziel meiner gnazen Arbeit ist es nähmlich, den PIC16F887 der auch auf dem Board vorhanden ist, über den PIC18F2550 direkt zu Programmieren, damit man nicht ständig sein PICKit 2/3 rumschleppen muss, sondern das ganze bequem über USB machen kann. Daran kann es also unmöglich liegen. Den Controller selbst habe ich mittlerweile auch schon 4 mal gewechselt, ich glaube kaum dass ich ihn 4 mal Kaputt gemacht habe. Trage ständig ESD Schuhe und Schutzband...
Der 18F2550 ist ein PIC mit PGM Pin (Pin 26). Der gehört auf Pin 6 von SV6. Mach mal ein Pulldown dran. PGM ist bei dieser Serie von PICs für Low Voltage Programming gedacht. Das kann man abschalten, aber du weißt nicht, wie das gerade eingestellt ist. fchk
Foto ist sinnlos. Da mir bei der ersten Version einige Fehler unterlaufen sind, musste ich auf der leiterplatte alle Bahnen aufkratzen und dire mit Draht neu verbinden. Sieht sehr chaotisch aus, bin mir allerdings sicher dass ich die Drähte richtig gelötet habe. Bin aber evt. der Lösung einen Schritt näher gekommen. Damit man den PIC Programmieren kann benötigt man doch weitaus mehr als die 5V die vom Computer herkommen. In der alten Version habe ich nun einen Block "Erzeugung der Programmierspannung" gefunden (Siehe Schema im Anhang). Mein Lehrmeister meinte zwar zu mir, ich solle diesen Entfernen weil er angeblich zu nichts gut sei, ein Lehrling aus dem vierten lehrjahr hat mir aber eben gesagt, dass dieser Block genau diese ca. 10V oder so (gerade nichtmehr auswendig im Kopf) erzeugt, damit der PIC programmiert werden kann. Nun, wäre das möglich dass das Problem wirklich daran liegt, dass dieser Teil der Schaltung fehlt? Schliesslich habe ich nie etwas darüber gelesen, dass man diese Spannung erzeugen muss. Weder Sprut noch sonst welche Lernseiten erwähnen eine solche Schaltung.
Die Schaltung brauchst du nicht wenn du mit dem PicKit programierst. Da ist die drin. Es könnte allerdings sein, dass tatsächlich in deinen PICs sie Low Voltage Programierung aktiviert ist. Lege den PGM Pin während des Programierversuches auf Masse. Müsste bei dir Pin 26 sein.
Völlig unnötig die obere Schaltung. Ein PIC braucht zum Programmieren ein PICKit und einen funktionierenden PIC. Entweder hast du LVP drin, deine ICSP Beschaltung ist falsch oder dein PICKit2 hat ein Problem. Letzteres wäre mir nicht ganz unbekannt. Versuch ein anderes PICKit ... dieses Problem kommt mir ungemein bekannt vor. Mit einem anderen PICKit2 hats bei mir dann funktioniert. Oder versuch andere Firmenware auf das PICKit2 zu laden.
Noch eine Anmerkung: Mach mal eine Diode zwischen Pullup vom MCLR und VCC rein, Kathode zum Widerstand. Die verhindert, dass die 12V Vpp auf MCLR über den Pullup nach Vcc abfließen können. Bei 10k sollte sich der Strom zwar in Grenzen halten, aber wer weiß. fchk
Elolehrling schrieb: > Danke für die schnelle Antwort. Software ist 100 % nicht möglich, da > diese auf der alten Version des Boards perfekt funktioniert hat. Wie gesagt, vom Schaltplan her ist dein Aufbau OK. Wenn das in der Realität auch genau so aus sieht kann es schlichtweg nur die SW sein. Mein eigenes Dev-Board ist genauso beschaltet und ich hab mit Pickit3 keine Probleme den Pic zu flashen.
Torsten Schwalm schrieb: > Lege den PGM > Pin während des Programierversuches auf Masse. Müsste bei dir Pin 26 > sein. Was bringt es den PGM auf Masse (über einen Widerstand) zu legen ? Habe nähmlich ähnliches Problem: Benutze den PicKit3, alles angeschlosse wie auf dem Poster (5 Pins, 6-frei). Schaltplan: RB5 als blink-Led, keine weitere Beschaltung und interner Oszilator, bei PIC16F628A. a) Die Schaltung funktioniert sofort nach Programmieren, wenn ich aber PicKit abklemme, funktioniert nicht mehr.... kein Takt ? b) Die Schaltung funktioniert aber erst dann wider (beim abgesachaltetem PicKit), wenn ich den PGM auf Masse lege oder den mit der Hand anfasse (dann schaukelt sich die Schaltung langsam auf, Leuchtdiode fängt erst langsam und schwach und dann richtig und mit vorgegebenem Takt zu blinken). Wenn ich den PGW wieder von der Masse wegnehme oder die Hand wegnehme, dann blinkt die LEd nicht mehr.
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.