嵌入式实操----基于RT1170 支持DVFS(二十八)

本文详细记录了使用NXP MCUXpresso SDK在RT1170上进行BSP开发,实现高温降频(DVFS)的过程。通过查看CPU时钟树,理解频率切换原理,并应用SDK API进行时钟配置和验证测试,以确保在高温环境下保护CPU并延长其寿命。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要是通过迁移的思维,记录本人初次使用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 */
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式实操

希望博文有助于您,您不必加班。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值