应广单片机 PML1008位 PWM 计数器(Timer2)开发案例说明,PML100 内置 1 个 8 位硬件 PWM 计数器(Timer2)

整理编辑:逐高电子技术开发部 / 日期:2023-8-30

 PWM 计数器(Timer2)
PML100 内置 1 个 8 位硬件 PWM 计数器(Timer2)。图1为 Timer2 硬件框图,Timer2 的时钟源可以来自系
统时钟(CLK),内部高频 RC 振荡器时钟(IHRC),内部低频 RC 振荡器时钟(ILRC),外部晶体振荡器(EOSC),PA0,
PA4 和比较器。寄存器 tm2c 的位[7:4]用来选择 Timer2 的时钟。如果 IHRC 作为 Timer2 的时钟源,当仿真器
停住时,IHRC 时钟仍然会送到 Timer2,所以 Timer2 仍然会计数。

根据 tm2c 寄存器位[3:2]的设定,Timer2 的
输出可以是 PA5,PA3 或 PA4 引脚。利用软件编程寄存器 tm2s 位[6:5],时钟预分频模块提供÷1,÷4,÷16
和÷64 的选择,另外,利用软件编程寄存器 tm2s 位[4:0],时钟分频器的模块提供了÷1~÷31 的功能。在结合预
分频器以及分频器,Timer2 时钟(TM2_CLK)频率可以广泛和灵活,以提供不同产品应用。


Timer2 的 8 位计数器只能执行上升计数操作,经由寄存器 tm2ct,计数器的值可以设置或读取。当 8 位计数
器计数值达到上限寄存器设定的范围时,定时器将自动清除为零,上限寄存器用来定义定时器产生波形的周期或
PWM 占空比。8 位 PWM 定时器有两个工作模式:周期模式和 PWM 模式;周期模式用于输出固定周期波形或中
断事件;PWM 模式是用来产生 PWM 输出波形,PWM 分辨率可以为 6 位、7 位或 8 位。图 11 显示出 Timer2 周
期模式和 PWM 模式的时序图。

Timer2 硬件框图

Timer2 周期模式和 PWM 模式的时序图(tm2c.1=1)

程序选项” GPC_PWM “是指根据需求由比较器结果控制生成 PWM 波形的功能。如果程序选项“GPC_PWM”被选
中后,此时当比较器输出是 1 时,PWM 停止输出;而比较器输出是 0 时,PWM 恢复输出,如图

比较器可控制 PWM 波形的输出波形

使用 Timer2 产生周期波形
如果选择周期模式的输出,输出波形的占空比总是 50%,其输出频率与寄存器设定,可以概括如下:
输出频率= Y ÷ [2 × (K+1) × S1 × (S2+1) ]
Y = tm2c[7:4]:Timer2 所选择的时钟源频率
K = tm2b[7:0]:上限寄存器设定的值(十进制)
S1 = tm2s[6:5]:预分频器设定值 (S1= 1,4,16,64)
S2 = tm2s[4:0]:分频器值(十进制,S2= 0 ~ 31)
例 1:
tm2c = 0b0001_1000,Y=8MHz
tm2b = 0b0111_1111,K=127
tm2s = 0b0000_00000,S1=1,S2=0
输出频率 = 8MHz ÷ [ 2 × (127+1) × 1 × (0+1) ] = 31.25KHz

 

例 2:
tm2c = 0b0001_1000,Y=8MHz
tm2b = 0b0111_1111,K=127
tm2s[7:0] = 0b0111_11111,S1=64,S2 = 31
输出频率 = 8MHz ÷ ( 2 × (127+1) × 64 × (31+1) ) =15.25Hz


例 3:
tm2c = 0b0001_1000,Y=8MHz
tm2b = 0b0000_1111,K=15
tm2s = 0b0000_00000,S1=1,S2=0
输出频率 = 8MHz ÷ ( 2 × (15+1) × 1 × (0+1) ) = 250KHz


