Fehler beim Abrufen der Geräte-ID – PICkit 3 & PIC16F684-ICD & AC16205

Wie bereits im Titel erwähnt, habe ich eine Frage zu diesem Dev-Stack:

  • MPLAB X-IDE v1.80
  • PICkit 3
  • PIC16F684-ICD ( Datenblatt )
  • AC16205

Es gibt ein Bild davon, wie die Dinge miteinander verbunden sind (ich glaube nicht, dass es ein Problem gibt):

Geben Sie hier die Bildbeschreibung ein

Stromversorgungseinstellungen:Geben Sie hier die Bildbeschreibung ein

Es gibt ein einfaches Programm, das ich zum Testen verwende:

/*
 * File:   main.c
 * Author: Primoz
 * 
 * PIC16F684
 *
 * Simple test program.
 */

#include <xc.h>

// CONFIG
#pragma config MCLRE = OFF      // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to V
#pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF      // Brown Out Detect (BOR disabled)
#pragma config IESO = OFF       // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)

void main()
{
    TRISA = 0b111101;

    PORTA = 0b000010;

    for (;;)
    {
        ;
    }
}

Ich habe das Gerät nur wenige Male erfolgreich programmiert. Meistens bekomme ich diese Ausgabe:

Connecting to MPLAB PICkit 3...
Firmware Suite Version.....01.28.72
Firmware type..............Midrange

Target detected
Failed to get Device ID

Meine Frage ist also, was könnte ein Grund für ein so seltsames Verhalten sein? Wie kann ich es zum Laufen bringen?

Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen ...

Vermutlich versorgen Sie es über den Programmierer; stimmt die Spannung?
Es steht im Datenblatt Wide operating voltage range (2.0V-5.5V), also denke ich, dass 5 V in Ordnung sind, oder?
Sieht gut aus. Vielleicht hast du einen Wackelkontakt?
Ich glaube nicht.. Aber es wäre eine gute Sache, es zu überprüfen.. Werde es tun, aber jetzt nicht, da ich kein Multimeter zur Hand habe.. Werde Sie wissen lassen, was ich herausgefunden habe.. .

Antworten (6)

Ich habe nachgesehen, ob es irgendwelche gelockerten Verbindungen gibt, wie von @pjc50 vorgeschlagen - keine gefunden.

Ich habe sogar einen neuen Header bestellt und zu meiner Überraschung war das Problem immer noch nicht weg.

Nach vielen Versuchen und Irrtümern habe ich herausgefunden, dass es funktioniert, wenn ich Voltage Levelauf 4,875(anstelle von 5V) setze:

Geben Sie hier die Bildbeschreibung ein

Genau das gleiche Problem mit einem 16F883. Hätte nie gedacht, die Spannung zu ändern, thx!

Keine Versprechungen, aber ich habe genau dasselbe Verhalten mehr als hundert Mal persönlich erlebt.

Jeder einzelne von ihnen wurde repariert, indem ich mein Verbindungskabel wegwarf und ein neues verdrahtete.

Das heisst

  • Der Stecker am PICkit3
  • Der physische Anschluss auf der PIC-Seite selbst
  • Die physischen Kabel zwischen diesen beiden Steckern

Ihre derzeitigen Beobachtungen könnten Sie völlig verwirren; wie mich meins immer wieder verwirrte, wenn das hier passierte. Betrachtet man Kabelbrüche, die „manchmal da“ sind, wird das Bild etwas klarer.

Übrigens, wenn...

  • Das Problem trat vor kurzem auf
  • Sie haben nur einen Satz dieser Verbindungsdrähte zur Verfügung
  • Die haben früher einwandfrei funktioniert
  • Sie sehen derzeit "manchmal" Ergebnisse (vielleicht "zufälliger Erfolg")

.. dann wächst mein Verdacht.

Wieder keine Versprechungen, aber das ist mir bei meiner PIC24-Anordnung mit einem ICD-3 und gelegentlich einem PICkit passiert. Was du beschreibst, ist genau das, was ich beobachtet habe.

Ich habe ein ähnliches Problem mit Firmware 01.28.72. Als ich zurück zum 1.12.01 ging, funktionierte es wieder.

Ich hatte das gleiche Problem und bekam Fehlermeldungen wie "Failed to get Device ID". Meine Konfiguration ist das 44-polige Demoboard mit einem PIC16F887, Pickit 3 (Firmware-Version 1.28.18) und MPLAB 8.88. Ich habe den Rat von PrimosK oben befolgt und es war genau das Richtige für das Geld: Reduzierte die Spannung von den standardmäßigen 5,0 V auf 4,875 V und alles funktionierte. Habe aber auch festgestellt, dass MPLAB die Einstellungen nicht behält und beim nächsten Start von MPLAB neu setzen musste. Viel Glück.

Ich hatte das gleiche Problem und arbeitete mit einem Pic16F883 und PicKitt3. Und jetzt ist es behoben, ich versorge die Zielkarte mit einer externen Quelle (5 Vcd) und deaktiviere in den Projektoptionen -> Programmierer die Option "POWER TARGET CIRCUIT FROM PICKKIT3". Ich hoffe, diese Informationen helfen Ihnen.

Ähnliches Problem wurde von mir konfrontiert. Ich habe eine 24FJ128GA308-basierte Steuerplatine mit einem 128 * 64-COD-Display, das angeschlossen ist, und die Platine wird extern mit Strom versorgt. Bei einer Einheit mit gerade hergestelltem (nicht programmiertem Controller) wurde beim Aufrufen der Option „Programmieren“ der Fehler „Programmierung fehlgeschlagen – Dem PICkit 3 fehlt ein Speicherobjekt“ ausgegeben. Ich habe es mit dem Ändern versucht - mit eingeschalteter Steuerplatine von PICKit 3, es hat immer noch nicht funktioniert.Dann habe ich unter der Programmieroption "Hold in Reset" für 2-3 Sekunden verwendet, wieder losgelassen, dann wurde 24F programmiert und die Platine begann zu funktionieren Übrigens, ich habe eine richtige Reset-Schaltung.-Chandrashekhar Joshi