编辑: 被控制998 | 2019-09-27 |
1 如何使用 如何使用 如何使用 如何使用 HT66F40 ETM Single Pulse 功能 功能 功能 功能 文件编码:AN0243S 简介 简介 简介 简介 HT66Fx0 系列 MCU 提供了一个新的功能单元 TM, 即Timer Modules, 整合了 Timer 和PWM 的功能,提供包括普通 Timer 定时、外部计数、可编程 Duty/Period PWM 输出或单脉冲输 出、输入捕捉等丰富的功能.
TM 依据功能可分为简易型 TM (CTM)、标准型 TM (STM) 和 增强型 TM (ETM). 本文即以 HT66F40 为母体,通过具体范例说明 ETM 中如何产生 Single Pulse 的使用方法. 工作原理 工作原理 工作原理 工作原理 ETM 的核心是一个既可以向上计数,又可以向下计数的
10 位的计数器和三个比较器,具 体结构如下图示: C C R P C C R A T n C C L R C o m p a r a t o r P M a t c h C o m p a r a t o r A M a t c h T n C K
2 ~ T n C K
0 T n O N T n P A U b
7 ~ b
9 3 - b i t C o m p a r a t o r P
1 0 - b i t C o m p a r a t o r A C o u n t e r C l e a r
1 0 - b i t U p / D o w n C o u n t e r T n P F I n t e r r u p t T n A F I n t e r r u p t T P n A P i n I n p u t / O u t p u t b
0 ~ b
9 E d g e D e t e c t o r T n A I O
1 , T n A I O
0 T n A M
1 , T n A M
0 T n A I O
1 , T n A I O
0 T n A P O L T n A O C P o l a r i t y C o n t r o l O u t p u t C o n t r o l T P n A T C K n
1 1
1 0
0 0
0 0
1 0
1 0
0 1
1 1
0 0
1 0
1 1
1 0 f S Y S /
4 f S Y S f H /
1 6 f H /
6 4 f T B C R e s e r v e d T n B F I n t e r r u p t T P n B P i n I n p u t / O u t p u t T n B M
1 , T n B M
0 T n B I O
1 , T n B I O
0 T n B P O L T n B O C P o l a r i t y C o n t r o l O u t p u t C o n t r o l C C R B C o m p a r a t o r B M a t c h
1 0 - b i t C o m p a r a t o r B E d g e D e t e c t o r T n I O
1 , T n I O
0 T P n B -
0 T P n B -
1 T P n B -
2 0
1 增强型 增强型 增强型 增强型 TM 方框图 方框图 方框图 方框图 如何使用 如何使用 如何使用 如何使用 HT66F40 ETM Single Pulse 功能 功能 功能 功能
2 计数器的时钟源可以通过设定 T1CK0~T1CK2 选择为 fSYS/
4、fSYS、fH/
16、fH/
64、fTBC 或者 为TCK1 输入.三个内部比较器:CCRP、CCRA 和CCRB,用于设定比较基准值,CCRP 有3位宽度,只对计数器的高
3 位进行比较,而CCRA 和CCRB 的位数和计数器一样,可 以跟计数器比较所有的位.当设定好相关的寄存器 TM 开始运行后计数器即向上或向下计 数,系统会将预先写入 CCRA 和CCRB 的值与计数器中的值进行比较.计数器在计数溢出 或者与设定 CCRA 和CCRB 的值相等时,可以自动清除为零并产生一个中断信号,同时系 统会根据程序设定产生相应的输出信号.计数器中 TM1DH/TM1DL 的值无法改变,但是可 以读出,只能通过设定 T1ON 位由 0→1 才能将计数器清除为零.T1APOL/T1BPOL 可以对 TP1A 和TP1B 输出极性进行控制,当被设定为 1,可以强制对 TP1A 和TP1B 输出极性翻 转. HT66F40 输出引脚介绍: 引脚 引脚 引脚 引脚 功能描述 功能描述 功能描述 功能描述 TMPC0 PRM2 TP1A CCRA 匹配输出引脚或者输入捕 捉模式输入引脚,外部脉冲输出 引脚,PWM 输出引脚 T1ACP0 :
1 : 使能 TP1A 功能
0 : I/O 功能或者其它功能 TP1APS :
0 : 设定 TP1A 为PA1
1 : 设定 TP1A 为PC7 TP1B_0 CCRB 匹配输出引脚或者输入捕 捉模式输入引脚,外部脉冲输出 引脚,PWM 输出引脚 T1BCP0 :
1 : 使能 TP1B_0 功能
0 : I/O 功能或者其它功能 默认 TP1B_0 为PC0 TP1B_1 CCRB 匹配输出引脚或者输入捕 捉模式输入引脚,外部脉冲输出 引脚,PWM 输出引脚 T1BCP1 :
1 : 使能 TP1B_1 功能
0 : I/O 功能或者其它功能 默认 TP1B_1 为PC1 TP1B_2 CCRB 匹配输出引脚或者输入捕 捉模式输入引脚,外部脉冲输出 引脚,PWM 输出引脚 T1BCP2 :
1 : 使能 TP1B_2 功能
0 : I/O 功能或者其它功能 TP1B2PS :
0 : 设定 TP1B_2 为PC5
1 : 设定 TP1B_2 为PE4 在Si1gle Pulse 模式中,有两种方式触发产生 Single Pulse.一种为软件设定 T1ON 为1,即 开启 ETM,可触发一个 Single Pulse.另外一种为由 TCK1 输入一上升沿,即可自动设定 T1ON,触发一个 Si1gle Pulse. 对于 TP1A 通道,当触发信号来时,根据 T1AOC 设定,TP1A 翻转,计数器开始计数直到 与CCRA 匹配, 计数器清除为零, 置位中断标志位 T1AF、 TP1A 再次翻转, 产生一个 Single Pulse.TP1A 产生 Single Pulse 的宽度由 CCRA 决定. 对于 TP1B 通道,给CCRB 赋一个大于
0 而小于 CCRA 的数值.当触发信号来时,计数器 开始计数直到与 CCRB 匹配,根据 T1BOC 设定,TP1B 翻转,设定中断标志位 T1BF.计 数器计数一直到与 CCRA 匹配清除为零,设定中断标志位 T1AF.TP1B 再次翻转,产生一 个Single Pulse.TP1B 产生 Single Pulse 的宽度为 CCRA 与CCRB 的差值. 如何使用 如何使用 如何使用 如何使用 HT66F40 ETM Single Pulse 功能 功能 功能 功能
3 Single Pulse 模式时序图: 在设定 Single Pulse 模式前,可对 PRM2 寄存器设定相应的位,将TP1A 和TP1B 引脚设定 在不同的 I/O 引脚.再对 TMPC0 寄存器进行设定,选择 I/O 相对应的 TP1A 和TP1B 功能 使能.TP1A 和TP1B 相对应的 I/O 口需输出 Low,否则输出的 Single Pulse 逻辑电平相反. TCK1 对应的 I/O 要设定为输入模式. 如何使用 如何使用 如何使用 如何使用 HT66F40 ETM Single Pulse 功能 功能 功能 功能
4 输出 Single Pulse 的快速使用步骤: 步骤 步骤 步骤 步骤 操作内容 操作内容 操作内容 操作内容 寄存器 寄存器 寄存器 寄存器 设定位 设定位 设定位 设定位 功能描述 功能描述 功能描述 功能描述
1 设定时钟源 TM1C0 T1CK0~T1CK2 选择 ETM 的时钟源
2 设定 CCRA、 CCRB 寄存器 值TM1AH/TM1AL TM1BH/TM1BL 低10 位 脉宽 TM1C1 T1AM1, T1AM0=10 ″10″ 为TP1A 通道匹配输出 Single Pulse 模式
3 设定 ETM 工作 模式 TM1C2 T1BM1, T1BM0=10 ″10″ 为TP1B 通道匹配输出 Single Pulse 模式
4 选择 ETM 的输 出引脚 TMPC0 T1ACP
0、T1BCP
0、 T1BCP
1、T1BCP2 使能 ETM 的相应引脚功能 TM1C1 T1AOC : 0:输出低电平 1:输出高电平
5 设定 TP1A、 TP1B 输出的 初始电平 TM1C2 T1BOC : 0:输出低电平 1:输出高电平 设置输出低电平 或是输出高电平 TM1C1 T1AIO1/T1AIO0 :
11 : 输出 Single Pulse
6 设定 TP1A、 TP1B 的输出功 能TM1C2 T1BIO1/T1BIO0:
11 : 输出 Single Pulse ″11″为输出 Single Pulse TM1C1 T1APOL :
1 : 输出反相
0 : 输出同相
7 设定 TP1A、 TP1B 的输出极 性TM1C2 T1BPOL :
1 : 输出反相
0 : 输出同相 TP1A、TP1B 的输出极性控制 INTC1 MF1E
8 设定中断允许 位MFI1 T1AE、T1BE 使能 ETM 和多个功能的中断 TM1C0 T1ON 0→1 软件启动 Single Pulse 输出
9 开启 ETM TCK1 外部输入 脉冲 PAC.4 0→1 由TCK1 触发启动 Single Pulse 输出 T1PAU 0→1 ETM 暂停工作, 计数器值保持不变 T1ON 1→0 ETM 停止工作,计数器保持不变
10 ETM 停止功能 TM1C0 Counter 与CCRA 匹配 ETM 停止工作,计数器内容不变 TM1C1 T1AIO1/T1AIO0 :
00 :强制 TP1A 输出无效电平
01 :强制 TP1A 输出有效电平
11 设定输出功能 TM1C2 T1BIO1/T1BIO0 :
00 :强制 TP1B 输出无效电平
01 :强制 TP1B 输出有效电平 TP1A/TP1B 被强制输出固定电 平,有效电平是 1,还是
0 由T1AOC/T1BOC 控制 如何使用 如何使用 如何使用 如何使用 HT66F40 ETM Single Pulse 功能 功能 功能 功能
5 应用电路 应用电路 应用电路 应用电路 说明: 对ETM 而言在 Single Pulse 模式,可提供两个通道 (TP1A/TP1B) 输出 Single Pulse. 第一通道输出在 TP1A (引脚 24) 输出;
第二通道输出可以从 TP1B_0 (引脚 10) 输出, 或者从 TP1B_1 (引脚 9) 输出, 或者从 TP1B_2 (引脚 13) 输出.选中任意一个引脚,则第二通道可从任意一个引脚输出,若选中任意两个 引脚, 则第二通道可从任意两个引脚输出, 若三个引脚全选中, 则三个引脚均有 Single Pulse 输出. Si1gle Pulse 产生的触发信号可以有 T1ON 从Low 到High 产生, 也可以通过 TCK1 (引脚 21) 输入上升沿触发.当Single Pulse 在有效电平时,T1ON 要一直保存 High.一旦 T1ON 为Low,Single Pulse 的另外一个边沿立即产生.然而,CCRA 匹配也会使 T1ON 为Low.所以CCRA 也可以控制 Single Pulse 的宽度. 如何使用 如何使用 如何使用 如何使用 HT66F40 ETM Single Pulse 功能 功能 功能 功能
6 S/W 流程图 流程图 流程图 流程图 程序说明 程序说明 程序说明 程序说明( ( ( (范例 范例 范例 范例 1) ) ) ) 本范例是介绍如何使用 ETM 产生 Single Pulse.采用的触发方式为外部 TCK1 输入脉冲触 发. 主程序流程介绍 主程序流程介绍 主程序流程介绍 主程序流程介绍:程序首先所使用到的数据储存器初始化清除为零.对CP0C、CP1C 赋值 08H,关闭比较器功能.对ACERL 和SCOMEN 清除为零,关闭 A/D 输入功能和 LCD 功能.TMPC0 设定为 0F0H,即相应使能了 TP1A、TP1B_
0、 TP1B_
1、TP1B_2 功能. TM1C0 设定为 00000000B,即T1PAU=0,取消了计数器暂停功能.T1CK[2:0]=000B,选 择了 ETM 的时钟源为系统频率的
4 分频.T1ON=0,关闭了 ETM. TM1C1 设定为 10111000B,即T1AM[1:0]=10,选择了 ETM 的TP1A 工作在 Single Pulse 模式. T1AIO[1:0]=11, TP1A 输出 Single Pulse. T1AOC=1, 设定了 TP1A 所产生的 Single Pulse 为高脉冲. TM1C2 设置为 10110000B,即T1BM[1:0]=10,选择了 ETM 的TP1B 工作在 Single Pulse 模式. T1BIO[1:0]=11, TP1B 输出 Single Pulse. T1BOC=0, 设定了 TP1B 所产生的 Single Pu........