例 4:
tm2c = 0b0001_1000,Y=8MHz
tm2b = 0b0000_0001,K=1
tm2s = 0b0000_00000,S1=1,S2=0
输出频率 = 8MHz ÷ ( 2 × (1+1) × 1 × (0+1) ) =2MHz
使用 Timer2 定时器从 PA3 引脚产生周期波形的示例程序如下所示:
Void FPPA0 (void)
{
. ADJUST_IC SYSCLK=IHRC/2
, IHRC=16MHz
, VDD =5V

tm2ct = 0x00;
tm2b = 0x7f;
tm2s = 0b0_00_00001; // 8-bit PWM
,预分频 = 1
,分频 = 2
tm2c = 0b0001_10_0_0; //
系统时钟,输出=PA3
,周期模式
while(1)
{
nop;
}
}

使用 Timer2 产生 8 位 PWM 波形
如果选择 8 位 PWM 的模式,应设立 tm2c [1] = 1,tm2s [7] = 0,输出波形的频率和占空比可以概括如下:
输出频率 = Y ÷ [256 × S1 × (S2+1) ]
输出占空比 = [( K+1 ) ÷ 256]×100%
Y = tm2c[7:4]:Timer2 所选择的时钟源频率
K = tm2b[7:0]:上限寄存器设定的值 ( 十进制)
S1= tm2s[6:5]:预分频器设定值 (S1= 1,4,16,64)
S2 = tm2s[4:0]:分频器值 (十进制,S2= 0 ~ 31)
例 1:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0111_1111,K=127
tm2s = 0b0000_00000,S1=1,S2=0
输出频率 = 8MHz ÷ ( 256 × 1 × (0+1) ) = 31.25kHz
输出占空比 = [(127+1) ÷ 256] × 100% = 50%
例 2:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0111_1111,K=127
tm2s = 0b0111_11111,S1=64,S2=31
输出频率 = 8MHz ÷ ( 256 × 64 × (31+1) ) = 15.25Hz
输出占空比 = [(127+1) ÷ 256] × 100% = 50%
例 3:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b1111_1111,K=255
tm2s = 0b0000_00000,S1=1,S2=0
PWM 输出是高电平
输出占空比 = [(255+1) ÷ 256] × 100% = 100%
例 4:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0000_1001,K = 9
tm2s = 0b0000_00000,S1=1,S2=0
输出频率 = 8MHz ÷ ( 256 × 1 × (0+1) ) = 31.25kHz
输出占空比 = [(9+1) ÷ 256] × 100% = 3.9%

使用 Timer2 定时器从 PA3 产生 PWM 波形的示例程序如下所示:
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/2
,IHRC=16MHz
,VDD =5V
wdreset;
tm2ct = 0x00;
tm2b = 0x7f;
tm2s = 0b0_00_00001; // 8-bit PWM
,预分频 = 1,
分频 = 2
tm2c = 0b0001_10_1_0; //
系统时钟,输出=PA3,PWM
模式
while(1)
{
nop;
}
}

使用 Timer2 产生 6 位 PWM 波形
如果选择 6 位 PWM 的模式,应设立 tm2c [1] = 1,tm2s [7] = 1,输出波形的频率和占空比可以概括如下:
输出频率 = Y ÷ [64 × S1 × (S2+1) ]
输出占空比 = [( K+1 ) ÷ 64] × 100%
tm2c[7:4] = Y:Timer2 所选择的时钟源频率
tm2b[7:0] = K:上限寄存器设定的值(十进制)
tm2s[6:5] = S1:预分频器设定值 (S1= 1,4,16,64)
tm2s[4:0] = S2:分频器值(十进制,S2= 0 ~ 31)
用户可以通过用 TM2_Bit 这个 code option,选择 7 位 PWM 模式替代原来的 6 位 PWM 模式。这时在
上述方程式中的计算因子将从原来的 64 变成 128。
例 1:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0001_1111,K=31
tm2s = 0b1000_00000,S1=1,S2=0
输出频率 = 8MHz ÷ ( 64 × 1 × (0+1) ) = 125kHz
输出占空比 = [(31+1) ÷ 64] × 100% = 50%
例 2:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0001_1111,K=31
tm2s = 0b1111_11111,S1=64,S2=31
输出频率= 8MHz ÷ ( 64 × 64 × (31+1) ) = 61.03 Hz
输出占空比 = [(31+1) ÷ 64] × 100% = 50%

