今天分享1.TMS320F280049/dsp28035通过Cmpss模块与pwm的TZ、DC模块做峰值电流控制。2.用芯片内部的SR触发器做峰值电流控制
TI TMS320F280049通过Cmpss模块与pwm的TZ、DC模块做峰值电流控制。
一、用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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)