Estoy usando PIC18F4680 y tengo problemas para ejecutarlo desde una fuente de reloj externo de 40 MHz o un cristal de 10 MHz en modo HSPLL. El uso de cristal de 10 MHz en modo HS parece estar bien y el cristal de 5 MHz en modo HSPLL también funciona bien.
Lo que sucede es que el PIC se inicia, funciona durante unos segundos y luego se apaga por un tiempo y comienza de nuevo. El período total del ciclo es de alrededor de 5 segundos, de los cuales el PIC funciona deja de funcionar a principios del segundo segundo.
También he notado que a veces cuando agrego un condensador descargado lo suficientemente grande al bus de alimentación de la placa de pruebas, el PIC funcionará bien. El punto interesante es que esto solo sucede si agrego el condensador mientras el PIC ya está funcionando. Si enciendo la placa con el condensador allí o coloco un condensador que no se ha descargado por completo, el problema persiste.
He leído en algunos sitios que pueden ocurrir problemas similares a los míos debido al mayor consumo de energía del PIC en frecuencias más altas y el voltaje de operación más bajo. En esos casos, si hay algunas caídas de voltaje cortas en la fuente de alimentación, es más probable que alcancen el voltaje de operación más bajo del PIC en esa frecuencia, por lo que es una buena idea tener condensadores adicionales en el tablero para resolver ese problema. Como bajo carga completa a 40 MHz, todo el circuito usa alrededor de 64 mA, mi primera idea fue poner unos condensadores de tantalio de con la esperanza de que fueran lo suficientemente grandes y que tuvieran una ESR lo suficientemente baja como para solucionar el problema . Uno no ayudó y el segundo tampoco ayudó. Así que agregué un condensador de aluminio de y eso tampoco ayudó.100 μ F 470 μ F condensador de aluminio sin efecto. Al final, agregué un condensador electrolítico de aluminio de 1 mF y luego, por primera vez, el circuito funcionó bien hasta que se apagó y se encendió. También debo tener en cuenta que para fines de prueba estoy usando Vcc de 5.5 V, que es el voltaje nominal más alto para este microcontrolador. Esto debería dejarme espacio hasta los 4.2 V, que es el voltaje de operación más bajo a 40 MHz
A continuación, he leído que a veces las salidas flotantes pueden causar fallas, por lo que puse algunas resistencias desplegables en todos los pines no utilizados y eso tampoco ayudó. Después de eso, he leído que a veces podría haber problemas si las entradas del oscilador están flotando, así que intenté conectarlas a GND usando algunas resistencias y eso no ayudó.10 M Ω
Debido a la longitud del cable que va desde la salida del oscilador hasta la entrada del oscilador en el PIC, esperaba problemas con él, pero no esperaba problemas con el cristal de 10 MHz que está muy cerca de los pines del oscilador en el PIC. También con el cristal, también esperaría problemas en el modo HS, si la distorsión de la señal del oscilador debido a la placa de prueba era el problema, pero en el modo HS, el PIC funciona bien.
Normalmente uso condensadores de 33 pF para los cristales, pero también lo intenté con 15 pF y no pude detectar ningún cambio.
También debo señalar que este PIC tiene un monitor de reloj a prueba de fallas y un cambio de oscilador interno / externo. He intentado habilitarlos a ambos, esperando que al menos confirmen que el problema está en el oscilador, pero no ayudan con el problema. No hay diferencia si están encendidos o apagados.
También he deshabilitado para fines de prueba el temporizador de vigilancia, el restablecimiento de caída y el restablecimiento de desbordamiento / desbordamiento de pila. Creo que apagué todas las fuentes de reinicio para este chip. Además, el programa está en un bucle infinito, por lo que no está terminando.
El PCF8583 no tiene ningún problema y continúa funcionando correctamente incluso cuando el PIC se reinicia, pero por otro lado tiene un voltaje mínimo mucho más bajo.
Desafortunadamente, no tengo un osciloscopio, pero hice algunas pruebas con una tarjeta de sonido (frecuencia de muestreo de 96 kHz) y noté que cuando el RTC está encendido, hay un ruido de 25 Hz en la línea de alimentación. El programa que estoy utilizando informa unos 300 mV pico a pico, pero no sé cuánto confiar en él y no sé si eso sería suficiente para causar algún problema para el PIC. Cuando todo está apagado, el ruido es de alrededor de 100 mV pico a pico, por lo que debería estar bien.
En caso de que ayude, aquí está la imagen de la placa de pruebas en sí: (clic derecho-> ver imagen a tamaño completo)
Entonces, ¿alguien tiene alguna idea de lo que está pasando aquí?
Al final, podría ejecutar el PIC a 20 MHz, pero si necesito más potencia de procesamiento, me gustaría poder ejecutarlo a 40 MHz.
ACTUALIZAR
He colocado otro regulador en la placa de pruebas y el ruido recogido por la tarjeta de sonido es mucho más bajo ahora (alrededor de 50 mV pico a pico), pero no influyó en el problema principal.