当前位置: 首页 > news >正文

S32K144入门笔记(十二):LPIT的解读

1. 概述

        在S32K1xx中,LPIT是一个四通道的低功耗周期中断定时器,支持低泄露模式但不支持等待模式,当其功能时钟禁止时,访问LPIT会出现错误。

        LPIT产生周期性的触发事件于DMA的通道对应关系如下:

表1 LPIT通道与DMA通道的关系
DMA通道号LPIT通道
00
11
22
33

1.1 LPIT输入触发

        LPIT 被设计为在其输入触发端捕获小脉冲,而不受其时钟频率的影响。但为了可靠的连续操作,这些触发器之间的间隔应至少为 10 个 LPIT 总线时钟周期。

1.2 LPIT/ADC触发

        LPIT 可用作候补的 ADC 硬件触发源,通过 TRGMUX 实现。每个 LPIT 通道支持一个预触发和一个触发。LPIT 通道是基于独立计数器实现的。当用作 ADC 触发源时,通道输出会生成 ADC 硬件触发和预触发。

1.3 LPIT定时器的当前值

        对于S32K1xx系列的芯片而言,直接读取CVLAn寄存器不会返回计数器的真实值,如果需要读取计数值的真实值,需要在中断服务程序中读取。而S32K14xW系列的芯片可以直接读取计数器的当前值。

2. 功能描述

2.1 基本信息

        LPIT 是一种具有多个定时器通道的低功耗周期性中断定时器。当一个定时器达到编程计数时,相应的定时器通道将生成预触发和触发输出信号,并且这些预触发和触发输出可用于触发设备上的其他模块。

  • 定时器可以配置为使用以下方式控制:
    • 外部触发(从LPIT模块的外部触发)
    • 内部触发(通过定时器内部的其他通道触发)
  • 定时器的通道可以被级联,形成宽度更宽的定时器
  • 根据定时器模式,定时器通道可能会重新加载并再次计数,或在达到编程计数后停止(也就是循环或单次模式)

定时器触发接口如图1所示。

  • CPU接口提供时钟、复位、寄存器读/写总线接口,并处理来自LPIT的中断
  • 来自LPIT的触发输出信号可以触发芯片上的其他外设模块,如DMA、ADC和其他模块
  • 其他定时器模块可以向LPIT模块提供触发输入,以控制LPIT定时器通道何时启动
图1 LPIT的接口
  •  比较模式

        当启用时,定时器会递减并生成输出预触发和触发输出。触发输出比预触发脉冲延迟 1 个时钟周期。每个定时器通道的启动、重新加载和重新启动都可以通过控制位进行控制。定时器可以配置为始终从编程的起始值递减,或在选定的触发输入或前一个通道超时(当通道链接时)时递减。

        通过级联定时器通道,应用程序可以实现更长的超时持续时间。

  • 捕获模式

        当选定的触发输入被置位时,定时器的值会被捕获(在定时器值寄存器中),定时器可用于进行测量。该定时器能够支持一次性或多次测量(如频率测量)。

        注:定时器通道在异步时钟上运行,该时钟独立于寄存器读/写访问时钟。也就是说定时器的通道是基于外设功能时钟运行的。正常操作是依靠于两个时钟域之间的同步。

2.2 功能框图

       模块的功能框图如图2所示,包括一个全局寄存器集(所有定时器通道共用),以及每个定时器通道的寄存器(用于控制各自的定时器通道)。对这些寄存器的访问与异步外设时钟同步,然后影响定时器通道寄存器。

图2 LPIT模块功能框图
  • 每个定时器通道都包含一个32位计数器,用于加载每个外围时钟正沿的起始值和递减计数
  • 在达到零值(通道定时器超时)后,会生成一个触发输出。
  • 计数器启动是使用定时器使能寄存器控制位、外部或内部触发器或通过之前的通道超时(使用定时器链时)来控制的。
  • 通道定时器超时后,还会设置一个中断标志位,来通知CPU定时器超时

2.3 不同运行模式的操作

表2 不同运行模式下的LPIT的操作
运行模式LPIT的操作
Run正常操作
Stop如果打盹使能位(MCR[DOZE_EN])被设置,且 LPIT 正在使用在停止模式期间仍保持运行的外部或内部时钟源,则可以继续运行。
Debug如果调试使能位(MCR[DBG_EN])被设置,则可以继续运行。

2.4 初始化

        参考用户手册表48-4.

2.5 定时器的模式

定时器模式操作
32位周期计数器

计数器将加载,递减到0

置位中断标志并断言输出预触发

