ATIM (Advanced Timer) 基于一个32比特计数器,可实现计时、测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等功能,支持6路带死区保护的PWM互补输出,支持多路PWM同时换相,并有2路刹车输入可快速将输出切换至安全状态。计数器本身可以进行向上、向下或者向上/向下计数,计数时钟为系统pclk或外部输入信号,并可进行1~65536倍的预分频。ATIM共有6个channel,可以分别独立配置为输入捕获或输出模式。计数,输入捕获和输出比较的结果可以通过中断或者DMA的方式通知系统。ATIM包含主从模式接口,可以进行多级级联,实现多级计数或同步触发等功能。
● 32位向上、向下、向上/向下自动重装载计数器
● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值
● 16位可配置重复计数
● 支持单笔计数模式(OPM),当重复计数完成后自动停止计数器
● 6个独立通道
─ 通道1~3可分别配置为输入或输出模式,其中每个通道可输出两路带死区保护的互补PWM
─ 通道4可配置为输入或输出模式,可输出单路PWM
─ 通道5~6可配置为输出比较模式
● 输入模式
─ 上升沿/下降沿捕获
─ PWM脉宽和周期捕获(需占用两个通道)
─ 可选4个输入端口之一或1个外部触发端口,支持防抖动滤波和预降频
● 输出模式
─ 强制输出高/低电平
─ 计数到比较值时输出高/低/翻转电平
─ PWM输出,可配脉宽和周期
─ 多通道PWM组合输出,可产生有相互关系的多路PWM
─ 单脉冲/重触发单脉冲模式输出
● 主从模式
─ 支持多GPT互连,可在作为主设备产生控制信号的同时,作为从设备被外部输入或其它主设备控制
─ 控制模式包括复位、触发、门控等
─ 支持多GPT同步启动、复位等
● 编码模式输入,控制计数器向上/向下计数
● 支持用于定位的霍尔传感器电路
● 2路刹车输入,支持防抖动滤波,可将输出快速置于安全状态。刹车信号源包括:
─ CPU异常
─ 比较器
─ 外部输入
─ 软件触发
● 如下事件发生时产生中断/DMA:
─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
─ 输入捕获
─ 输出比较
─ 刹车
─ 换相
SF32LB58X的HCPU有两个ATIM,分别是ATIM1和ATIM2。 SF32LB56X的HCPU有一个ATIM,为ATIM1。
ATIM的详细接口,请参考Hardware Timer
以下是ATIM 的使用和GPT基本函数的使用是一样的,只是初始化的时候,将Instance置为ATIMx. 具体使用方式请参考GPT ATIM的增强功能目前还在开发中。