想用F28035的EPWM模块产生20KHz的方波,结果发现实际出来的周期和频率与预设的相差比较大。
请帮忙分析一下什么原因?
关键参数:
1. 系统时钟60MHz
2. 关键寄存器:
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count upEPwm1Regs.TBPRD = 2999;EPwm1Regs.CMPA.half.CMPA = 1499;
按理说,出来的方波应该是20KHz,周期50us的;但通过逻辑分析仪实测为频率20.080KHz, 周期49.8us。
相差了80Hz,0.2us,误差比较大,请帮忙分析可能什么原因?谢谢
Green Deng:
如果是ePWM的话是会有误差。如果你要精确的频率,建议使用HRPWM
user6295459:
回复 Green Deng:
谢谢回答!
我想问下误差如此大是否正常?
因为我要产生AB两路互补的PWM,好像只有A路有HRPWM,B路没有HRPWM,所以满足不了我的要求。
Green Deng:
回复 user6295459:
你好,这个可以同时使用两组HRPWMA来完成,中间通过同步信号来同步控制。
user6295459:
回复 Green Deng:
好的,我试下,谢谢。