DSP复习笔记(6)——ePWM模块
注意
- 芯片型号:TMS320F28335
- 适用于NJUSTEO李彧晟老师课程
- 参考资料:《TMS320F28335 DSP原理、开发及应用》
- 对应PPT第二章80页
- 本章内容较多而且较为重要,请结合PPT一起复习
1 概述
- ePWM模块可以分为7个子模块,本章仅讲述前两个子模块:时间基准(TB)子模块、事件触发(ET)子模块
2 时间基准(TB)模块
2.1 TB计数模式
- 计数模式分为3种,增计数、减计数和增/减计数。
- 个人认为数据手册上的图和PPT上的图可以在一起看
- 本章比较重要的地方在于计算各种计数模式的周期和频率,数据手册的图中给出了比较详细的计算公式。
2.2 TB相关寄存器
2.2.1 Time-Base Control Register (TBCTL)
这一部分PPT上讲的很详细了,我直接copy过来
- 对于“仿真模式位”在考试中不做要求
- CLKDIV和HSPCLKDIV的分频标准是不同的,需要区别记忆。CLKDIV是2CLKDIV次分频,而HSPCLKDIV是2 HSPCLKDIV(0为1分频)
- PHSDIR位仅在增/减计数模式时有用,用来确定同步事件发生后的计数方向
2.2.2 Time-Base Status Register (TBSTS)
2.2.3 范例
求150MHz CPU 频率下,产生150 KHz信号所对应TBPRD的数值。
- 增计数
相关寄存器该如何设置?
3 事件触发子模块
- 事件触发子模块用来处理时间基准子模块、比较功能子模块所产生的事件,从而向CPU发出中断或产生ADC启动信号。
3.1 中断控制功能
- 中断周期(ETPS[INTPRD])位指定产生中断脉冲所需的事件数。可用的选项包括:
- 不要产生中断。
- 在每个事件上生成中断
- 在每秒钟的事件中产生一个中断
- 每三个事件产生一个中断
- 哪个事件可以导致中断是由中断选择(ETSEL[INTSEL])位配置的。
- 可以从中断事件计数器(ETPS[INTCNT])寄存器位读取已发生的事件数。也就是说,当指定的事件发生时,ETPS[INTCNT]位将递增,直到它们达到ETPS[INTPRD]指定的值。当ETPS[INTCNT]=ETPS[INTPRD]时,计数器停止计数并设置其输出。只有当中断被发送到PIE时,计数器才被清除。
3.2 产生ADC启动信号
- 基本原理和上面相同
3.3 事件触发子模块相关寄存器
3.3.1 Event-Trigger Selection Register (ETSEL)
- 事件触发选择寄存器
3.3.2 Event-Trigger Prescale Register (ETPS)
- 事件触发预分频寄存器
- 所有的CNT位均为只读位