一、用TZ模块做峰值电流控制

1、comp初始化

       首先初始化comp,TMS320F280049有两个comp分别为compH与compL。具体配置流程如图所示。大致为comp口同向输入端接电感电流,反向输入端接斜坡发生器的初始值。由于本人很少在线,若需要完整参考代码或者详细问题加V wuhengdandan:

初始化cmpss代码如下,该文章仅分享峰值电流控制中DSP的编程逻辑,由于本人很少在线,若需要完整参考代码或者详细问题加V wuhengdandan:

void initCMPSS(void)
{
    // 使能CMPSS并设置负输入为DAC
    CMPSS_enableModule(CMPSS1_BASE);
    CMPSS_configHighComparator(CMPSS1_BASE, CMPSS_INSRC_DAC);

    // 使用VDDA作为DAC的参考值
    CMPSS_configDAC(CMPSS1_BASE, CMPSS_DACREF_VDDA | CMPSS_DACVAL_SYSCLK |
                    CMPSS_DACSRC_SHDW);
    CMPSS_setDACValueHigh(CMPSS1_BASE, 2048);

    // 异步比较器输出
    CMPSS_configOutputsHigh(CMPSS1_BASE, CMPSS_TRIP_ASYNC_COMP |
                            CMPSS_TRIPOUT_ASYNC_COMP);

    // 设置输出X-Bar
    XBAR_setOutputMuxConfig(XBAR_OUTPUT3, XBAR_OUT_MUX00_CMPSS1_CTRIPOUTH);
    XBAR_enableOutputMux(XBAR_OUTPUT3, XBAR_MUX00);
}

2、PWM初始化

        大致流程为通过epwmX-BAR,输入到数字比较模块(DC),再通过TZ模块实现EPWM的强制拉低与置高从而实现峰值电流控制。

该文章仅分享峰值电流控制中DSP的编程逻辑,由于本人很少在线,若需要完整参考代码或者详细问题加Vwuhengdandan

二、用TMS320F280049内部的SR触发器做峰值电流控制

1、配置cmpss

       芯片内部逻辑如下:简言之就是电压差通过pi然后将pi输出的值赋值给斜坡,然后通过DAC模块将数字量变为模拟量,与IO输入的电感电流作比较。比较的值输出给SR触发器的S端。pwm的隐患窗口模块提供时钟。

2.配置gpio

3.配置input-xbar与output-xbar

注意:这种方法输出的PWM波幅值只有25个mv左右是不能用来当PWM的

补充:两个pwm可以公用一个comp,比pwm1与pwm2共用一个comp1

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