TI335X PWM手册相关

来源:互联网 发布:用java写的订餐系统 编辑:程序博客网 时间:2024/05/29 15:39

TBPRD寄存器只有16位 但是有影子寄存器的功能,概念不是很理解

他的PWM分三部分,看样子跟后2者无关

HRPWM 高分辨率脉宽调制,通过增加比较器的位数提高分辨率。用在系统时钟高于100MHz而要求PWM分辨率高的场合

CAP 貌似用于接收反馈信号的 Dedicated input Capture pin

QEP 正交编码脉冲(Quadrature Encoded PulsesQEP)两个周期为T的波形s1(t)s2(t)在一个周期内积分为零,则他们是正交的,如果是离散域,则对他们采样值的累加和为零即s1(m)*s2(m)的累加和为零。Input Synchronization,同步输入

这么说,只能有16位的基时间来控制周期了

这么一说是支持100MHz

每个PWM7个子模块

更多的看15-8

主要的有:

PWM output signals (EPWMxA and EPWMxB).怎么说,就一普通PWM

Trip-zone signals (TZ1 to TZn).

Time-base synchronization input (EPWMxSYNCI) and output (EPWMxSYNCO) signals.

Peripheral Bus.32位的外围总线,允许1632位的PWM寄存器写入

每个PWM外围都有7个子模块。比如有包含一个高分辨率的子模块,允许更精确的控制的PWM输出。其中每个子模块执行特定的任务,可以通过软件配置。

15-10列出八个关键子模块的主要配置参数。例如,如果你需要调整或控制PWM波形的占空比,那么你应该查看“比较计数器”(counter-compare)子模块相关细节15.2.2.4


初始化PWM的操作

每个PWM都有TimeBase子模块


TB子模块的作用

指定ePWM时基计数器(TBCNT)频率或时间来控制事件发生频率。

管理时基同步与其他ePWM模块。  

保持相位关系与其他ePWM模块。  

设置时基计数器计数了,倒计时,或计数上下模式。  

生成以下事件

——CTR = PRD:时基计数器等于指定的时期(TBCNT = TBPRD)。  

——CTR = 0:时基计数器等于零(TBCNT = 0000 h)。  

配置率的时基时钟;prescaled版本的CPU系统时钟  (SYSCLKOUT)。这允许时基计数器递增/递减以较慢的速度。

TB的寄存器:

TBCTL

TBSTS

TBPHSHR

TBPHS

TBCNT

TBPRD

计算PWM的周期

设置控制PWM频率需要(TBPRD)寄存器和TB计时器模式。15-11显示当周期设置为4 (TBPRD = 4)周期(Tpwm)和频率(Fpwm)的关系,增量计数,减量计数,增减量计数TB计数器模式。时基时钟(TBCLK)定义了每个步骤的时间增量,它是prescaled版本的系统时钟(SYSCLKOUT)


TB周期影子寄存器

搞清楚一开始的问题了

Shadowing allows the register update to be synchronized with the hardware. The following definitions are used to describe all shadow registers in the ePWM module

影子寄存器允许寄存器同步更新的硬件。下面的定义是用来描述所有影子寄存器在ePWM模块

活动寄存器:活动寄存器用来操作硬件和负责硬件的表示或调用.

影子寄存器:影子寄存器缓冲或者为活动寄存器提供一个临时保存位置. 他对硬件没有直接影响. 他存在的意义就是及时的传递内容到活动寄存器. 用来预防由于使用软件异步操作寄存器而操作不成功.

影子周期寄存器的内存地址跟活动寄存器一样。影子周期寄存器是写入还是读取取决于TBCTL[PRDLD]。这一位TBPRD启用和禁用影子寄存器如下:

•TB的影子模式:TBPRD影子寄存器时启用TBCTL[PRDLD]=0。读取和写入内存地址TBPRD会到影子寄存器去。当时基计数器等于零(TBCNT = 0000 h),影子寄存器内容转移到活动寄存器(TBPRD(活动)←TBPRD(影子)) 。默认情况下是启用TBPRD影子寄存器。  

•TB的直接负载模式:如果直接负载模式被选中(TBCTL[PRDLD]= 1), 然后一个读取或写入TBPRD内存地址直接进入活跃的寄存器。

高精度的子模块设置后的特征表格


子模块比较计数器的作用

这个比较计数器子模块需要输入时基计数器的值。这个值是连续不断地和比较计数器A(CMPA)和比较计数器B(CMPB)寄存器的值做比较。当时基计数器值等于其中比较寄存器的值,比较计数器模块生成一个适当的事件。

这个比较计数器子模块

使用CMPA和CMPB寄存器生成事件基于可编程时间戳  

——CTR = CMPA:时基计数器等于计数器比较寄存器(TBCNT =CMPA)。  

——CTR = CMPB:时基计数器等于计数器比较基址寄存器(TBCNT = CMPB) 

如果合适的设置了AQ子模块可用于控制PWM占空比 

阴影新比较值来防止腐败或故障在活跃的PWM周期

特别强调关于比较计数器子模块  

这个比较计数器子模块负责生成两个独立比较事件基于两个比较寄存器:

1CTR = CMPA:时基计数器等于计数器比较寄存器(TBCNT =CMPA)

2CTR = CMPB:时基计数器等于计数器比较基址寄存器(TBCNT = CMPB)。  

对于增量计数模式和递减技术模式,每周期每个事件只发生一次。对于上下计数模式如果比较值在0000 h和TBPRD之间,每两个周期每个事件发生一次。如果比较值等于0000 h或等于TBPRD,则发生一次周期。这些事件被送入AQ子模块,他们有资格的子模块柜台方向和转化为行动启用。参考15.2.2.5.1for toSection更多细节。


在启动CMPA寄存器后的值不断与时基计数器(TBCNT)比较。当值相等时,比较计数器模块生成一个时基计数器等于比较计数器A”事件。这个事件被发送到AQ,它转换事件生成一个或多个动作。这些操作可以应用于要么EPWMxAEPWMxB输出根据配置的AQCTLAAQCTLB寄存器。

AQCTLAAQCTLB寄存器可以定义的操作包括

• 什么都不做; 事件被无视.

• 清除: 把EPWMxA和/或 EPWMxB 信号拉低

• 设置: 把 EPWMxA 和/或 EPWMxB 信号拉高

• 触发 EPWMxA 和/或 EPWMxB 信号

原创粉丝点击