Después de trabajar un tiempo con los microcontroladores PIC16, quería darme a conocer a los microcontroladores PIC32.
Pero tengo un problema. Si trato de ejecutar un programa simple en el PIC32MX110F016B o en el PIC32MX220F032B siempre obtengo el mismo mensaje de error:
No se pudo programar el dispositivo
Dispositivo y destino seleccionados: la memoria no coincide.
Uso el PIC Kit 3 combinado con MPLAB para programar los PIC y con el PIC16 siempre funcionó bastante bien. El PIC se alimenta del PIC Kit 3 (3.25V) y lo conecté de esta manera:
(PC3 = kit PIC de 3 pines, MC = pin del microcontrolador)
- PC3 MCLR -> MC MCRL
- PC3 VDD -> MC VDD
- PC3 VSS -> MC VSS
- PC3 PGD -> MC PGED1
- PC3 PGC -> MC PGEC1
También conecté una resistencia de 10K de MCLR al pin VDD.
Y creo que la única configuración importante que configuré en el programa también es correcta:
#pragma config ICESEL = ICS_PGx1 // ICE/ICD Comm Channel Select (Communicate on PGEC1/PGED1)
Aquí la salida de la consola completa:
Conectando a MPLAB PICkit 3...
Firmware cargado actualmente en PICkit 3
Versión de la suite de firmware ..... 01.36.10
Tipo de firmware ............. PIC32MXEl programador para potencia objetivo está habilitado - VDD = 3,250000 voltios.
Se encontró el dispositivo de destino PIC32MX110F016B.
Revisión de ID de dispositivo = A1Se programarán las siguientes áreas de memoria:
memoria de programa:
dirección inicial = 0x0, dirección final = 0xfff memoria de configuración de
arranque memoria de configuraciónDispositivo borrado...
Programando...
No se pudo programar el dispositivo
Dispositivo seleccionado y destino: memoria no coincidente.
Los PIC32 tienen un pin vcore/vcap que necesita tener conectado un condensador de esr suficientemente grande y bajo, de lo contrario obtendrá errores extraños como este y no funcionará de manera estable. En la hoja de datos, hay una sección que detalla las conexiones mínimas, incluido el valor mínimo del condensador.