ARM-(一)定时器:PWM定时器,看门狗WTD定时器

定时器Timer

  • 总结
  • PWM
    • PWM简介
    • PWM实现过程
  • 看门狗定时器(WTD)
    • WTD概述
    • WTD实现过程

以三星芯片S5P6818_Datasheet为例:
soc:S5P6818
core:A53

总结

定时器设计思路:
(1)时钟源(主频) --> 预分频(一级) --> 选择分频(二级) …:得到分频后的时钟。
(2)计数递减寄存器 = 计数缓存寄存器;//把 计数缓存寄存器中的赋值给计数递减寄存器;
(3)计数递减寄存器在分频后的一个周期到来时,自动减1;
(4)与比较寄存器值对比,控制高低电平的输出和占空比。

PWM定时器,看门狗WTD定时器是硬件产生的中断,属于irq中断。不是软中断:swi指令操作寄存器产生。

PWM

PWM简介

  • PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码。
    也就是说通过调节占空比的变化来调节信号、能量等的变化。
  • 占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比。
    例如方波的占空比就是50%。

PWM实现过程

  • S5P6818有5个32位脉冲宽度调制(PWM)定时器。这些计时器生成内部中断ARM子系统。
    此外,定时器0、1、2和3还包括一个驱动外部I/O信号的PWM函数。
    定时器0中的PWM有一个可选的死区发生器功能来支持大电流设备。
    定时器4内部计时器没有输出引脚。

  • 计时器使用APB-PCLK作为源时钟。
    定时器0和1共享一个可编程的8位预分频器,为PCLK提供了第一级的划分。定时器2、3和4共享一个不同的8位预调器。
    每个定时器都有自己的专用时钟除法器,它提供第二级的时钟除法器(除法器除以2、4、8或16)。

  • 每个定时器都有自己的由定时器时钟驱动的32位递减计数器。每个递减计数器最初是从计数缓冲定时器(TCNTBn)加载赋值的。当递减计数器值减到0时,将生成定时器中断请求,以通知CPU定时器操作已经完成。当定时器递减计数器为0时,相应的计数缓冲定时器(TCNTBn)的值又会自动重新加载到下一个计数器递减计数器中,开始下一个循环。
    如果在计数器运行期间,通过TCONn清除定时器的使能位, 控制着TCNTBn的值将不会再次加载到递减计数器中。
    //意思是:经过分频后的时钟源,每过一个周期,则递减计数器中的值就自动减1。

  • PWM功能使用依赖TCMPBn比较寄存器中的值。如果递减计数器的值与TCMPBn比较寄存器的值相等,则定时器控制逻辑将改变输出的电平。因此比较寄存器TCMPBn决定了PWM输出的高、低电平的时间。TCNTBn和TCMPBn寄存器都是双缓冲的,因此它允许在一个周期的中间更新计时器参数,但是新值直到当前计时器周期完成后才生效。
    //意思是:TCNTBn中的值赋值给递减计数器,当递减计数器中的值递减到和TCMPBn寄存器中的值相等时,定时器逻辑控制器输出发生电平取反跳转(高->低,低->高),但是递减计数器继续递减直到为0时,TCNTBn中的值重新加载给递减计数器。形成PWM高、低脉冲信号。

  • 初始化TCNTBn寄存器,使用159(50 + 109)和TCMPBn,使用109。
    启动计时器:设置启动位并手动将此位更新为OFF。将159的TCNTBn值加载到下位计数器中。
    然后,将输出TOUTn设置为low。在TCMPBn寄存器109中,当down- counter将TCNTBn的值向下计数到数值时,输出将从低变高。当下计数器达到0时,它会生成一个中断请求。下位计数器自动重新加载TCNTBn。这就重新启动了这个循环。下图说明了单个PWM通道的时钟生成方案:

ARM-(一)定时器:PWM定时器,看门狗WTD定时器_第1张图片
ARM-(一)定时器:PWM定时器,看门狗WTD定时器_第2张图片
ARM-(一)定时器:PWM定时器,看门狗WTD定时器_第3张图片
ARM-(一)定时器:PWM定时器,看门狗WTD定时器_第4张图片

看门狗定时器(WTD)

WTD概述

一般很多嵌入式设备工作在无人环境下,不能实时监测系统工作的状态,因此需要用看门狗定时器来自动检测重启设备。看门狗定时器是系统内部的定时器,没有外部电子器件。

  • 看门狗定时器
    用于检测系统设备在受到噪声和系统误差等故障干扰造成设备死机,可以通过看门狗定时器产生一个复位信号 或 请求中断服务,自动恢复让系统重新运行。
  • WDT与PWM定时器的不同之处在于WDT产生复位信号。

WTD实现过程

ARM-(一)定时器:PWM定时器,看门狗WTD定时器_第5张图片

1)PCLK经过一级分频器和二级选择器后产生看门狗时钟后,通过计数逻辑模块WTCNT,开始计数。

2)WTDAT是预先存放的计数初值,WTCNT是减量计数模块。当WTCNT从WTDAT赋的值减到0的时候,如果还没有更新重载WTCNT,则认为没有喂狗,系统死机产生reset复位信号。
注意:更新赋新值的寄存器是WTCNT,不是WTDAT。

3)发出reset 信号,强制系统重启
ARM-(一)定时器:PWM定时器,看门狗WTD定时器_第6张图片

你可能感兴趣的:(ARM-(一)定时器:PWM定时器,看门狗WTD定时器)