利用定时器T1产生PWM,预分频x1,中断频率20K,程序配置如下:
EvaRegs.T1PR=7500;/pwm频率10k
EvaRegs.CMPR1=1000;
EvaRegs.CMPR2=1000;
EvaRegs.CMPR3=1000;
EvaRegs.T1CON.all=0x0840;/连续增减计数
EvaRegs.DBTCON.all=0x0cf4;/死区2.56us
EvaRegs.COMCONA.all=0xA200;
ACTRA寄存器配置为pwm1~6脚均为有效高;
按照上述程序,期望pwm1~6输出的占空比为0.6,但是用示波器观察的时候发现pwm1,3,5脚输出占空比为0.572,而pwm2,4,6脚输出的占空比为0.624.
更改CMPR1,2,3的值,发现pwm2,4,6引脚的占空比始终要比pwm1,3,5脚的占空比大0.05左右,请问这是什么原因引起的?是不是我哪个寄存器没配置好?
麻烦看到的专家回复一下,谢谢。
alice wu:
不好意思,贴错了,CMPR1~3设置是3000,不是1000。给定cmpr=3000,期望输出占空比为0.6.
EvaRegs.CMPR1=3000;
EvaRegs.CMPR2=3000;
EvaRegs.CMPR3=3000;
利用定时器T1产生PWM,预分频x1,中断频率20K,程序配置如下:
EvaRegs.T1PR=7500;/pwm频率10k
EvaRegs.CMPR1=1000;
EvaRegs.CMPR2=1000;
EvaRegs.CMPR3=1000;
EvaRegs.T1CON.all=0x0840;/连续增减计数
EvaRegs.DBTCON.all=0x0cf4;/死区2.56us
EvaRegs.COMCONA.all=0xA200;
ACTRA寄存器配置为pwm1~6脚均为有效高;
按照上述程序,期望pwm1~6输出的占空比为0.6,但是用示波器观察的时候发现pwm1,3,5脚输出占空比为0.572,而pwm2,4,6脚输出的占空比为0.624.
更改CMPR1,2,3的值,发现pwm2,4,6引脚的占空比始终要比pwm1,3,5脚的占空比大0.05左右,请问这是什么原因引起的?是不是我哪个寄存器没配置好?
麻烦看到的专家回复一下,谢谢。
rookiecalf:
回复 alice wu:
死区的时间没有考虑在内
利用定时器T1产生PWM,预分频x1,中断频率20K,程序配置如下:
EvaRegs.T1PR=7500;/pwm频率10k
EvaRegs.CMPR1=1000;
EvaRegs.CMPR2=1000;
EvaRegs.CMPR3=1000;
EvaRegs.T1CON.all=0x0840;/连续增减计数
EvaRegs.DBTCON.all=0x0cf4;/死区2.56us
EvaRegs.COMCONA.all=0xA200;
ACTRA寄存器配置为pwm1~6脚均为有效高;
按照上述程序,期望pwm1~6输出的占空比为0.6,但是用示波器观察的时候发现pwm1,3,5脚输出占空比为0.572,而pwm2,4,6脚输出的占空比为0.624.
更改CMPR1,2,3的值,发现pwm2,4,6引脚的占空比始终要比pwm1,3,5脚的占空比大0.05左右,请问这是什么原因引起的?是不是我哪个寄存器没配置好?
麻烦看到的专家回复一下,谢谢。
alice wu:
回复 rookiecalf:
多谢回复。如果我想让pwm1~6输出同样的占空比是不是就得禁止死区?用这个pwm信号来驱动交流电机,禁止死区的话会不会有问题?
利用定时器T1产生PWM,预分频x1,中断频率20K,程序配置如下:
EvaRegs.T1PR=7500;/pwm频率10k
EvaRegs.CMPR1=1000;
EvaRegs.CMPR2=1000;
EvaRegs.CMPR3=1000;
EvaRegs.T1CON.all=0x0840;/连续增减计数
EvaRegs.DBTCON.all=0x0cf4;/死区2.56us
EvaRegs.COMCONA.all=0xA200;
ACTRA寄存器配置为pwm1~6脚均为有效高;
按照上述程序,期望pwm1~6输出的占空比为0.6,但是用示波器观察的时候发现pwm1,3,5脚输出占空比为0.572,而pwm2,4,6脚输出的占空比为0.624.
更改CMPR1,2,3的值,发现pwm2,4,6引脚的占空比始终要比pwm1,3,5脚的占空比大0.05左右,请问这是什么原因引起的?是不是我哪个寄存器没配置好?
麻烦看到的专家回复一下,谢谢。
rookiecalf:
回复 alice wu:
控制精度不高的话,可以暂时不考虑。以后考虑精度的话,做一下死区补偿。
利用定时器T1产生PWM,预分频x1,中断频率20K,程序配置如下:
EvaRegs.T1PR=7500;/pwm频率10k
EvaRegs.CMPR1=1000;
EvaRegs.CMPR2=1000;
EvaRegs.CMPR3=1000;
EvaRegs.T1CON.all=0x0840;/连续增减计数
EvaRegs.DBTCON.all=0x0cf4;/死区2.56us
EvaRegs.COMCONA.all=0xA200;
ACTRA寄存器配置为pwm1~6脚均为有效高;
按照上述程序,期望pwm1~6输出的占空比为0.6,但是用示波器观察的时候发现pwm1,3,5脚输出占空比为0.572,而pwm2,4,6脚输出的占空比为0.624.
更改CMPR1,2,3的值,发现pwm2,4,6引脚的占空比始终要比pwm1,3,5脚的占空比大0.05左右,请问这是什么原因引起的?是不是我哪个寄存器没配置好?
麻烦看到的专家回复一下,谢谢。
alice wu:
回复 rookiecalf:
还有个问题,我看ti关于BLDC电机的pwm例程,里面没看到有设置死区。是不是因为这种电机每次只通两管,不会存在同一桥臂上管通完马上切换为下管的情况,所以不需要设置死区?