No estoy familiarizado con los dispositivos PIC32 y la biblioteca provista por el microchip, pero por lo que leí en guía de la biblioteca de periféricos la llamada a SYSTEMConfigPerformance(SYSTEM_FREQUENCY);
no establece los relojes reales a 72MHz, sino que simplemente selecciona todas las demás funciones importantes para brindar un rendimiento máximo de 72MHz (por ejemplo, estados de espera, cachés, divisor previo del reloj periférico ).
Entonces, en su código, la MCU se ejecutará con los ajustes de restablecimiento predeterminados que son (si entiendo correctamente) el reloj FRC interno de 8MHz con un divisor de 2, por lo tanto, de 4MHz. Podría intentar verificar esto si define SYSTEM_FREQUENCY
a 4000000L
y vea si obtiene un retraso de 1s. (actualmente debería ser de 18 segundos en lugar de 1)
Si no me equivoco y realmente quiere que su dispositivo funcione a 72MHz, primero debe configurar sus osciladores:
OSCConfig(OSC_FRC_PLL, OSC_PLL_MULT_18, OSC_PLL_POST_1, OSC_FRC_DIV_2);
Tenga en cuenta que la frecuencia de entrada de PLL no debe exceda de 5 MHz (si Lo entendí bien) así que usarás la división FRC de 8MHz que por 2 ( OSC_FRC_DIV_2
), la introducirás en el PLL ( OSC_FRC_PLL
) y la multiplicarás por 18 ( OSC_PLL_MULT_18
) sin divisor posterior ( OSC_PLL_POST_1
). Con un resultado de 72MHz +/- 2% a 25 ° C (ya que la FRC se calibra de esa manera).
Como realmente no estoy familiarizado, por favor revise esas cosas y no me haga responsable si mata su chip, la primera sugerencia (definir la frecuencia del sistema a un nivel más bajo) debería ser segura.