PICkit3 MCLR a Vdd Pull-Up Resistor

0

Lo anticiparé diciendo que soy una persona de software cuya educación (desafortunadamente) ni siquiera se refirió a la mayoría de los elementos básicos de hardware o circuitos.

Estoy intentando programar un microchip PIC16f1709 con un PICkit3 a través de MPLab X v2.3. El PIC es parte de una tabla más grande, pero actualmente está en blanco. La placa en cuestión es un producto fabricado, no una placa de desarrollo, pero tiene patillas expuestas a las que he conectado el PICKit, y estoy seguro de que las patillas coinciden. Estoy alimentando la placa con su propia fuente de alimentación. La placa no tiene una resistencia de activación de Vpp / MCLR a Vdd. Según PICkit User Guide , esa resistencia es" recomendada "(consulte el párrafo 2.4.2).

Cuando intento programar el controlador, MPLab me advierte primero que la ID de destino se lee como 0x00 en lugar del valor esperado, y luego, después de la programación, informa que la instrucción en la dirección 0x00 es 0x00 en lugar de la primera instrucción esperada. Entiendo que esto significa que el PICkit no puede comunicarse con el controlador, porque está leyendo todo como 0x00 . He leído que un PIC recién borrado establece todos los bytes en uno, por lo que incluso si mi código no se programó, no debería estar leyendo ceros.

Target voltage detected
Target Device ID (0x0) does not match expected Device ID (0x3054).

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x3f

Device Erased...

Programming...
program memory
Address: 0 Expected Value: 3180 Received Value: 0
Failed to program device

Entonces, mi pregunta es esta: ¿se requiere la resistencia de pull-up (como he leído de fuentes menos "oficiales")? ¿El hecho de que falte está causando que el programador no pueda comunicarse con el controlador?

    
pregunta Woodrow Barlow

1 respuesta

2

No se requiere la resistencia pullup , sin embargo, sin ella, a menos que haya otra cosa para realizar su función, el chip no se ejecutará en funcionamiento normal.

El propósito de la resistencia es asegurar que MCLR se mantenga alto para que el chip no esté en un estado RESET, lo que le permite ejecutarse. Si no tiene esa resistencia, necesitaría algún otro sistema para asegurarse de que esté alto, tal vez un chip de reinicio / administración de energía.

El hecho de que no pueda programar no estará relacionado con esa resistencia, en lugar de eso, debe buscar otros problemas de conexión o circuito, como la falta de condensadores de desacoplamiento, no todas las clavijas de alimentación conectadas u otros componentes en Los pines de programación interfieren con la comunicación.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas