Forum: Mikrocontroller und Digitale Elektronik In Cirquit Debugging mit PIC und ICD2 - keine Verbindung


von Worf (Gast)


Lesenswert?

Hi Leute

ich möchte meinen PIC (18F4550) in dessen Schaltung programmieren und 
habe deshalb einen ICD2-Anschluss mit konstruiert.
Bis jetzt ist alles so zusammengelötet wie es auf dem Bild zu sehen ist.

Beim Brennen via MPLAB kommt jedoch die Meldung
ICD0083: Debug:  Unable to enter debug mode.  Please double click this 
message for more information.


Die Platine wird vom ICD2 aus versorgt. Die 5V liegen auch richtig an.
Wenn ich alles auf dem PICDEM2PLUS Board flashen will, funktioniert 
alles normal.

Was habe ich bei meiner Schaltung vergessen?

Grüße

von Worf (Gast)


Angehängte Dateien:

Lesenswert?

das Bild war bei Klick auf "Vorschau" scheinbar wieder gelöscht 
worden...grrr

von morph (Gast)


Lesenswert?

abgesehen von der fehlenden diode beim mclr gegen 5V?

es reichen schlecht geroutetet leitung oder zu lange leitungen womit man 
zwar noch programmieren kann, aber meist geht das debuggen dann nicht 
mehr.

von Worf (Gast)


Lesenswert?

Diode beim MCLR Pin? Das hab ich ja noch gar nicht gehsehen. Wo soll 
denn dort eine hin?
Ich wollte des vom PICDEM2-Board ableiten. Das Schematic ist hier:
http://ww1.microchip.com/downloads/en/DeviceDoc/PICDEM%202%20Plus%20RoHS.pdf

Die haben dort noch einen Kondensator am MCLR, den ich nicht habe. 
Sollte es daran liegen?

Das Problem mit zu langen Leitungen kenne ich, hab alles schön kurz (3 
cm).

von morph (Gast)


Lesenswert?

Mhm, scheinbar hab ich diese Infos von der Sprut-Seite, hab bis jetzt 
immer eine verbaut, immerhin erscheint mir das logisch da MCLR auf 13V 
gehoben wird beim Programmieren, die braucht man dann irgendwie doch 
nicht in der restlichen Schaltung

von Daniel P. (ppowers)


Lesenswert?

Das "using MPLAB ICD2" - poster ist eigentlich ganz hilfreich um zu 
klären, was bezüglich des Programmier/Debug-Interfaces alles erlaubt 
bzw. verboten ist:
http://ww1.microchip.com/downloads/en/DeviceDoc/51265g.pdf

Hier ist keine Diode von +5V in Richtung Vpp eingezeichnet. Ist auch 
nicht wirklich nötig, denn selbst wenn Vpp auf 13V angehoben wird, 
fließt durch den 10kOhm Widerstand gerade mal ein Strom von 0.8 mA.

Allerdings glaube ich eher, dass es sich in diesem Fall um ein Software- 
bzw. Anwenderproblem handelt. Darum hier mal eine kleine Checkliste:

Steht der PIC18F4550 am unteren Rand des MPLAB-Fensters?
Stimmen die Oszillatoreinstellungen? (Im Menü "Configure > Configuration 
bits" die Oszillatoreinstellunge prüfen! Stimmen diese mit dem 
verwendenten Quarz und den Einstellungen in der Software überein?)
Welches Linkerfile benutzt Du (vorausgesetzt Du verwendest den C18)? 
18F4550.lkr oder 18F4550i.lkr? Letzteres ist fürs Debuggen erforderlich!

gruß
daniel

von Andreas R. (blackpuma)


Lesenswert?

Wo seht ihr bitte eine Diode in der angehängten Schaltung?

von Daniel P. (ppowers)


Lesenswert?

Andreas Riegebauer wrote:
> Wo seht ihr bitte eine Diode in der angehängten Schaltung?
Wenn Du Dich vor dem Posten bequemt hättest den vollständigen Thread zu 
lesen, dann wäre Dir klar, dass es um eine angeblich FEHLENDE Diode in 
der angehängten Schaltung geht...

von Worf (Gast)


Lesenswert?

Also ich denke eher dass es doch ein HW Problem ist. Bei MPLAB-Start 
wird alles richtig erkannt:

--------------------------
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to MPLAB ICD 2
Target Device PIC18F4550 found, revision = Rev 0x5
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
--------------------------


