TI中文支持网
TI专业的中文技术问题搜集分享网站

28035 HRPWM

我的HRPWM  选择的是单触发中断。

//TZSEL外部触发选择寄存器
EPwm1Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; // for DCDC ocp 使能TZ3作为epwm的单次触发输入
//TZCTL外部触发控制寄存器 TZB:当外部触发事件发生时,定义EPWMxB所采取的动作、
// 00:高组态 01:强制为高电平 10:强制为低电平 11:无动作
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;   // 下溢时重载

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; //PWMA输出低有效

问题1:我想问这个触发中断和下一周断 互相影响嘛? 这个触发中断,什么情况下才会触发呢,触发几次呢?

问题2:触发完成后,EPWMA 置1;和AQ_SET   也是置1,两个有啥区别呢。

配置高精度HRPWM, 有些看不懂,请大神指点一二

Emma Wang:

1.首先,你的外部单触发中断是PWM的错误联防功能模块,而下溢时并没有产生中断,只是设置下溢时重载比较寄存器A的值。

而这个触发中断在TZ3的引脚为低时会触发,因为设置的单触发模式,所以只能触发一次,然后设置清除之后,PWM才能够恢复正常。

2.按照您的设置,发生单触发后,EPWMA应该强制为低电平,也可以设置强制为高电平。但是这个AQ_SET是正常生成PWM信号用的,在计数器等于零时置一,在上升阶段计数器等于CMPA时置零。

您这些代码并没有使能高精度PWM,请问您需要多高频率的PWM。

我的HRPWM  选择的是单触发中断。

//TZSEL外部触发选择寄存器
EPwm1Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; // for DCDC ocp 使能TZ3作为epwm的单次触发输入
//TZCTL外部触发控制寄存器 TZB:当外部触发事件发生时,定义EPWMxB所采取的动作、
// 00:高组态 01:强制为高电平 10:强制为低电平 11:无动作
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;   // 下溢时重载

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; //PWMA输出低有效

问题1:我想问这个触发中断和下一周断 互相影响嘛? 这个触发中断,什么情况下才会触发呢,触发几次呢?

问题2:触发完成后,EPWMA 置1;和AQ_SET   也是置1,两个有啥区别呢。

配置高精度HRPWM, 有些看不懂,请大神指点一二

bamboo wang:

回复 Emma Wang:

我的代码没有贴完,我使用的是220Khz的PWM,是高精度的,只用到了A,没有用到B.。   但是我不知道上下两个管子的死区怎么控制呢。上管是1A ,下管是3A,模拟EPWM?自己做延时 控制死区?

我的HRPWM  选择的是单触发中断。

//TZSEL外部触发选择寄存器
EPwm1Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; // for DCDC ocp 使能TZ3作为epwm的单次触发输入
//TZCTL外部触发控制寄存器 TZB:当外部触发事件发生时,定义EPWMxB所采取的动作、
// 00:高组态 01:强制为高电平 10:强制为低电平 11:无动作
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;   // 下溢时重载

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; //PWMA输出低有效

问题1:我想问这个触发中断和下一周断 互相影响嘛? 这个触发中断,什么情况下才会触发呢,触发几次呢?

问题2:触发完成后,EPWMA 置1;和AQ_SET   也是置1,两个有啥区别呢。

配置高精度HRPWM, 有些看不懂,请大神指点一二

bamboo wang:

回复 Emma Wang:

你说的错误联防功能模块式什么意思?   我之前一直理解为这个是下溢中断和周期中断时一样的。

我的HRPWM  选择的是单触发中断。

//TZSEL外部触发选择寄存器
EPwm1Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; // for DCDC ocp 使能TZ3作为epwm的单次触发输入
//TZCTL外部触发控制寄存器 TZB:当外部触发事件发生时,定义EPWMxB所采取的动作、
// 00:高组态 01:强制为高电平 10:强制为低电平 11:无动作
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;   // 下溢时重载

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; //PWMA输出低有效

问题1:我想问这个触发中断和下一周断 互相影响嘛? 这个触发中断,什么情况下才会触发呢,触发几次呢?

问题2:触发完成后,EPWMA 置1;和AQ_SET   也是置1,两个有啥区别呢。

配置高精度HRPWM, 有些看不懂,请大神指点一二

bamboo wang:

回复 Emma Wang:

你说的错误联防功能模块式什么意思?   我之前一直理解为这个是下溢中断和周期中断时一样的。

我的HRPWM  选择的是单触发中断。

//TZSEL外部触发选择寄存器
EPwm1Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; // for DCDC ocp 使能TZ3作为epwm的单次触发输入
//TZCTL外部触发控制寄存器 TZB:当外部触发事件发生时,定义EPWMxB所采取的动作、
// 00:高组态 01:强制为高电平 10:强制为低电平 11:无动作
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;   // 下溢时重载

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; //PWMA输出低有效

问题1:我想问这个触发中断和下一周断 互相影响嘛? 这个触发中断,什么情况下才会触发呢,触发几次呢?

问题2:触发完成后,EPWMA 置1;和AQ_SET   也是置1,两个有啥区别呢。

配置高精度HRPWM, 有些看不懂,请大神指点一二

Xinxi Tang:

回复 bamboo wang:

就是通过tz信号封锁PWM信号

你说的那什么中断应该是正常的PWM中断吧,是自己设定CTR=0或者TDPRD,或者COMPA、COMPB

赞(0)
未经允许不得转载:TI中文支持网 » 28035 HRPWM
分享到: 更多 (0)