Forum: Mikrocontroller und Digitale Elektronik PICKit3 mit PIC18F2550 problem


von Elolehrling (Gast)


Lesenswert?

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!

von Michael S. (rbs_phoenix)


Lesenswert?

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.

von Torsten S. (torstensc)


Lesenswert?

Du hast auch in MPLAB den richtigen PIC ausgewählt und diese Einstellung 
nicht irgendwo per Software geändert?

Torsten

von Marcus (Gast)


Lesenswert?

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

von Elolehrling (Gast)


Lesenswert?

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.

von Torsten S. (torstensc)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>Gern auch der Fehler, dass der PullUp an MCLR zu klein ist.

Oder ein viel zu fetter Kondensator an MCLR.

von Elolehrling (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Frank K. (fchk)


Lesenswert?

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

von Elolehrling (Gast)


Lesenswert?

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...

von Elolehrling (Gast)


Angehängte Dateien:

Lesenswert?

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 !

von M. K. (sylaina)


Lesenswert?

Wenn der Aufbau so ist wie im Schaltplan hast du kein Hardware-Problem. 
Dann stimmt irgendwas in der Software nicht. Schaltung schaut OK aus.

von Elolehrling (Gast)


Lesenswert?

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...

von Torsten S. (torstensc)


Lesenswert?

Mach mal ein Foto vom Aufbau. Irgendwas ist da faul.

Torsten

von Frank K. (fchk)


Lesenswert?

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

von Elolehrling (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Torsten S. (torstensc)


Lesenswert?

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.

von Xavier Lander (Gast)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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

von M. K. (sylaina)


Lesenswert?

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.

von PicTester (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.