Error al obtener la ID del dispositivo - PICkit 3 & PIC16F684-ICD & AC16205

7

Como ya se mencionó en el título, tengo una pregunta sobre esta pila de desarrolladores:

Hay una imagen de cómo están conectadas las cosas (no creo que haya un problema):

Configuracióndealimentación:

Hay un programa simple que estoy usando para las pruebas:

/*
 * 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 (;;)
    {
        ;
    }
}

Programé exitosamente el dispositivo solo unas pocas veces. La mayoría de las veces obtengo esta salida:

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

Target detected
Failed to get Device ID

Entonces, mi pregunta es ¿cuál podría ser la razón de un comportamiento tan extraño? ¿Cómo puedo hacer que funcione?

Si necesita información adicional, hágamelo saber ...

    
pregunta PrimosK

6 respuestas

5

Verifiqué si hay conexiones sueltas como sugerido por @ pjc50 - no se encontró ninguna.

Incluso pedí un nuevo encabezado y, para mi sorpresa, el problema aún no había desaparecido.

Después de muchas pruebas y errores, descubrí que funciona si configuro Voltage Level en 4,875 (en lugar de 5V ):

    
respondido por el PrimosK
3

No hay promesas, pero personalmente he experimentado ese mismo comportamiento más de cien veces.

Todos y cada uno de ellos se arreglaron tirando el cable de conexión y conectando uno nuevo.

Esto significa

  • El enchufe en el PICkit3
  • El conector físico en el lado PIC en sí mismo
  • Los cables físicos entre esos dos enchufes

Tus observaciones actuales podrían confundirte totalmente; como el mío me confundió repetidamente cuando esto estaba sucediendo aquí. Cuando consideras que los cables rotos están "a veces allí", la imagen se vuelve un poco más clara.

Por cierto, si ...

  • El problema comenzó recientemente
  • Solo tiene un conjunto de estos cables de conexión dispuestos para su uso
  • Solían funcionar perfectamente
  • Actualmente estás viendo resultados "a veces" (quizás, "éxito aleatorio")

.. entonces mi sospecha aumenta.

Nuevamente, no hay promesas, pero esto es lo que me sucedió en mi acuerdo PIC24 con un ICD-3 y ocasionalmente un PICkit. Lo que estás describiendo es exactamente lo que observé.

    
respondido por el User.1
2

Tengo un problema similar con el firmware 01.28.72. Cuando volví a la 1.12.01, funcionó de nuevo.

    
respondido por el Chris
2

Tuve el mismo problema, obteniendo mensajes de error como "Error al obtener la ID del dispositivo". Mi configuración es la placa de demostración de 44 pines con un PIC16F887, Pickit 3 (versión de firmware 1.28.18) y MPLAB 8.88. Seguí el consejo de PrimosK, arriba, y estaba justo en el dinero: reduje el voltaje de 5.0V a 4.875V por defecto y todo funcionó. Pero también notó que MPLAB no mantiene la configuración y tuvo que establecerla de nuevo la próxima vez que inicié MPLAB. Buena suerte.

    
respondido por el user39113
1

Tuve el mismo problema, trabajar con un Pic16F883 y PicKitt3. Y ahora está arreglado, enciendo la tarjeta de destino con una fuente externa (5Vcd) y en las opciones de Proyecto - > Programador, desactive la casilla de verificación "POWER TARGET CIRCUIT FROM PICKKIT3", espero que esta información le ayude.

    
respondido por el Omar Diaz
0

Mi problema fue similar. Tengo una placa controladora basada en 24FJ128GA308 con una pantalla COD de 128 * 64 interconectada y la placa se enciende externamente. Para una unidad con solo fabricado (controlador no programado), cuando se invocaba la opción 'Programa', daba error porque "Falló la programación: al kit de tarjeta 3 le falta un objeto de memoria '. Intenté cambiar con la placa del Controlador activada desde PICKit 3, todavía no funcionó. Luego, bajo la opción Programador, usé 'Mantener en reinicio' durante 2-3 segundos, lo solté de nuevo, luego 24F se programó y la placa comenzó a funcionar Por cierto, tengo un circuito de restablecimiento a la derecha. -Chandrashekhar Joshi

    
respondido por el Chandrashekhar S. Joshi

Lea otras preguntas en las etiquetas