您好!
我正在使用系统时钟90Mhz 来运行 TMS320F28069。 时钟源来自 外部20Mhz 晶振。
我正在尝试通过将 ECAP 模块设置为 APWM 模式、来使用该模块输出 PWM 信号。 以下是 ECAP 初始化代码的一部分:
ECap2Regs.ECCTL2.bit.APWMPOL = 1;
ECap2Regs.ECCTL2.bit.CAP_APWM = 1;//将我们置于 PWM 模式
ECap2Regs.ECCTL2.bit.SYNCI_EN = 0;
ECap2Regs.ECCTL2.bit.SYNCO_SEL = 1;// CTP = PRD
ECap2Regs.ECCTL2.bit.stop_wrap = 0x01;
ECap2Regs.ECCTL1.bit.CAPLDEN = 1;//启用 CAP1-CAP4寄存器加载
ECap2Regs.ECCTL2.bit.CONT_ONESHT = 0;
我正在尝试生成周期为:40us/60us/80us/100us/200us/400us 的 PWM 信号。 我用频率计数器测量了信号的周期。 理想的 ppm 误差为0、但我得到了非常大的 ppm 误差:
| 预期输出周期 | 40 μ s | 60 μ s | 80 μ s | 100 μ s | 200us | 400us |
| ECap2Regs.CAP4 (接通时间) | 1738 | 2638 | 3538 | 4438 | 8938 | 17938 |
| ECap2Regs.CAP3 (周期) | 3600 | 5400 | 7200 | 9000 | 18000 | 36000 |
| 预期 ppm | 0 | 0 | 0 | 0 | 0 | 0 |
| 测得的 ppm 结果 | -282.8 | -190.4 | -144.1 | -166.2 | -60.7 | -33 |
当我将周期减少1的值时、我得到了明显更好的 ppm 误差:
| 预期输出周期 | 40 μ s | 60 μ s | 80 μ s | 100 μ s | 200us | 400us |
| ECap2Regs.CAP4 (接通时间) | 1737.000000 | 2637.000000 | 3537.000000 | 4437.000000 | 8937.00000 | 17937.00000 |
| ECap2Regs.CAP3 (周期) | 3599.000000 | 5399.000000 | 7199.000000 | 8999.000000 | 17999.00000 | 35999.00000 |
| 预期 ppm | 277.770000 | 185.185000 | 138.888000 | 111.111000 | 55.55000 | 27.77000 |
| 测得的 ppm 结果 | 2.000000 | -5.300000 | -5.300000 | 12.100000 | -5.30000 | -5.30000 |
那么、我在哪里可以找到有关 APWM 精度的详细信息?
如何获得最佳精度?
如何计算 PWM 最坏情况下的误差?
谢谢。
安迪