双16位周期计数器

计数器将加载,递减到0,低16位计数器递减到0

断言输出预触发

高16位计数器递减到0

置位中断标志位并否定输出预触发

32位触发累加器

计数器将在第一个触发上升沿加载,然后在每个触发上升沿递减到0

置位中断标志并断言输出预触发

32位触发器输入捕获

计数器将加载0xFFFF_FFF,然后递减到0

如果检测到触发上升沿,然后,它将把当前计数器值的反码存储在计时器值寄存器中,置位中断标志并断言输出预触发

2.6 定时器的触发控制

        各种可编程位控制触发输入和定时器的操作方式。TRG_SEL 和 TRG_SRC 选择定时器触发:

  • 触发选择(TRG_SEL)从所有其他通道的触发输出中为该通道选择输入触发。
  • 触发源(TRG_SRC)在内部触发和该通道的外部触发输入之间进行选择。

        所选的触发通过 TROT、TSOI 和 TSOT 位的配置影响定时器的操作。

If=Then

TSOI

定时器在中断时停止

1

则计数器在定时器中断标志(MSR[TIFn])断言时停止。要重新加载和递减,需要:

触发器(如果TSOT=1)

T_EN上升沿(如果TSOT=0)

0计数器在溢出后不停止

TROT

定时器在触发时重载

1计数器在每次触发时加载
0在每个T_EN上升沿或超时上升沿(捕获模式中不使用超时)加载计数器
TSOT
定时器在触发时开始
1计数器将在触发时开始递减。后续触发器将被忽略,直到计数器超时。
0计数器在下一个时钟沿立即递减。当通道处于链式或捕获模式时,TSOT不起作用

        在不同的定时器模式下,这些可编程位对定时器操作的影响不同:

定时器模式哪些位影响定时器操作
32位周期计数器所有位(TSOT、TSOI、TROT)都会影响定时器操作。
双16位周期计数器
32位触发累加器

只有TSOI位控制定时器功能。

TROT和TSOT位对定时器操作没有影响。

32位触发器输入捕获

只有TSOI和TROT位控制定时器功能。

TSOT位对定时器操作没有影响。

2.7 通道链路

        单个定时器通道可以链接在一起,以实现更大的超时值。链接定时器通道会使它们以“嵌套循环”的方式工作,从而产生有效的超时值TVALCHn×(TVALCHn-1+1)。

        通过在相应通道的 TCTRLCHn 寄存器中设置 CHAIN 位来将通道链接起来。当一个通道被链接时,该通道的定时器会在前一个通道的超时脉冲下递减,而不管定时器模式(MODE 位)如何。如果通道定时器(通道 'n')链接到前一个通道的定时器(通道 'n - 1'),则 TSOT 位没有任何作用。

具体各种模式在官方手册中有详细介绍。

相关文章:

  • MySQL单表查询大全【SELECT】
  • .NET_Prism基本项目创建
  • Java实体类转JSON时如何避免null值变成“null“?
  • TypeORM 和 Mongoose 是两种非常流行的 ORM 工具
  • Kubernetes pod 控制器 之 Deployment
  • pytorch中的基础数据集
  • CSS引入方式、字体与文本
  • Flask中使用WTForms处理表单验证
  • 前端学习记录:解决路由缓存问题
  • 东芝2323AMW复印机安装纸盒单元后如何添加配件选项
  • 【商城实战(38)】Spring Boot:从本地事务到分布式事务,商城数据一致性的守护之旅
  • 嵌入式系统中的Board Support Package (BSP)详解:以Xilinx Zynq为例
  • AndroidStudio+Android8.0下的Launcher3 导入,编译,烧录,调试
  • BSP、设备树和HAL的关系:以Xilinx Zynq为例与PC BIOS的对比
  • nginx请求限流设置:常见的有基于 IP 地址的限流、基于请求速率的限流以及基于连接数的限流
  • 结构体定义与应用
  • 查看分析日志文件、root密码不记得了,那应该怎么解决这些问题
  • Web开发-PHP应用鉴别修复AI算法流量检测PHP.INI通用过滤内置函数
  • SGMEA: Structure-Guided Multimodal Entity Alignment
  • 【AWS入门】AWS云计算简介
  • 自助建站平台哪家好/成都高端品牌网站建设
  • jsp网站维护/怎么制作网页推广
  • 建一个门户网站要多少钱/成都网站建设方案优化
  • 武昌网站建设/锦绣大地seo
  • 做化工的外贸网站都有什么意思/百度投诉电话客服24小时
  • 天津企业网站排名优化/网络推广是什么