Me gustaría compartir con ustedes un comportamiento que estoy observando en un circuito y no consigo entender.
He diseñado una PCB basada en un PIC12F1822 que funciona como botón de encendido/apagado y controla la temperatura de una Raspberry Pi.
Todo funciona correctamente hasta que en un momento indeterminado, el PIC queda como congelado, sigue manteniendo las salidas tal y como quedaron en el último estado de funcionamiento correcto, pero ya no responde a nada. Es necesario resetearlo para que vuelva a funcionar. Este momento donde se queda congelado es totalmente aleatorio, puede ser en 30 segundos como en 10 minutos, y no encuentro el problema que ocasiona este extraño comportamiento.
He revisado la alimentación del PIC con un osciloscopio, y he visto que cuando hay un pico de consumo repentino de la Raspberry, la tensión baja de 5V a unos 3 o 4V y se recupera en menos de 5ms, pero eso era suficiente para desestabilizar el PIC. He minimizado esto con un condensador de filtro en su alimentación, pero aun así, pasado un tiempo indeterminado el pic se queda congelado. He reescrito el código por si había algún error en la programación (ya que no soy demasiado entendido en este ámbito), he probado a usar PICs nuevos, le he añadido un condensador de 100nF entre los pines del ventilador, he desactivado el reseteo por bajo voltaje y por overflow de la memoria, pero sigue ocurriendo lo mismo.
Lo alimento con un cargador de móviles Huawei de 5V 2A, y he probado con otras fuentes conmutadas por si era cuestión de algún ruido eléctrico o interferencia.
Les agradecería muchísimo me aportasen alguna idea a mayores de lo que puede estar sucediendo.
Les dejo adjunto el esquema y los códigos que he programado en mikroC. El 1 es el inicial, y el 2 es un código programado de peor manera para probar que el error no surgía de algún bucle:
El PIC12F1822 utiliza un reloj interno de 8MHz, tiene el resto de opciones desactivadas, como el MCLR, Watchdog, Power-Up Timer Enable, Brown Out reset enable... etc
Muchas gracias de antemano
DavidMJ
He diseñado una PCB basada en un PIC12F1822 que funciona como botón de encendido/apagado y controla la temperatura de una Raspberry Pi.
Todo funciona correctamente hasta que en un momento indeterminado, el PIC queda como congelado, sigue manteniendo las salidas tal y como quedaron en el último estado de funcionamiento correcto, pero ya no responde a nada. Es necesario resetearlo para que vuelva a funcionar. Este momento donde se queda congelado es totalmente aleatorio, puede ser en 30 segundos como en 10 minutos, y no encuentro el problema que ocasiona este extraño comportamiento.
He revisado la alimentación del PIC con un osciloscopio, y he visto que cuando hay un pico de consumo repentino de la Raspberry, la tensión baja de 5V a unos 3 o 4V y se recupera en menos de 5ms, pero eso era suficiente para desestabilizar el PIC. He minimizado esto con un condensador de filtro en su alimentación, pero aun así, pasado un tiempo indeterminado el pic se queda congelado. He reescrito el código por si había algún error en la programación (ya que no soy demasiado entendido en este ámbito), he probado a usar PICs nuevos, le he añadido un condensador de 100nF entre los pines del ventilador, he desactivado el reseteo por bajo voltaje y por overflow de la memoria, pero sigue ocurriendo lo mismo.
Lo alimento con un cargador de móviles Huawei de 5V 2A, y he probado con otras fuentes conmutadas por si era cuestión de algún ruido eléctrico o interferencia.
Les agradecería muchísimo me aportasen alguna idea a mayores de lo que puede estar sucediendo.
Les dejo adjunto el esquema y los códigos que he programado en mikroC. El 1 es el inicial, y el 2 es un código programado de peor manera para probar que el error no surgía de algún bucle:
El PIC12F1822 utiliza un reloj interno de 8MHz, tiene el resto de opciones desactivadas, como el MCLR, Watchdog, Power-Up Timer Enable, Brown Out reset enable... etc
Muchas gracias de antemano
DavidMJ
Adjuntos
Última edición: