我的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