例 3:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0011_1111,K=63
tm2s = 0b1000_00000,S1=1,S2=0
PWM 输出是高电平
输出占空比 = [(63+1) ÷ 64] × 100% = 100%


例 4:
tm2c = 0b0001_1010,Y=8MHz
tm2b = 0b0000_0000,K=0
tm2s = 0b1000_00000,S1=1,S2=0
输出频率= 8MHz ÷ ( 64 × 1 × (0+1) ) = 125kHz
输出占空比 = [(0+1) ÷ 64] × 100% =1.5%

PWM 波形
PWM 波形(图 13)有一个时基(T Period =时间周期)和一个周期里输出高的时间(占空比)。PWM 的频率
取决于时基(f PWM = 1/T Period )。

PWM 输出波形

 

 

深圳市逐高电子有限公司
我们是一家单片机代理、方案设计、芯片烧录、配单等一条龙电子元器件服务商。公司拥有强大的资源优势和完整的产品线, 是台湾应广单片机、 台湾义隆单片机、台湾九齐单片机一级代理。

主要应用于小家电、消费类电子产品,LED照明控制等领域。
我公司设有专门的研发部门,具有雄厚的单片机开发实力,工程师都是具有多年单片机开发应用经验,可为您提供较强的技术支援。
有先进的开发能力,完善的售后服务及技术支援,现已成功开发出一系列电子产品方案。

应广单片机技术资料

  • 台湾应广单片机官网
  • 应广单片机例程
  • 应广单片机编程指南
  • 应广单片机定时器
  • 技术开发工具
  • 应广单片机IDE&仿真器
  • 应广单片机烧录器
  • 代码生成器
模数转换器ADC 如何工作?应广科技官网公布的PMS132/PMS132B8单片机,ADC 装进程的步骤,有 7 个寄存器需要配置

模数转换器ADC 如何工作?应广科技官网公布的PMS132/PMS132B8单片机,ADC 装进程的步骤,有 7 个寄存器需要配置


应广单片机烧录方法,PMS133/PMS134 的烧录脚为 PA3,PA4,PA5,PA6,VDD,GND 这 6 只引脚,随着烧录器版本的不同,每种封装形式烧录方法也不尽相同

应广单片机烧录方法,PMS133/PMS134 的烧录脚为 PA3,PA4,PA5,PA6,VDD,GND 这 6 只引脚,随着烧录器版本的不同,每种封装形式烧录方法也不尽相同


应广单片机YFS1224 系列12bit ADC 型 MTP MCU 带 2K-bit EEPROM,包含两个部分:PFS122B MCU,2Kbit EEPROM,是一款 12bit ADC 类型的 MTP MCU

应广单片机YFS1224 系列12bit ADC 型 MTP MCU 带 2K-bit EEPROM,包含两个部分:PFS122B MCU,2Kbit EEPROM,是一款 12bit ADC 类型的 MTP MCU


应广单片机PMB180 8 位 OTP 型单片机带充电,IC充电器使用与设定,PMB180 的充电器做电性量测V1 电压波形:(CC Mode, R1 = 10Kohm, C1 = 1uF)

应广单片机PMB180 8 位 OTP 型单片机带充电,IC充电器使用与设定,PMB180 的充电器做电性量测V1 电压波形:(CC Mode, R1 = 10Kohm, C1 = 1uF)


单片机选型指南,项目开发如可购买单片机,这里分享干货让你少找弯路,选择微控制器(MCU)的10个步骤,推荐几款常用的单片机

