嵌入式实操----基于RT1170 使能展频功能(二十七)

本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发

车载电子设备对EMC的要求比较高,本文主要讲述在RT1170上面,使能spread spectrum功有,通过对实钟进行展频配置,以得到良好的EMC效果。之前在RT1052上面有试过,但是使用的是周立功的aworks系统,本文在原生的SDK上面开启该功能。
参考文档:EMC design consideration on i.MXRT Series.pdf

1. 原理



本质上Spread spectrum 功能,通上如上两张图的比较,可以看出其本质就是降低某个频点上面的能量,以达到优化EMC的效果。
从RT1170的手册上面可以得出计算的公式:

在官方的手册上提供了参考值数值:

2. 软件设置

在clock_config.c当中做如下修改,开启12M展频功能。

$ git diff boards/evkmimxrt1170/display_examples/fbdev_freertos/cm7/clock_config.c
diff --git a/boards/evkmimxrt1170/display_examples/fbdev_freertos/cm7/clock_config.c b/boards/evkmimxrt1170/display_examples/fbdev_freertos/cm7/clock_config.c
index 2af4840e..57c4a4fc 100644
--- a/boards/evkmimxrt1170/display_examples/fbdev_freertos/cm7/clock_config.c
+++ b/boards/evkmimxrt1170/display_examples/fbdev_freertos/cm7/clock_config.c
@@ -258,13 +258,26 @@ const clock_arm_pll_config_t armPllConfig_BOARD_BootClockRUN =
         .loopDivider = 166,                       /* PLL Loop divider, Fout = Fin * ( loopDivider / ( 2 * postDivider ) ) */
     };

+clock_pll_ss_config_t sysPLL2_ss_config =
+{
+    .stop = 0x240,
+    .step = 0x6,
+};
+
 const clock_sys_pll2_config_t sysPll2Config_BOARD_BootClockRUN =
     {
-        .mfd = 268435455,                         /* Denominator of spread spectrum */
-        .ss = NULL,                               /* Spread spectrum parameter */
-        .ssEnable = false,                        /* Enable spread spectrum or not */
+        .mfd = 0x960,                         /* Denominator of spread spectrum */
+        .ss = &sysPLL2_ss_config,                               /* Spread spectrum parameter */
+        .ssEnable = true,                        /* Enable spread spectrum or not */
     };

+//const clock_sys_pll2_config_t sysPll2Config_BOARD_BootClockRUN =
+//    {
+//        .mfd = 268435455,                         /* Denominator of spread spectrum */
+//        .ss = NULL,                               /* Spread spectrum parameter */
+//        .ssEnable = false,                        /* Enable spread spectrum or not */
+//    };

3. 验证

不开展频的效果:
在这里插入图片描述

开展频的效果:
在这里插入图片描述

4. 总结

1.可以通过官方的配置工具生成相关的代码:

2.说一下 12MHz 和 60KHz 这两个数值。
12MHz 是扩频信号带宽,60KHz是调制信号带宽,两者需满足 12M/60K = 200 > 100 的关系。

希望对各位读者帮助。
欢迎订阅
嵌入式实操”一个分享开发实践经验的地方。
文章会同时发布到我的 CSDN主页今日头条号 平台上。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式实操

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

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

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

打赏作者

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

抵扣说明:

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

余额充值