La primera vez que uso un PIC12F (he usado PIC16, PIC18, DSPIC24F, DSPIC30F y DSPIC33F en el pasado).
Hice una pcb muy simple (vea sch a continuación), pero tengo problemas para programarlo con un ICD3. No lo sabía, pero estos necesitan un encabezado especial para la depuración con ICD3 (no tengo), pero por lo que entiendo debería ser posible programarlo sin él (¿quizás no?).
Cuando intento depurar, le digo a MPLAB que el encabezado está allí (pero no lo está), detecta la ID de dispositivo correcta (1360), pero se queja de que no es lo que se esperaba (porque espera el encabezado). Pero el punto es que PODRÍA LEER la ID del dispositivo.
Pero, al seleccionar el ICD3 como programador (a diferencia de Debugger), lee 0 como ID de dispositivo, por lo que no puede continuar.
¿Alguna idea sobre por qué no está leyendo la identificación del dispositivo cuando está en el modo de programación?
Por cierto, no uso el conector RJ11 original porque es demasiado grande, pero he usado con éxito este Molex más pequeño en decenas de diferentes PCB personalizados con otros microcontroladores de Microchip.
ACTUALIZACIÓN:
El hecho de no poder leer la ID del dispositivo sigue siendo un misterio, pero resulta que puede ignorarse y el dispositivo se programará correctamente. El hecho de que se pueda verificar el programa y de que lea el ID del dispositivo con ICD3 como depurador me hace dudar de la hipótesis de integridad de la señal. Probé la resistencia de 100 ohmios muy cerca del pin ICSPDAT / PGD del chip, y también una pequeña tapa justo después (bueno, solo una sonda de alcance), sin cambios en los resultados.
Para resolver realmente esto, tendré que capturar el intercambio PGD-PGC-VPP y analizarlo. Si lo hago, publicaré los resultados aquí.