F28335 EPWM设置(同步功能).pdf

上传人:scccc 文档编号:11361532 上传时间:2021-07-30 格式:PDF 页数:5 大小:88.18KB
返回 下载 相关 举报
F28335 EPWM设置(同步功能).pdf_第1页
第1页 / 共5页
F28335 EPWM设置(同步功能).pdf_第2页
第2页 / 共5页
F28335 EPWM设置(同步功能).pdf_第3页
第3页 / 共5页
F28335 EPWM设置(同步功能).pdf_第4页
第4页 / 共5页
F28335 EPWM设置(同步功能).pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《F28335 EPWM设置(同步功能).pdf》由会员分享,可在线阅读,更多相关《F28335 EPWM设置(同步功能).pdf(5页珍藏版)》请在三一文库上搜索。

1、F28335 的的 EPWM 的设置的设置 编者:编者:Ah_thunder Email: TMS320F28335 的 EPWM 模块与 TMS320F2812 的 PWM 功能模块有较大不一样。 主要体现在 原来 F2812 中的 PWM1, PWM2, PWM3 由事件模块来管理, 它们三个 PWM 模块共用一个定时器(即 时基),当事件模块 1 的 PWM13 与事件模块 2 的 PWM46 之间要进行同步时,F2812 有一个 功能即是事件模块 2 的 PWM46 也使用 Timer1,即可实现同步。 但是 F28335 里面的已经没有事件管理器了, 而是把事件管理器的模块全部打散放

2、出来。 其中的 EPWM 模块,也与 F2812 有较大变化。其中每个 EPWM 模块里面都有一个 TB(可认为是 基准时钟,即相当于 F2812 是的 Timer1),故 3 个 EPWM 模块就有 3 个 TB,这样就导致可能 出现 3 个 EPWM 模块不同步的象现。 1. 本人使用方案如下: 其中 EPWM13 采用对称法生成 PWM 信号, 而 EPWM4 的目的是生成两 倍开关频率的中断,及 ADC 触发信号。在没有使用同步功能时,其中读数器计数结果如 下所示。 ulTempCnt18为 EPWM1 向下时的计数结果,而 ulTempCnt19为 EPWM1 向上时的计数 结果。从

3、结果可以看到他们的值不一样,还相差比较大。这可以说明是由于 EPWM1 与 EPWM4 不同步引起的。既然 EPWM1 与 EPWM4 会有不同步象现,那么 EPWM1,EPWM2,EPWM3 之间也会 出现不同步象现,这是做控制时(如典型的电机控制、逆变电源控制等)绝对不允许出现的。 另外,下面的计数值应该是 2 的次的关系,但是此时系统计数也与理论值有较大偏差,这也 说明是 EPW1 与 EPWM4 不同步引起的。 这说明我们使用 F28335 的时候必须使用他们的同步功 能。 2. TMS320F28335 的同步功能使用: 根据官方资料显示,同步功能可采用以下方法使用: 如果有两块 F

4、28335 之间的 EPWM 模块需要同步, 则一块 F28335 是主模块通过 GPIO 引脚 的同步输出功能输出同步信号,而另一块 F28335 则通过 GPIO 引脚的同步输入功能接收主 CPU 的同步信号,从而实现两块 F28335 之间的 EPWM 同步。本人在此只用了一块 F28335,但 是需要把 EPWM1EPWM4 同步起来。从上图可以看出,我们就不需要使用 GPIO 引脚了,系统 内部已经连接好线路了,我们只要设置几个标记位即 OK 了。从上图可以看出 EPWM1 设置为 同步输出功能,而 EPWM2EPWM4 设置同步输入功能。设置方法如下所示: 设置 EPWM1 为同步

5、输出功能: EPwm1Regs.TBPHS.half.TBPHS = 0 x0000; / clear Time-Base Phase RegisterPhase EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; / Disable phase loading EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;/设置在计数值为 0 时输出同步信号 设置 EPWM2 为同步输入功能: EPwm2Regs.TBPHS.half.TBPHS = 0 x0000; / clear Time-Base Phase RegisterPhas

6、e EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; / Disable phase loading EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;/设置为接收同步输入信号 设置 EPWM3 为同步输入功能: EPwm3Regs.TBPHS.half.TBPHS = 0 x0000; / clear Time-Base Phase RegisterPhase EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE; / Disable phase loading EPwm3Regs.TBCTL.bit.SYN

7、COSEL = TB_SYNC_IN;/设置为接收同步输入信号 设置 EPWM4 为同步输入功能: EPwm4Regs.TBPHS.half.TBPHS = 0 x0000; / clear Time-Base Phase RegisterPhase EPwm4Regs.TBCTL.bit.PHSEN = TB_ENABLE; / Disable phase loading EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;/设置为接收同步输入信号 测试结果如下所示。计数器 ulTempCnt18与 ulTempCnt19相等,且所有计数器都为 理论值(2 的

8、次方值):说明 EPWM1EPWM4 已经完全同步了。 3. TMS320F28335 使用同步功能时的一些小问题: 在使用上述同步功能时,出现一点小问题,在这里写出来与大家分享。当 EPWM4 正常设 置时,出现以下问题:即在中断里面使用 if(1=EPwm1Regs.TBSTS.bit.CTRDIR)/1=上升沿,0=下降沿 ulTempCnt19+; else ulTempCnt18+; 时,发现只有 ulTempCnt18在记数。原因分析如下所示: 如上图 EPWM1 正常作对称的计数器进行周期计数,但是由于没有使用同步功能 EPWM1 上升到 PRD 时, EPWM4在上图中的 A

9、点还没有上升到 PRD。 当 EPWM4 上升到 PRD 时(即 B点时), EPWM1 的方向为向下计数了。这时 EPWM4 重新装载。EPWM4 的下一个周期中,当 EPWM1 在 0 时,EPWM4 在 D 点,还没有达到 PRD(即不会产生中断),但是这时由于 EPWM1 的同步信号, 使 EPWM4 强制重新装载,故 EPWM4 不会达到 C 点(即 PRD)也就不会产生中断。再往下重复上 述步骤。所以按照前面的方法计数时,只有 ulTempCnt18在记数,而 ulTempCnt19没有 计数。 既然知道问题所在,那么解决的办法是:让 EPWM4 的周期计数器 PRD 的值小于 E

10、PWM1 的 PRD 的值一点点。因为 EPWM4 只产生中断,并不用于控制计算,所以不会影响控制系统的 精度,但可以解决上述问题。代码如下: EPwm1Regs.TBPRD = CPU_CLK/(2*Para_uPWMFreq); / PWM 频率,也即是开关频率。 EPwm2Regs.TBPRD = CPU_CLK/(2*Para_uPWMFreq); / PWM 频率,也即是开关频率。 EPwm3Regs.TBPRD = CPU_CLK/(2*Para_uPWMFreq); / PWM 频率,也即是开关频率。 EPwm4Regs.TBPRD = CPU_CLK/(2*Para_uPWMFreq)-10; / PWM 频率,也即是开关频率。 经过测试 EPWM4 的 PRD 只要比 EPWM1 小 1 即可,这里考虑到安全系数问题所以使用了 10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1