Hello,
I am using i.MX RT1176 and MCUXpresso IDE. By default, there are two option for core clock :
Option 1: M7 1 GHz
Option 2: M7 800 Mhz
By default, the option 1(1 GHz / BootClock_Run) is selected and there is no problem and mcu run. If I want to run the processor at 800 mhz and call the BootClockRUN_800M function for clock init, the processor crashes.
There is a title on the subject: https://community.nxp.com/t5/i-MX-Processors/MIMXRT1170-EVK-run-with-800MHz-crash/td-p/1716130
But this does not seem to be a safe method. What exactly is the source of the problem? What should I do for a solution?
Thanks,
Speedy
Solved! Go to Solution.
The issue is caused by the internal ARM PLL which is unable to generate a high enough clock signal on some batches of the RT1170. As described on the post you refer to, the BOARD_BootClockRUN_800M sets the ARM PLL to 2.4GHz, and then sets its divider to 3, and this way it achieves an 800MHz signal. However, this 2.4GHz is basically the absolute maximum operating frequency for this PLL, as the datasheet rates its maximum clock output range as 2496 MHz:
The workaround is completely safe. So much so, that SDK Version 2.15.000 already implements this workaround to ensure an 800MHz system frequency without possible crashes. Here is a comparison of the "armPllConfig_BOARD_BootClockRUN_800M" configuration structure on the hello_world demo code of the last three SDKs:
MIMXRT1170-EVK version 2.13.1:
MIMXRT1170-EVK version 2.14.0:
MIMXRT1170-EVK version 2.15.0:
The MIMXRT1170-EVKB version 2.15.0 also contains this workaround:
I presume you are not using the latest version of the SDK, so please update and let me know if you have any further issues about this topic!
BR,
Edwin.
The issue is caused by the internal ARM PLL which is unable to generate a high enough clock signal on some batches of the RT1170. As described on the post you refer to, the BOARD_BootClockRUN_800M sets the ARM PLL to 2.4GHz, and then sets its divider to 3, and this way it achieves an 800MHz signal. However, this 2.4GHz is basically the absolute maximum operating frequency for this PLL, as the datasheet rates its maximum clock output range as 2496 MHz:
The workaround is completely safe. So much so, that SDK Version 2.15.000 already implements this workaround to ensure an 800MHz system frequency without possible crashes. Here is a comparison of the "armPllConfig_BOARD_BootClockRUN_800M" configuration structure on the hello_world demo code of the last three SDKs:
MIMXRT1170-EVK version 2.13.1:
MIMXRT1170-EVK version 2.14.0:
MIMXRT1170-EVK version 2.15.0:
The MIMXRT1170-EVKB version 2.15.0 also contains this workaround:
I presume you are not using the latest version of the SDK, so please update and let me know if you have any further issues about this topic!
BR,
Edwin.