Estoy usando PIC18F4680 y tengo problemas para ejecutarlo desde una fuente de reloj externa 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 durante un tiempo y comienza de nuevo. El período total del ciclo es de aproximadamente 5 segundos, de los cuales el PIC funciona deja de funcionar temprano en el segundo segundo.
También he notado que, a veces, cuando agrego un condensador suficientemente grande al bus de alimentación de la placa, el PIC funciona bien. El punto interesante es que esto solo sucede si agrego el capacitor mientras el PIC ya está funcionando. Si enciendo la placa de pruebas con el condensador allí o si coloco un condensador que no se ha descargado completamente, el problema continúa.
He leído en algunos sitios que pueden surgir problemas similares a los míos debido al aumento del consumo de energía del PIC a mayor frecuencia y mayor voltaje de operación más bajo. En esos casos, si hay algunas caídas cortas de voltaje 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 capacitores 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 algo de \ $ 10 \ mbox {} \ mu F \ $ condensadores de tantalio con la esperanza de que sean lo suficientemente grandes y tengan una ESR lo suficientemente baja para solucionar el problema. Uno no ayudó y el segundo tampoco ayudó. Así que agregué un condensador de aluminio \ $ 100 \ mbox {} \ mu F \ $ y eso tampoco ayudó. Luego agregué un capacitor de aluminio \ $ 470 \ mbox {} \ mu F \ $ de aluminio sin ningún 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 realizar pruebas, estoy usando Vcc de 5,5 V, que es el voltaje nominal más alto para este microcontrolador. Esto debería dejarme un poco de espacio hasta los 4.2 V, que es el voltaje de operación más bajo a 40 MHz
A continuación, leí que a veces las salidas flotantes pueden causar fallas, por lo que coloco algunos \ $ 10 \ mbox {} k \ Omega \ $ resistencias desplegables en todos los pines no utilizados y eso tampoco ayudó. Después de eso, leí que a veces podría haber problemas si las entradas del oscilador están flotando, así que intenté conectarlas a GND usando algunas resistencias \ $ 10 \ mbox {} M \ Omega \ $ y eso no ayudó.
Debido a la longitud del cable que va desde la salida del oscilador a la entrada del oscilador en el PIC, esperaba problemas, 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, esperaría problemas en el modo HS también, si la distorsión de la señal del oscilador debida a la placa base fuera el problema, pero en el modo HS, el PIC funciona bien.
Normalmente uso los condensadores de 33 pF para los cristales, pero también probé con 15 pF y no pude detectar ningún cambio.
También debo tener en cuenta que este PIC tiene monitor de reloj a prueba de fallas y conmutador de oscilador interno / externo. He intentado habilitarlos a ambos, con la esperanza de 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 desactivado para fines de prueba el temporizador de vigilancia, el restablecimiento de reducción de tensión y el restablecimiento de desbordamiento / desbordamiento de pila. Creo que desactivé 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 está reiniciando, 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 eléctrica . El programa que estoy usando informa de unos 300 mV pico a pico, pero no sé cuánto confiar 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 propia placa: (clic derecho - > ver imagen para 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 propia placa y el ruido captado por la tarjeta de sonido es mucho menor ahora (alrededor de 50 mV pico a pico), pero no influyó en el problema principal.