本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发
车载电子设备对EMC的要求比较高,本文主要讲述在RT1052上面,使能spread spectrum功能,通过对实钟使能展频配置,以得到良好的EMC效果。
参考文档:EMC design consideration on i.MXRT Series.pdf
1. 原理
本质上Spread spectrum 功能,通上如上两张图的比较,可以看出其本质就是降低某个频点上面的能量,以达到优化EMC的效果。
2. 软件设置
通过查找寄存器手册,在aw_bsp_system.c当中增加如下代码
void SystemInit()
{
// 设置中断向量表
writel((uint32_t)&g_pfnVectors,(volatile uint32_t *)0xE000ED08);
pmu_init();
dcdc_init();
xtal_osc24M_init();
// 从加载域拷贝到执行域
if(RELOAD_CODE_LENGTH)
{
memcpy((void *)RELODE_START_ADDR,
(void *)RELODE_ORIGIN_ADDR,
(size_t)RELOAD_CODE_LENGTH);
}
aw_arm_barrier_dsb();
//由于不同的启动方式导致pll3时钟的配置产生差异
//所以这里需要重新配置pll3的时钟
reconfig_pll3_clock();
// Spread spectrun
*(uint32_t *)(0x400d8040) = 0x04808006;
*(uint32_t *)(0x400d8060) = 0x00000960;
}
3. 总结
RT1052 展频(spread spectrum)功能是第一次接触到通过软件设置,来提高EMC的性能。