i.MX RT1176 run with 800MHz crash

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX RT1176 run with 800MHz crash

Jump to solution
411 Views
SpeedyGonzalesss
Contributor III

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

SpeedyGonzalesss_0-1711347498289.png

SpeedyGonzalesss_1-1711347522959.png

SpeedyGonzalesss_2-1711347542829.png

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

0 Kudos
1 Solution
363 Views
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @SpeedyGonzalesss,

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:

EdwinHz_0-1711493790418.png

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:
EdwinHz_0-1711497380300.png

 

MIMXRT1170-EVK version 2.14.0:
EdwinHz_1-1711497380302.png

 

MIMXRT1170-EVK version 2.15.0:
EdwinHz_2-1711497380303.png

 

The MIMXRT1170-EVKB version 2.15.0 also contains this workaround:
EdwinHz_3-1711497501340.png

 

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.

View solution in original post

0 Kudos
2 Replies
364 Views
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @SpeedyGonzalesss,

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:

EdwinHz_0-1711493790418.png

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:
EdwinHz_0-1711497380300.png

 

MIMXRT1170-EVK version 2.14.0:
EdwinHz_1-1711497380302.png

 

MIMXRT1170-EVK version 2.15.0:
EdwinHz_2-1711497380303.png

 

The MIMXRT1170-EVKB version 2.15.0 also contains this workaround:
EdwinHz_3-1711497501340.png

 

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.

0 Kudos
347 Views
SpeedyGonzalesss
Contributor III
Thank you for your support!
I tried with new version(SDK 15.0.0) and it worked.
0 Kudos