Beim Flashen kommt dann das:

--------------------------
Programming Target...
...Validating configuration fields
...Erasing Part
...Programming Program Memory (0x0 - 0x27F)
...Loading DebugExecutive
...Programming DebugExecutive
...Programming Debug Vector
...Programming RSBUG
Verifying...
...Program Memory
...Debug Executive
...Debug Vector
...Verify Succeeded
Programming Configuration Bits
.. Config Memory
Verifying configuration memory...
...Verify Succeeded
Connecting to debug executive
ICD0083: Debug:  Unable to enter debug mode.  Please double click this 
message for more information.
MPLAB ICD 2 Ready
---------------------------


Ich sehe auch den Ladebalken beim Flashvorgang. Nur am Ende kann er 
nicht in den Debug wechseln.
Die 4550i.lkr Datei hab ich auch probiert, keine Änderung.

von Carsten S. (carsten)


Lesenswert?

Sicher dass dein µC auch läuft? Oszillatorsettings überprüft? Liegen 
alle Spannungen korrekt an?
Wo nichts läuft gibts nichts du debuggen ;-)

von Worf (Gast)


Lesenswert?

Oszillator wars tatsächlich.

Muss auf HS stehen.
Danke !!

von morph (Gast)


Lesenswert?

ist jetzt auch nicht der weisheit letzter schluss :) wann HS, XT oder RC 
eingestellt werden muss verraten dir datenblatt und deine schaltung =)

von Andy (Gast)


Lesenswert?

Hier meine Einstellungen für:
- PIC18F4550
- CCS Compiler
- PICDEM 2 Plus Board

Die mit Ausrufezeichen versehenen Fuses ware bei mir relevant für das
debuggen mit dem ICD 2.
Ausserdem beachten, dass in der MPLAB Oberfläche unter Project > Build 
Options > Project > CCS C Compiler "Compile for use with ICD Debugger" 
aktiviert ist.

#include <18F4550.h>

#device ICD=TRUE
#device adc=10

#FUSES NOWDT                   //No Watch Dog Timer
#FUSES WDT128                  //Watch Dog Timer uses 1:128 Postscale
#FUSES INTRC_IO                //Internal RC Osc, no CLKOUT
#FUSES NOPROTECT               //Code not protected from reading
#FUSES BROWNOUT                //Reset when brownout detected
#FUSES BORV43                  //Brownout reset at 4.3V
#FUSES NOPUT                     //!!!!! Power Up Timer !!!!!!
#FUSES NOCPD                   //No EE protection
#FUSES STVREN                  //Stack full/underflow will cause reset
#FUSES DEBUG                   //Debug mode for use with ICD
#FUSES NOLVP                   //No low voltage prgming, B3(PIC16) or 
B5(PIC18) used for I/O
#FUSES NOWRT                   //Program memory not write protected
#FUSES NOWRTD                  //Data EEPROM not write protected
#FUSES IESO                    //Internal External Switch Over mode 
enabled
#FUSES FCMEN                   //Fail-safe clock monitor enabled
#FUSES NOPBADEN                //PORTB pins are configured as digital 
I/O on RESET
#FUSES NOWRTC                  //configuration not registers write 
protected
#FUSES NOWRTB                  //Boot block not write protected
#FUSES NOEBTR                  //Memory not protected from table reads
#FUSES NOEBTRB                 //Boot block not protected from table 
reads
#FUSES NOCPB                   //No Boot Block code protection
#FUSES MCLR                    //Master Clear pin enabled
#FUSES NOLPT1OSC               //Timer1 configured for higher power 
operation
#FUSES NOXINST                 //Extended set extension and Indexed 
Addressing mode disabled (Legacy mode)
#FUSES PLL1                    //No PLL PreScaler
#FUSES CPUDIV1                 //No System Clock Postscaler
#FUSES USBDIV                  //USB clock source comes from PLL divide 
by 2
#FUSES NOVREGEN                //USB voltage regulator disabled
#FUSES NOICPRT                   //!!!!! ICPRT disabled !!!!!!

#use delay(clock=8000000,RESTART_WDT)

von Peter Diener (Gast)


Lesenswert?

Hallo,

unabhängig von allen anderen Schwierigkeiten sollte in die Schaltung 
unbedingt ein Blockerkondensator (100n) in die Vcc eingebaut werden.

Ohne Blocker läuft jeder Mikrocontroller instabil.

Grüße,

Peter

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.