第6章 定时器相关模块Word文档下载推荐.docx
- 文档编号:20463152
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:42
- 大小:833.87KB
第6章 定时器相关模块Word文档下载推荐.docx
《第6章 定时器相关模块Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第6章 定时器相关模块Word文档下载推荐.docx(42页珍藏版)》请在冰豆网上搜索。
PDB模块包含高达15种输入触发中断源和软件触发中断源、8路的可配置用于ADC触发的PDB通道、8路的DAC内部触发源和8路的脉冲输出。
PDB结构框图如图6-1所示。
在图中,只显示了PDB通道n,DAC间隔触发器x以及脉冲输出y(用虚线框表示),没有显示PDB使能控制逻辑与时序错误中断逻辑。
6.2.2PDB模块寄存器介绍
PDB的寄存器
绝对地址
(十六进制)
寄存器名称
访问
4003_6000
状态和控制秒寄存器(PDB0_SC)
R/W
4003_6004
模寄存器(PDB0_MOD)
4003_6008
计数寄存器(PDB0_CNT)
R
4003_600C
中断延时寄存器(PDB0_IDLY)
4003_6010
通道n控制寄存器1((PDB0_CH0C1)
4003_6014
通道n状态寄存器(PDB0_CH0S)
W1c
4003_6018
通道n延时0寄存器(PDB0_CH0DLY0)
4003_601C
通道n延时1寄存器(PDB0_CH0DLY1)
4003_6038
通道n控制寄存器1(PDB0_CH1C1)
4003_603C
通道n状态寄存器(PDB0_CH1S)
4003_6040
通道n延时0寄存器(PDB0_CH1DLY0)
4003_6044
通道n延时1寄存器(PDB0_CH1DLY1)
4003_6150
DAC间隔触发n控制寄存器(PDB0_DACINTC0)
4003_6154
DAC间隔n寄存器(PDB0_DACINT0)
4003_6158
DAC间隔触发n控制寄存器(PDB0_DACINTC1)
4003_615C
DAC间隔n寄存器(PDB0_DACINT1)
4003_6190
输出脉冲n使能寄存器(PDB0_PO0EN)
4003_6194
输出脉冲n延时寄存器(PDB0_PO0DLY)
1)状态和控制寄存器(PDBx_SC)
PDBx_SC位描述
位
描述
31-20:
预留
预留,只读,值为0
19-18:
LDMOD
装载模式选择
LDOK置位后,此位为MOD、IDLY、ChnDlym、INTx和POyDly寄存器的负载模式选择位
00一旦LDOK置位后,内部寄存器立即从缓冲区装载值
01PDB计数器的值与MOD寄存器的值相等且LDOK置位后,内部寄存器从缓冲区装载值
(1)
10LDOK置位后,如果检测到输入触发事件,内部寄存器从缓冲区装载值
(2)
11当
(1)或
(2)发生时,内部寄存器从缓冲区装载值。
17:
PDBEIE
PDB时序错误中断使能位
0禁止中断
1使能中断
16:
SWTRIG
软件触发
当使能PDB而且选择软件触发作触发输入源时,写1到此位会使计数器重新计数。
写0无效。
读为0
15:
DMAEN
DMA使能位
0禁止
1使能
14-12:
PRESCALER
预分频选择位
0001倍倍频
0012倍倍频
0104倍倍频
0118倍倍频
10016倍倍频
10132倍倍频
11064倍倍频
111128倍倍频
11-8:
TRGSEL
输入触发源选择
为PDB选择输入触发源。
输入触发源可以是内部或者外部触发源,或者软件触发。
0000~1110分别为中断源0~中断源14,1111为软件中断源
7:
PDBEN
PDB使能位
0禁止,计数器关闭
6:
PDBIF
PDB中断标志位
当计数器的值等于IDLY寄存器的值时,此位置位。
写0清该位。
5:
PDBIE
PDB中断使能
这一位使能PDB中断。
当此位被置位且DMAEN被清除时,PDBIF会产生一个中断
4:
3-2:
MULT
倍频因子选择位
00倍频因子为1
01倍频因子为10
10倍频因子为20
11倍频因子为40
1:
CONT
连续模式使能位
0单次模式
1连续模式
0:
LDOK
装载数据OK位
写1可以让缓冲装载内部寄存器MOD、IDLY、ChnDlym、INTx和POyDly的值。
MOD、IDLY、ChnDlym、INTx和POyDly可以通过LDMOD发挥作用。
2)模寄存器(PDBx_MOD)
PDBx_MOD位寄存器
31-16:
15-0:
MOD
PDB模值
这些位确定了计数器的周期,当计数器达到这个值时,归零,如果PDB为连续模式,重新计数。
3)计数寄存器(PDBx_CNT)
PDBx_CNT位描述
CNT
PDB计数器,只读
4)中断延时寄存器(PDBc_IDLY)
PDBc_IDLY位描述
IDLY
PDB中断延时,这些位确定PDB中断的延时值
5)通道n控制寄存器1(PDBx_CHnC1)
每个PDB通道都有一个控制寄存器——CHnC1,用来控制每个PDB通道的功能。
PDBx_CHnC1位描述
31-24:
23-16:
BB
PDB通道预触发背靠背操作使能位
15-8:
TOS
PDB预触发输出选择位
这些位用来选择PDB的ADC预触发输出。
0PDB通道响应旁路模式的预触发。
1当在输入触发源检测到一个上升沿信号后,计数器的值等于通道延时寄存器的值加一个预分频周期时,或者选择软件触发模式且SWTRIG置位,预触发器会响应
7-0:
EN
PDB通道预触发使能位
0禁用PDB通道响应预触发器
1使能PDB通道响应预触发器
6)通道n状态寄存器(PDBx_CHnS)
PDBx_CHnS位描述
31-24:
CF
PDB通道标志
当PDB计数器与CHnDLYm匹配时置位CF[m]。
写0清除
ERR
PDB通道时序错误标志
0PDB通道响应预触发器不检测时序错误
1PDB通道响应预触发器检测时序错误
7)通道n延时0寄存器(PDBx_CHnDLY0)
PDBx_CHnDLY0位描述
DLY
PDB通道延时值
这些位确定通道响应预触发器的延时值
8)通道n延时1寄存器(PDBx_CHnDLY1)
功能同通道n延时0寄存器,不再赘述。
9)DAC间隔触发器n控制寄存器(PDBx_DACINTCn)
PDBx_DACINTCn位描述
31-2:
1:
EXT
DAC外部输入触发使能位
0禁用DAC外部输入触发
1使能DAC外部输入触发
TOE
DAC间隔触发使能位
10)DAC间隔n寄存器(PDBx_DACINTn)
PDBx_DACINTn位描述
INT
DAC间隔
这些位决定DAC间隔触发器的间隔值
11)脉冲输出n使能寄存器(PDBx_POnEN)
PDBx_POnEN位描述
31-8:
POEN
PDB脉冲输出使能
12)脉冲输出n延时寄存器(PDBx_POnDLY)
PDBx_POnDLY位描述
DLY1
PDB脉冲输出延时1
这些位用来确定PDB脉冲输出延时1的值。
当PDB计数器等于DLY1时,脉冲输出高。
DLY2
PDB脉冲输出延时2
这些位用来确定PDB脉冲输出延时2的值。
当PDB计数器等于DLY2时,脉冲输出高。
6.2.3PDB模块概要与编程要点
1.PDB输入触发源选择
PDB有多达15个输入触发源,叫做Trigger-In0〜14,在图6-1中可以看到,它们与片上或片下事件源相连。
通过PDB状态控制寄存器SC的软件触发位(SWTRIG)可以将PDB设置为软件触发,通过SC的输入触发源选择位域(TRIGSEL)可以使能触发输入源Trigger-In0到14中的某一个,或者是软件触发。
SC[TRIGSEL]的取值范围为0000〜1111,其中0000〜1110对应触发源Trigger-In0到14,1111对应软件触发。
详细信息参见本章阅读材料。
2.DAC间隔触发器输出
PDB可以产生间歇的触发,周期性的更新DAC输出。
当产生输入触发事件且DACINTCx[EXT]等于零时,复位DAC间隔计数器x并重新开始计数。
当间隔计数器x的值等于DACINTx寄存器设置的值时,DAC间隔触发器x会输出一个脉冲来更新DACx,该脉冲的脉宽等于一个外设时钟周期。
如果置位DACINTCx[EXT],将旁路DAC间隔计数器,而且在检测到DAC外部输入触发有上升沿之后,DAC间隔触发器x会输出一个脉冲。
清位DACINTCx[TOE]将禁止DAC间隔计数器和DAC间隔触发器。
当PDB计数器等于PDB模寄存器MOD的值时,复位DAC间隔计数器。
因此当PDB计数器归零时,DAC间隔计数也会重新开始。
在图6-1可以看到DAC间隔触发输出框图。
3.脉冲输出
PDB可以输出宽度可配置的脉冲。
当PDB计数器的值等于PDB脉冲输出y延时寄存器DLY1的值时,脉冲输出为高;
当计数器达的值等于PDB脉冲输出y延时寄存器DLY2的值时,脉冲输出为低。
由图6-1也可以看到脉冲输出框图。
图6-1PDB结构框图
6.2.3PDB构件设计及测试实例
(省略)
6.3Flex定时器FTM
6.3.1FTM的基础知识
弹性定时器模块(FlexTimerModule,FTM)是一个支持输入捕捉、输出比较、产生可用来控制电机的PWM信号和电源管理应用的通道定时器。
它建立在飞思卡尔8位微控制器HCS08定时器PWM模块——TPM上,并且在低功耗和向后兼容TPM的基础上进行功能扩展,增加了有符号的加法计数器、故障控制输入、增强了触发功能和极性控制来满足电机控制、电源转换等的需要。
所有与TPM模块相同的特性完全向后兼容,FTM在相同的核心平台下不需要对代码做任何改变就可以实现相同的功能。
FTM具有可选的时钟源,可以是系统时钟、固定频率时钟或者外部时钟;
具有1、2、4、8、16、32、64、128预分频;
一个可以进行无符号或有符号计数的16位计数器,为FTM提供定时参考;
每一个通道都可配置为输入捕捉、输出比较或者边缘对齐的PWM模式;
每个通道的极性都可以配置,并产生溢出中断、通道中断、故障中断等中断。
当TOIE=l且TOF=l时,产生定时器溢出中断,当ChnIE=l且CHnF=l时,产生通道(n)中断,当FAULTIE=1且FAULTF=1时,产生故障中断。
图6-2显示了FTM模块结构,其中心组件为16位计数器。
6.3.2FTM模块寄存器介绍
FTM寄存器非常多,我们这里只列举常用的8个。
1)状态和控制寄存器(FTMx_SC)
SC包含溢出状态标志和控制位,用来配置中断使能、FTM配置、时钟源和预分频因子。
这些控制和这个模块的所有通道相关。
FTMx_SC位域描述
位域
31-8
保留
这个只读位域被保留,值常为0。
7
TOF
定时器溢出标志位
0FTM计数器不溢出
1FTM计数器溢出
6
TOIE
定时器溢出中断使能
0禁止TOF中断。
使用软件轮询
1使能TOF中断。
当TOF等于1时产生中断
5
CPWMS
中央对齐PWM选择位
0FTM计数器向上计数
1FTM计数器向上向下计数
4-3
CLKS
时钟源选择
00没有选择任何时钟(实际上是禁止FTM计数器)
01系统时钟
10固定频率时钟
11外部时钟
2-0
PS
预分频因子选择位
0001分频
0012分频
0104分频
0118分频
10016分频
10132分频
11064分频
111128分频
2)计数器(FTMx_CNT)
CNT寄存器包含FTM计数器的值。
复位清CNT寄存器,写任何值到COUNT中会将计数器更新为它的初始值(CNTIN),当激活BDM时,FTM计数器冻结。
FTMx_CNT位域描述
31-16
只读位域被保留,总是为0。
15-0
COUNT
计数器值
3)模寄存器(FTMx_MOD)
模寄存器包含FTM计数器的模值。
FTM计数器达到模寄存器的值后,在下个时钟周期置位溢出标志(TOF),FTM计数器的下一个值取决于所选的计数方式。
写MOD寄存器会将值锁存到缓冲区中,MOD寄存器会根据写缓冲区中的值更新寄存器。
如果FTMEN=0,通过写SC寄存器可能复位写一致机制,推荐在写MOD寄存器之前初始化FTM计数器。
FTMx_MOD位域描述
模值
4)通道n状态和控制寄存器(FTMx_CnSC)
CnSC包含了通道中断状态标志和控制位,用于配置中断使能、通道配置和引脚功能。
FTMx_CnSC位描述
CHF
通道标志
0无通道事件发生
1有通道事件发生
CHIE
通道中断使能位
MSB
通道模式选择位
在通道逻辑中,用于进一步的选择,它的功能取决于通道模式。
此位已被写保护。
只有当MODE[WPDIS]=1时才可写。
MSA
3:
ELSB
边沿或电平选择位
ELSB和ELSA的功能取决于通道模式,此位已被写保护。
仅当MODE[WPDIS]=1时才可写。
2:
ELSA
DMA
5)通道n值寄存器(FTMx_CnV)
这些寄存器包括了输入捕捉模式下捕捉的FTM计数器的值或者输出比较模式下的匹配值。
在输入捕捉、捕捉测试和双边沿捕捉模式,写CnV无效。
在输出比较模式下,写CnV寄存器将会把写入的值装载到缓冲中。
FTMx_CnV位描述
VAL
通道值
捕捉到的FTM计数器的值或输出比较输出匹配值
6)计数器初始值寄存器(FTMx_CNTIN)
该寄存器包括FTM计数器的初始值,写该寄存器会将值装载到缓冲区中。
FTMx_CNTIN位描述
INIT
FTM计数器的初始值
7)捕捉和比较状态寄存器(FTMx_STATUS)
该寄存器包括了对每个FTM通道的状态标志CHnF位的副本。
通过读该寄存器可以得到所有通道的CHnF位的值。
写0x00到该寄存器可以清掉所有的CHnF位的值。
当通道上有事件发生时,硬件会使响应的通道标志置位。
当CHnF被置位时,读该寄存器可以清CHF。
写1到CHF无效。
FTMx_STATUS位描述
7-0
CHnF
通道n标志位
0无事件发生
1有事件发生
8)特性模式选择寄存器(FTMx_MODE)
这个寄存器包含用来配置出错中断和出错控制的控制位,捕捉测试模式,PWM同步化,写保护,通道输出初始化,和使FTM加强的特性。
这些控制与该模块内的所有通道有联系。
FTMx_MODE位描述
该位为只读位而且其值总为0。
FAULTIE
故障控制中断使能位
0禁用故障控制中断
1使能故障控制中断
6-5
FAULTM
故障控制模式
00对所有的通道禁用故障控制。
10仅对0、2、4、6通道使能故障控制,手动清除故障
10对所有的通道使能故障控制,且手动清除故障
11对所有的通道使能故障控制,且自动清除故障
4
CAPTEST
捕捉测试模式使能位
0禁用捕捉测试模式
1使能捕捉测试模式
3
PWMSYNC
PWM同步模式
0无限制,软件触发和硬件触发都可通过MOD、CnV、OUTMASK以及FTM计数器来同步化
1软件触发仅通过使用MOD和CnV同步化,硬件触发仅通过使用OUTMASK和FTM计数器同步
2
WAPDIS
禁用写保护
0写保护允许
1禁止写保护
1
初始化通道输出
写0到INIT,可以根据OUTINIT寄存器的相应位初始化通道输出,写1到INIT,无效。
读INIT总是为0
FTMEN
FTM使能位
0只有TPM兼容寄存器可用,FTM专用寄存器不可用
1所有的寄存器都可用
6.3.3FTM模块概要与编程要点
本小节具体阐述FTM各个模块的特征,由于版面有限,这里只列举了常用的几个模块。
1.计数时钟源与分频
FTM状态和控制寄存器(FTMx_SC)的CLKS[1:
0]位用于选择FTM计数器的时钟源,CLKS[1:
0]=00表示没有选择任何时钟,相当于关闭FTM计数器,CLKS[1:
0]=01表示系统时钟源,CLKS[1:
0]=10(固定频率时钟),CLKS[1:
0]=11(外部时钟)。
MCU复位后,CLKS[1:
0]=00,关闭FTM计数器。
选择的时钟源的分频因子由FTM状态和控制寄存器(FTMx_SC)的PS[2:
0]位决定,PS[2:
0]=000(1分频),PS[2:
0]=001(2分频),PS[2:
0]=010(4分频),PS[2:
0]=011(8分频),PS[2:
0]=100(16分频),PS[2:
0]=101(32分频)。
2.计数器
FTM有一个16位计数器,供通道使用,计数器的操作主要有向上计数与向上向下计数。
向上计数:
当FTM正交解码控制和状态寄存器(FTMx_QDCTRL)的正交解码模式使能位QUADEN=0且FTM状态和控制寄存器(FTMx_SC)的中央对齐PWM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 定时器相关模块 定时器 相关 模块