单片机选型指南,项目开发如可购买单片机,这里分享干货让你少找弯路,选择微控制器(MCU)的10个步骤,推荐几款常用的单片机


PMS152G应广科技8 位 OTP SuLED IO 型单片机,工作温度范围:-40°C ~ 85°C,烧录方法,请使用 PDK5S-P-003x 烧录,1.25KW OTP 程序存储

PMS152G应广科技8 位 OTP SuLED IO 型单片机,工作温度范围:-40°C ~ 85°C,烧录方法,请使用 PDK5S-P-003x 烧录,1.25KW OTP 程序存储


应广科技单片机应用开发中PMC-APN003 IO 输出引脚连接长导线时的应用需知,PA3 用于控制 TRIAC,线路接法为 PA3 输出引脚先接100 公分长的导线

应广科技单片机应用开发中PMC-APN003 IO 输出引脚连接长导线时的应用需知,PA3 用于控制 TRIAC,线路接法为 PA3 输出引脚先接100 公分长的导线


应广触摸单片机 PMS161 触摸功能内含一个触摸检测电路,用户可通过寄存器 ESOCR配置触摸模块电源

应广触摸单片机 PMS161 触摸功能内含一个触摸检测电路,用户可通过寄存器 ESOCR配置触摸模块电源


应广科技 PMB183 8 位 OTP 型单片机带充电,内置一个硬件充电器,此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理

应广科技 PMB183 8 位 OTP 型单片机带充电,内置一个硬件充电器,此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理


低功耗高效能语音控制IC,为您的设备赋予语音交互能力,应广科技语音单片机芯片打造极致语音控制体验的IC选择

低功耗高效能语音控制IC,为您的设备赋予语音交互能力,应广科技语音单片机芯片打造极致语音控制体验的IC选择


PMB180应广单片机8 位 OTP 型单片机带充电,内置一个硬件充电器。此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理

PMB180应广单片机8 位 OTP 型单片机带充电,内置一个硬件充电器。此充电器为完全恒流/恒压线性充电,可用于单节锂离子电池充电管理


PMC-APN002 过电压保护应用需知,IO 输入电压高过 VDD 或低于 GND,都可能造成应广单片机损伤,或是因内部电流引发单片机不正常工作

PMC-APN002 过电压保护应用需知,IO 输入电压高过 VDD 或低于 GND,都可能造成应广单片机损伤,或是因内部电流引发单片机不正常工作


语音芯片IC_MCU单片机语音方案,使用Arduino和蓝牙DIY语音控制家庭自动化案例,用语音命令无线控制家用电器和灯光

语音芯片IC_MCU单片机语音方案,使用Arduino和蓝牙DIY语音控制家庭自动化案例,用语音命令无线控制家用电器和灯光


PMS154C单片机8位PWM计数器/比较器使用,选择 PA3 为负输入和 Vinternal R 为正输入,Vinternal R 的电压为(18/32)*VDD,AC 阻容降压供电

PMS154C单片机8位PWM计数器/比较器使用,选择 PA3 为负输入和 Vinternal R 为正输入,Vinternal R 的电压为(18/32)*VDD,AC 阻容降压供电


语音控制IC应广单片机(MCU)如何设计声控灯应用解决方案?将介绍设计过程中的关键阶段,包括组件选择、电路设计、电源、编程和测试

语音控制IC应广单片机(MCU)如何设计声控灯应用解决方案?将介绍设计过程中的关键阶段,包括组件选择、电路设计、电源、编程和测试


开发实力

专业资深的软硬件开发工程师团队,熟悉行业客户产品硬件技术平台解决方案

全球渠道

为客户提供高性价比的产品和服务,满足客户及时快速的电子生产制造需求

品质保证

专业的测试保证团队,保证每批方案的稳定性,兼容性,和抗干扰性

售后服务

专业的技术服务团队,24小时为客户提供各种软硬件的技术支持和售后服务

服务热线

0755-88364040
18902464556

义隆代理

烧录开发

技术支持

申请样品

扫描微信二维码