在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
帮忙看看
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
Terry Deng:
回复 bad:
看你的波形,好像EPWMA和B是设置为死区互补模式。或者你把整个PWM所有寄存器设置发上来检查
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
回复 Terry Deng:
这是HVPSFB-DPL-ISR.asm中的,我没有改动,SR2模式
SR1_2:
…..
MOVW DP,#_EPwm2Regs.TZCTL OR @_EPwm2Regs.TZCLR, #0x4 MOV @_EPwm2Regs.TZCTL, #0x0FFE
MOV @_EPwm2Regs.AQCTLA, #0x0125 MOV @_EPwm2Regs.AQCTLB, #0x0214
; LB Aft1_0 Aft1_0: .ref _dbAtoP_leg MOVW DP, #(_dbAtoP_leg) MOV AH, @(_dbAtoP_leg) .ref _dbPtoA_leg MOVW DP, #(_dbPtoA_leg) MOV AL, @(_dbPtoA_leg)
MOVW DP,#_EPwm2Regs.CMPB MOV @_EPwm2Regs.CMPB, AH ;dbAtoP_leg MOV @_EPwm2Regs.CMPA.half.CMPA, #(PWM_PRD+10) ADDB AL, #3
MOV @_EPwm2Regs.DCFWINDOW, AL
SR2_2:
MOVW DP,#_EPwm2Regs.TZCTL OR @_EPwm2Regs.TZCLR, #0x4 MOV @_EPwm2Regs.TZCTL, #0x0FFB
MOV @_EPwm2Regs.AQCTLB, #0x0215 MOV @_EPwm2Regs.AQCTLA, #0x0124
; LB Aft2_0
Aft2_0: .ref _dbAtoP_leg MOVW DP, #(_dbAtoP_leg) MOV AH, @(_dbAtoP_leg) .ref _dbPtoA_leg MOVW DP, #(_dbPtoA_leg) MOV AL, @(_dbPtoA_leg)
MOVW DP,#_EPwm2Regs.CMPB MOV @_EPwm2Regs.CMPA.half.CMPA, AH ; dbAtoP_leg MOV @_EPwm2Regs.CMPB, #(PWM_PRD+10)
ADDB AL, #3
MOV @_EPwm2Regs.DCFWINDOW, AL
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
回复 Terry Deng:
Epwm1 是死区互补模式,但是Epwm2不是这个方式
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
回复 bad:
MOV @_EPwm2Regs.DCFWINDOW, AL
这个事件滤波窗口,谁能解释详细一点啊?
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
回复 bad:
程序里面对epwm2 的CTR=PRD的时候都是clear
pwm输出来的,却不是的,why? 我用的是28035
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
回复 bad:
怎么点了推荐答案了,不好意思点错了。
谁理解的,帮忙看看
在dpl-isr中:
Up_Cnt:
EPwm2.AQCTLB=0x0214
(ZRO=Nothing;PRD=Clear;CAU=Clear;CBU=Set;)
EPwm2.AQCTLA=0x0125
(ZRO=Clear;PRD=Clear;CAU=Set;CBU=Clear;)
EPwm2.TZCTL=0x0FFE
TZCTL.TZA =Clear
TZCTL.TZB =Nothing
在up_cnt和Dwn_cnt中在CTR=PRD的时候都是clear,那为什么没有clear呢?而是do nothing呢
bad:
回复 bad:
关于PCMC中的HVPSFB-DPL-ISR.asm还是有疑问啊:
1.为什么没有在ctr=PRD的时候clear?在配置的时候都是配成clear
2.在设置dmax=0(Iref=0)的时候,对角开关管重叠了,这个dmax不是一点用都没有?或者说这个例程不支持这种状态即iref=0时
3.哪个高手能解释一下整个就更好了