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?