如何使用HT66F40 STM PWM 功能

Add to my manuals
8 Pages

advertisement

如何使用HT66F40 STM PWM 功能 | Manualzz
如何使用 HT66F40 STM PWM 功能
如何使用 HT66F40 STM PWM 功能
文件编码:
文件编码:HA0247S
简介
HT66Fx0 系列 MCU 提供了一个新的功能单元 TM,即 Timer Modules,
整合了 Timer 和 PWM
的功能,提供包括普通 Timer 定时、外部计数、可编程 Duty/Period PWM 输出或单脉冲输
出、输入捕捉等丰富的功能。TM 依据功能可分为简易型 TM (CTM)、标准型 TM (STM) 和
增强型 TM (ETM)。
本文即以 HT66F40 为母体,通过具体范例说明 STM 中 PWM 功能的使用。
工作原理
STM 的核心是一个向上计数的 16 位计数器和两个比较器,具体结构如下图示:
C C R P
3 o r 8 - b it C o m p a r a to r P
fS
Y S
fS
/4
Y S
fH /1 6
fH /6 4
fT B C
R e s e rv e d
T C K n
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
C o m p a ra to r P M a tc h
T n P F In te rru p t
b 7 ~ b 9 o r b 8 ~ b 1 5
1 0 o r 1 6 - b it C o u n t- u p C o u n te r
b 0 ~ b 9 o r
b 0 ~ b 1 5
T n O N
T n P A U
C o u n te r C le a r
0
1
T n C C L R
C o m p a ra to r A
1 0 o r 1 6 - b it
C o m p a ra to r A
T n C K 2 ~ T n C K 0
T n O C
M a tc h
O u tp u t
C o n tro l
P o la r ity
C o n tro l
T n M 1 , T n M 0
T n IO 1 , T n IO 0
T n P O L
T P n P in
In p u t/O u tp u t
T P n _ 0
T P n _ 1
T n A F In te rru p t
T n IO 1 , T n IO 0
C C R A
E d g e
D e te c to r
标准型
标准型 TM 模块图
注意:本范例中的 n=2。
计数器的时钟源可以通过设定 T2CK0~T2CK2 选择为 fSYS/4、fSYS、fH/16、fH/64、fTBC 或者
为 TCK2 输入。两个内部比较器:CCRP 和 CCRA,用于设定比较基准值,CCRP 有 8 位宽,
只对计数器的高 8 位进行比较,而 CCRA 的位数和计数器一样,可以跟计数器比较所有的
位。当设定好相关的寄存器 TM 开始运行后计数器向上计数,系统会将预先写入 CCRA 的
值与计数器中的值进行比较。计数器在计数溢出或者与设定 CCRA 的值相等时,可以自动
清除为零并产生一个中断信号,同时系统会根据程序设定产生相应的输出信号。计数器中
TM2DH/TM2DL 的值无法改变,但是可以读出,只能通过设定 T2ON 位由 0→1 才能清除
为零计数器。T2POL 可以对 T2OC 输出逻辑进行控制,当被设定为 1,可以强制对 T2OC
输出逻辑翻转。
1
如何使用 HT66F40 STM PWM 功能
HT66F40 输出引脚介绍:
引脚
功能描述
TP2_0
CCRA/CCRP
匹配输出引脚
TP2_1
CCRA/CCRP
匹配输出引脚
TMPC0
PRM2
T2CP0
1 : 使能 TP2 功能
0 : I/O 功能或者其它功能
TP20PS
0 : 设定 TP2_0 on PC3
1 : 设定 TP2_0 on PD1
T2CP1
1 : 使能 TP2 功能
0 : I/O 功能或者其它功能
TP21PS
0 : 设定 TP2_1 on PC4
1 : 设定 TP2_1 on PD4
在 PWM 模式,计数器可通过设定 T2DPX 来选择 PWM 的 Period 及 PWM 的 Duty 的设定
方式。当 T2DPX 设定为 0 时,CCRP 控制 PWM 的 Period,CCRA 控制 PWM 的 Duty;当
T2DPX 设定为 1 时,CCRA 控制 PWM 的 Period,CCRP 控制 PWM 的 Duty。当设定了 STM
工作模式为 PWM 后,将 T2ON 设定 1,计数器开始计数。一旦主计数器与 CCRA 或 CCRP
匹配,相应的中断标志位即 T2AF 或 T2PF 将会被设定 1,若堆栈未满且相应的中断使能,
程序将进入相应的中断服务程序。注意,由于 CCRP 和 CCRA 匹配中断的入口地址一样,
需要在进入中断服务程序后,判断中断标志位,来区分两种中断。T2AF 和 T2PF 不能自动
清除为零,需要在中断程序中,程序清除为零。否则不能响应下次中断。
PWM 模式时序图:
2
如何使用 HT66F40 STM PWM 功能
注意:本范例中的 n=2
在 PWM 模式中,T2CCLR 无作用。
在设定 PWM 模式前,可对 PRM2 寄存器设定相对应的位,将 TP2 引脚设定在不同的 I/O
引脚。再对 TMPC1 寄存器进行设定,选择 I/O 相应的 TP2 功能使能。
PWM 模式的设定步骤如下表:
步骤
1
操作内容
设定时钟源
寄存器
设定位
TM2C0
T2CK0~T2CK2
功能描述
选择 STM 的时钟源
T2DPX :
2
3
4
PWM 控制
1 : CCRA 控制 Period
CCRP 控制 Duty
0 : CCRA 控制 Duty
CCRP 控制 Period
TM2C1
TM2AH/TM2AL
所有的位
寄存器值
TM2RP
所有的位
设定 STM 工作模式
TM2C1
T2M1, T2M0=10
设定 CCRA、CCRP
TP20PS :
0 : 设定 TP2_0 on PC3
1 : 设定 TP2_0 on PD1
选择用 CCRA 还是 CCRP 控
制 PWM 的 Period 和 Duty
设定比较寄存器
″11″为 STM 工作在
PWM 模式
选择 STM 的 TP2_0 和 TP2_1
5
选择 STM 的输出引
脚
PRM2
6
使能 STM 的输出引
脚
TMPC1
T2CP1, T2CP0
使能 STM 的相应引脚功能
7
设定 TP2 输出的初
始电源电平
TM2C1
T2OC :
0 : 输出低电平
设定第一次匹配之前 TP2
TP21PS :
0 : 设定 TP2_1 on PC4
1 : 设定 TP2_1 on PD4
3
从哪个 I/O 引脚输出
的输出电平
如何使用 HT66F40 STM PWM 功能
步骤
操作内容
寄存器
8
设定 TP2 的输出功
能
TM2C1
9
设定 TP10 的输出极
性
TM2C1
10
设定中断允许位
11
开启 STM
12
STM 停止功能
设定位
1 : 输出高电平
T2IO1/T2IO0 :
00 : TP2 输出无效电平
功能描述
选择 10: PWM 输出
01 : TP2 输出有效电平
T2POL :
1 : 输出同向
0 : 输出反向
TP2 的输出极性控制
INTC1
MF0E
MFI0
T2AE, T2PE
TM2C0
T2ON 0 → 1
重置计数器,并 STM 开始工
作
T2PAU 0 → 1
STM 暂停工作,计数器值保
持不变
T2ON 1 → 0
STM 停止工作,计数器
内容不变
TM2C0
使能 STM 和多个功能的中
断
应用电路
说明:
对 STM 而言在 PWM 模式,可提供两个引脚 (TP2_0/TP2_1) 输出脉冲。
脉冲输出可选择从 TP2_0 (Pin 15) 输出或从 TP2_1 (Pin 14 ) 输出,或者 TP2_0 和 TP2_1 同
时输出。
4
如何使用 HT66F40 STM PWM 功能
流程图 (范例
范例 1)
注:上面为 T2DPX 为 0 时,即 CCRP 控制 PWM 的 Period,CCRA 控制 PWM 的 Duty 的
流程。
程序说明(
)
程序说明(范例 1)
本范例是使用 STM 的 PWM 程序,通过 STM 的 TP2_0 或 TP2_1 观察 PWM 输出。
主程序流程介绍:程序首先所使用到的数据储存器清除为零初始化。对 CP0C、CP1C 赋值
5
如何使用 HT66F40 STM PWM 功能
08H,关闭比较器功能。对 ACERL 和 SCOMEN 清除为零,关闭 A/D 输入功能和 LCD 功
能。PC 端口设定为输出模式,且 PC 需设定为低位,否则 TP2 输出逻辑相反。PRM2 [5:4]=00
为 TP2 从 PC4 和 PC3 输出,TM2C0 [6:4]=000 为选择 STM 的时钟源为 fSYS/4,TM2C1[7:6]=10
为 STM 工作在 PWM Mode,T2DPX=0,即 CCRP 控制 PWM 的 Period,Period 为 32768us,
CCRA 控制 PWM 的 Duty,Duty 为 4096us;当主计数器与 CCRP 和 CCRA 匹配时翻转 TP2
输出 PWM。
程序范例 (范例
范例 1)
范例程序如附件 pwm1.zip 档案。
注:上面为 T2DPX 为 0 时,即 CCRP 控制 PWM 的 Period,CCRA 控制 PWM 的 Duty 的
程序。
实际输出波形图及说明。
PWM 的周期
为 32.768ms
PWM 的 Duty
为 4.096ms
注:上图为 T2DPX 为 0 时,即 CCRP 控制 PWM 的 Period,CCRA 控制 PWM 的 Duty 的
输出波形。其中 PWM 输出为 Active Low。
6
如何使用 HT66F40 STM PWM 功能
流程图 (范例
范例 2)
注:上面为 T2DPX 为 1 时,即 CCRA 控制 PWM 的 Period,CCRP 控制 PWM 的 Duty 的
流程。
程序说明 (范例
范例 2)
本范例是使用 STM 的 PWM 程序,通过 STM 的 TP2_0 或 TP2_1 观察 PWM 输出。
主程序流程介绍:程序首先所使用到的数据存储器清零初始化。对 CP0C,CP1C 赋值 08H,
7
如何使用 HT66F40 STM PWM 功能
关闭比较器功能。对 ACERL 和 SCOMEN 清零,关闭 A/D 输入功能和 LCD 功能。PC 口设
置为输出模式,且 PC 需设置为低,否则 TP2 输出逻辑相反。PRM2 [5:4]=00 为 TP2 从 PC4
和 PC3 输出,TM2C0[6:4]=000 为选择 TM 的时钟源为 FSYS/4, TM2C1[7:6]=10 为 TPU 工作在
PWM MODE, T2DPX 为 1 时,即 CCRA 控制 PWM 的 Period,Period 为 49152us,CCRP
控制 PWM 的 Duty,Duty 为 1024us, 当主计数器与 CCRP 和 CCRA 匹配时翻转 TP2 输出
PWM。
程序范例
范例程序如附件 pwm2.zip 档案。
注:上面为 T2DPX 为 1 时,即 CCRA 控制 PWM 的 Period,CCRP 控制 PWM 的 Duty 的
程序。
实际输出波形图及说明。
PWM Duty 为
1.024ms
PWM 周期为
49.152ms
注:上图为 T2DPX 为 1 时,即 CCRA 控制 PWM 的 Period,CCRP 控制 PWM 的 Duty 的
输出波形。其中 PWM 输出为 Active High。
结论
本文通过上面 STM PWM Mode 的应用实例,对 STM PWM Mode 的运用进行了阐述,使用
者可根据具体情况来设定所需要的波形。
8

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Download PDF

advertisement