Forum: Mikrocontroller und Digitale Elektronik Mplab ICD 2 Fehler


von Mathias H. (mathew)


Lesenswert?

Hallo Zusammen,

ich bin neueinsteiger in der PIC programmierung und habe hhier ein SET 
von Microchip!
Der Programmer ist ein ICD 2!

Wenn ich diesen mit dem PC connecte kommt der Fehler:

ICDWarn0020: Invalid target device id (expected=0x2B, read=0x1FF)

Und wenn ich dann irgendeine Aktion ausführen will kommt dieser Fehler:

*ICDWarn0052: MPLAB ICD 2 cannot validate a target device. Please make 
sure that the target device is connected and properly powered. Select 
"OK" to continue, or "CANCEL" to abort the operation*

Ich habe alles Verbunden und hab schon ein bisschen rumprobiert weiß 
aber leider nicht weiter :(

Könnt ihr mir helfen?

Danke und Gruß
Mathew

von Vincent H. (vinci)


Lesenswert?

Device? 3,3V / 5V?
Selbstversorger oder durch ICD2 versorgt?
Richtiges Layout? Beschaltung von MCLR, PCG und PGD?

von Mathias H. (mathew)


Lesenswert?

> Device? 3,3V / 5V?
Also ich habe die Platine (PICDEM 2 PLUS DEMOBOARD) und den ICD2 mit 
Spannung versogt! Jeweils 9V wie es auch draufsteht!

> Selbstversorger oder durch ICD2 versorgt?
Habe ich als Selbstversorger angegeben!

> Richtiges Layout? Beschaltung von MCLR, PCG und PGD?
MCLR? PCG? PGD? Sorry keien ahnung was das sein soll

von Mathias H. (mathew)


Lesenswert?

Der Selbsttest wird übrigens Bestanden!

von Chris B. (dekatz)


Lesenswert?

Es gibt auf dem Board jede Menge Jumper! Sind die alle korrekt 
gesetzt???

von Mathias H. (mathew)


Lesenswert?

Daran lags wohl! Vielen Dank!

von Mathias H. (mathew)


Lesenswert?

hab mich nunmal an die Beschaltung von Ausgängen gewagt :)

Leider funktioniert meine Schleife nicht! Wenn ich diese im Simulator 
laufen lassen wiederholt sich diese immer wieder wobei diese bei einem 
bestimmten Wert eigentlich den nächsten Befehl überspringen sollte :(

>                list        p=16f84a
>                radix       hex
>
>STATUS          equ         0x03
>PORTB           equ         0x06
>TRISB           equ         0x86
>HAM             equ         0x0c
>HAM2            equ         0x0d
>
>RPO             equ         0x05
>
>       org         0x00         ;die Startadresse nach Reset ist 0, > 
hierstartet der PIC
>       goto      main           ;Sprung zum Hauptprogramm
>       org      0x04            ;Interruptvector ist 0x04,
>                                ;bei Interrupt springt der PIC hierher
>
>
>;**************************************************
>main
>       clrf      PORTB      ; Ausgangssignale für PortB zurückgesetzt
>       bsf       STATUS,RPO ; auf Registerbank 1 umschalten
>       bcf       TRISB,3    ; Bit 3 von PortB als Ausgang umprogrammiert
>       bcf       TRISB,2    ; Bit 2 von PortB als Ausgang umprogrammiert
>       bcf       TRISB,1    ; Bit 1 von PortB als Ausgang umprogrammiert
>       bcf       TRISB,0    ; Bit 0 von PortB als Ausgang > 
umprogrammiert
>       bcf       STATUS,RPO ; auf Registerbank 0 umschalten
>       bsf       PORTB,3    ; Bit 3 von PortB setzen
>       bsf       PORTB,2    ; Bit 2 von PortB setzen
>       bsf       PORTB,1    ; Bit 1 von PortB setzen
>       bsf       PORTB,0    ; Bit 0 von PortB lsetzen

        clrf     HAM
loop
        incf     HAM,1     ; Inkrementier um 1
        btfss    HAM,7     ; Vergleiche ob Register den Wert 7 hat
        goto     loop      ; Springe zu Loop
        clrf     HAM2      ; Lösche Inhalt von Register HAM2
loop2

        incf     HAM2,1     ; Inkrementier um 1
        btfss    HAM2,7     ; Vergleiche ob Register den Wert 7 hat
        goto     loop2      ; Springe zu Loop2

>
>        bcf       PORTB,3    ; Bit 3 von PortB zurücksetzen
>        bcf       PORTB,2    ; Bit 2 von PortB zurücksetzen
>        bcf       PORTB,1    ; Bit 1 von PortB zurücksetzen
>        bcf       PORTB,0    ; Bit 0 von PortB zurücksetzen
>
>         goto main
>         end

Es geht um die Stelle ohne > :)

Wisst ihr woran es liegt?

Danke!

von TK (Gast)


Lesenswert?

Hallo,
nur mal so nebenbei zum Kommentar in der Zeile:
>> btfss    HAM,7     ; Vergleiche ob Register den Wert 7 hat <<
Das ist nicht der Wert 7, sondern der Wert 128 (Bit 7)!!

Ansonsten müsste die Schleife funktionieren.

und tue Dir selbst noch einen Gefallen und schreibe einfach noch ein
'retfie' nach 'org 0x04' rein und danach erst die main!


Gruß
TK

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.