本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发
本文主要记录如何在RT1170上面实现高温降频,首先要说一点就是为什么高温降频.即需要求的来源:
第一,CPU DCDC输出在高温情况下没有办法满足要求。
第二,温度过高会影响CPU的寿命,影响产品的生命周期。
1. 首先查看CPU的时钟树
调整CPU的频率,需要将core clk 切换至其他时钟源,然后在修改对应时钟源,修改且稳定后,在切换至修改频率后的原时钟源。其实对应的内核电压也要调整的。和我们在其它SOC上遇到的DVFS功能本质上是一样的。动态调频高压。如下图所示,这上编写代码依据。
2. SDK api 应用
2.1 引脚配置
NA
2.2 时钟配置
static void kCLOCK_Root_M7_800MHz(void)
{
const clock_arm_pll_config_t armPllConfig_BOARD_BootClockRUN =
{
.postDivider = kCLOCK_PllPostDiv2, /* Post divider, 0 - DIV by 2, 1 - DIV by 4, 2 - DIV by 8, 3 - DIV by 1 */
.loopDivider = 133, /* DIV_SELECT */
};
clock_root_config_t rootCfg = {
0};
CLOCK_InitArmPll(&armPllConfig_BOARD_BootClockRUN);
rootCfg.mux = kCLOCK_M7_ClockRoot_MuxArmPllOut;
rootCfg.div = 1;
CLOCK_SetRootClock(kCLOCK_Root_M7, &rootCfg); /* 24MHz * 133 / 2 / 2 / 1 = 798 MHz */
}
static void kCLOCK_Root_M7_600MHz(void)
{
const clock_arm_pll_config_t armPllConfig_BOARD_BootClockRUN =
{
.postDivider = kCLOCK_PllPostDiv4, /* Post divider, 0 - DIV by 2, 1 - DIV by 4, 2 - DIV by 8, 3 - DIV by 1 */
.loopDivider = 200, /* DIV_SELECT */