Hello all,
We are developing a system using the RT1051 microcontroller. This system has external SDRAM and eMMC memory. To reduce power consumption we're changing the CPU frequency between 4 and 528MHz (we have a few steps 4, 12, 24, 66, 132, 264, 528MHz) and we enable/disable PLL2 and PLL3.
Sadly we have random resets, but resets are very rare like once per a few days. The reason code for the resets is SRC_SRSR_IPP_RESET_B_SHIFT. After an investigation, we suspect that the switching source and clock speed of the SEMC can reset the system.
Run sequence:
- run our bootloader and init the SDRAM, SEMC_ROOT_CLK = 163,86 MHz from PLL2_PFD2
- the bootloader loads the main application image to the SDRAM
- run the main application
- If the CPU frequency is higher than 24 MHz the system uses external OSC and the SEMC uses PLL2_PDF2 (pic 1). When the CPU is 24 MHz or less then disable PLLs and switch to the internal OSC (reduce power). So in this case the SEMC uses PERIPH_CLK as the source (pic 2).
We tried to find any information in examples from NXP that switches source and clock for SEMC when the application is running but unsuccessfully.
Can we switch the source and clock speed of SEMC when the application is running?