微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM手记之芯唐M0系列

ARM手记之芯唐M0系列

时间:11-10 来源:互联网 点击:

块支持闹钟功能,(TAR)寄存器用于指示时间闹铃,(CAR)用于指示日期闹铃。

RTC 模块支持时间记步及闹钟中断,通过设定TTR.TTR[2:0],中断提供8级选择1/128, 1/64, 1/32, 1/16, 1/8, 1/4, 1/2 及1 秒。当 RTC 计数器内的值TLR 和CLR 与TAR和CAR相当时,会引发中断标志 (RIIR.AIF)。

基于RTC时钟与系统时钟采用不同的模块,用户对RTC寄存器写入后,必须等待2个RTC时钟周期(60us)后,寄存器内的值才会被更新。寄存器AER 位 15~0 作为RTC允许读/写密码,用于避免掉电时对RTC造成的误写,要访问RTC的寄存器AER,必须写入0xa965以打开访问限制,读写使能后,将会有效512个RTC时钟,之后自动关闭。

10.PWM发生器和捕捉定时器

1)PWM发生器

包含4组PWM发生器,可配置为8个独立的PWM输出,PWM0~PWM7,或4组互补的PWM对,带4个可编程的死区发生器。4组PWM发生器提供8个独立的PWM中断标志,当PWM向下计数周期达到零时触发中断。PWM发生器可以定义为单触发模式或连续输出PWM波形。

每组PWM发生器带有8位预分频,一个时钟除频提供5级时钟源(1, 1/2, 1/4, 1/8, 1/16),两个PWM定时器包括2个时钟选择,两个16位PWM向下计数计数器用于PWM period 周期控制,两个16位比较器用于PWM duty 周期控制以及死区发生。

当PCR.DZEN01置位, PWM0 与 PWM1形成互补的PWM周期,这一对PWM的周期、占空比和死区时间由PWM0定时器和死区发生器0决定;其他PWM互补对类似。

当16位向下计数计数器达到0时,中断请求产生。如果PWM定时器被定义为连续模式,当向下计数器达到0时,会自动重新导入设定值(CNRx)并从新开始运行下一个周期。如果定时器设为单触发模式,向下计数器停止计数,并产生中断请求。比较器数据用于设定脉宽,计数器控制逻辑在计数器计数到比较值时将PWM输出变高。

PWM period 和duty 控制由向下计数的PWM寄存器(CNR)以及PWM比较寄存器(CMR)控制。占空比 = (CMR+1)/(CNR+1).

PWM 频率 = PWMxy_CLK/(prescale+1)*(clock divider)/(CNR+1); xy代表01, 23, 45 或 67, 取决于所选择的PWM通道.

CMR >= 计数值: PWM 输出为高,反之PWM输出低;PWM低脉宽= (CNR-CMR) ; PWM高脉宽=(CMR+1)

PWM定时器具有双缓存功能。寄存器预先设定的值,在一个周期完成后,可以自动重载。PWM计数器值写入CNR0~7,并可从PDR0~7内读出;PWM 控制寄存器(PCR) 的CH0MOD 位定义PWM0是自动重载模式或是单触发模式。当PWM计数器计到0,MCU自动重载CNR0 值到PWM 计数器。双缓存允许CMR字当前运行时改写,下一个周期内值被导入运行。

PWM死区发生器,用于保护器件电源(这一特性用于在开关设备的断开和另一个开关设备的闭合之间插入一个时间缺口,使它们不会处于同时闭合的状态)。该功能产生可编程的延迟时间到PWM上升沿输出,用户通过编程PPRx.DZI确定死区间隔。

2)捕捉定时器

当PWM输出模块的输入捕捉功能使能,可同时用作捕捉功能。捕捉器0和PWM0使用同一个定时器,捕捉器1和PWM1使用另一组定时器,以此类推。在使用捕捉功能之前,必须预先配置PMW定时器。当输入信号有上升沿转变时,PWM计数器的值将存入CRLRx寄存器,当输入信号有下降沿转变时,PWM计数器的值将存入CFLRx寄存器。

设定CCR0[1] (上升沿触发中断有效)和CCR0[2](下降沿触发中断有效),可以使捕捉器通道0作为中断源。同样设定CCR0[17] 和CCR0[18],可以设定通道1。最大的捕捉频率由捕捉中断延迟决定,捕捉中断发生时,软件执行以下三步:a.读PIIR获取中断源;b.读CRLRx/CFLRx获取捕捉值和写

1清PIIR,如果中断延迟在T0完成,捕捉信号在(T0)间隔内必须不能变化,此条件下,捕捉频率最大为1/T0。

每当捕捉控制器触发捕捉中断时,相应的PWM计数器会同时重载CNRx的值,通道低脉宽为(CNR+1-CRLR);通道高脉宽为 (CNR+1-CFLR)。

3)PWM定时器及捕捉配置

PWM定时器开启步骤:

1. 配置时钟选择 (CSR)

2. 配置预分频(PPR)

3. 配置反向打开/关闭,死区打开/关闭,自动重载/单触发模式以及PWM定时器关闭 (PCR)

4. 配置比较器寄存器(CMR) 设定PWM 占空比.

5. 配置PWM计数器寄存器 (CNR) 设定PWM周期.

6. 配置中断使能寄存器 (PIER)

7. 配置PWM输出使能 (POE)

8. 配置相应的管脚GPIO (GPA_MFP)

9. 配置相应的管教到输出模式 (GPIOA_OMD)

10. 使能PWM定时器(PCR)

PWM定时器关闭步骤:

方式 1:设定16位向下计数计数器(CNR)为0,并查看PDR状态。当PDR达到0,关闭PWM定时器 (PCR的CHxEN位). (推荐)

方式2:设定16位向下计数

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top