Estoy tratando de usar el PORTE ancho de 4 bits en una MCU PIC18F44K22. Este puerto contiene el pin RE3/MCLR que se puede configurar como un pin de reinicio o como un pin de entrada configurando/borrando el bit MCLRE en CONFIG3H.
No importa qué valor se establezca en el bit MCLRE, si el pin RE3/MCLR se mantiene BAJO, la MCU se niega a ejecutar ninguna instrucción. Configurar el pin RB3/MCLR y la MCU funciona como se esperaba (con un pin de entrada menos).
Esto se ha probado utilizando un programador pickit 2 y un multímetro, alimentando la MCU con el propio programador. Los pines de alimentación de la MCU se desacoplan utilizando condensadores de 1pF y un condensador adicional de 22uF en la entrada de alimentación de la placa.
BOR está deshabilitado y el programa cargado es tan simple como es posible (configure RB3 UP). Probado usando 5V y 3.2V
He leído que ESD ocasionalmente desencadena reinicios, pero en este caso es un valor bajo que mantiene el dispositivo reiniciado .
Solución:
Para que MCLRE tenga algún efecto, el bit LVP debe estar deshabilitado. En gpasmo:
CONFIG MCLRE = INTMCLR
CONFIG LVP = OFF
Si no ha deshabilitado la "Programación ICSP de suministro único" en sus bits de configuración (CONFIG4L.LVP), esto explicaría el comportamiento que está viendo.
La sección 24.9 de la hoja de datos dice "Mientras está en el modo ICSP de bajo voltaje, MCLR siempre está habilitado, independientemente del bit MCLRE, y el pin RE3 ya no se puede usar como una entrada de propósito general".
Esto huele a que la configuración de su bit de configuración en realidad no está entrando en el chip. Algunas posibles razones para esto:
Use la GUI de bits de configuración en MPLAB para ver cómo cree que están configurados los bits de configuración. O incluso mejor, programe la pieza y luego inspeccione los bits de configuración reales en el chip con el depurador para ver cómo están realmente configurados.
Spehro Pefhany
aja
brahans