基于RT1052 Aworks EMC优化 (十六)

本文主要是通过迁移的思维,记录本人初次使用周立功的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的性能。

原文地址:https://www.cnblogs.com/lianghong881018/p/15169482.html