【入门-06】系统定时器

编辑:CrazyRabbit
日期:2022年7月28日

本文是英飞凌官方培训的笔记摘录,入门篇第六节课。

1. 总述

STM主要包括了64位的Counter,还有两个比较器,时钟输入主要来源于f_STM,会产生两个比较中断,分别是Interrupt-0和Interrupt-1
image.png
**亮点:**可以产生OS的时钟基,同时产生触发事件;AURIX有多个STM模块,模块数量跟CPU数量一致,每个CPU可以用一个独立的STM作为时钟基

2. 64位计数器

STM有一个64位的计数器,时钟来源于f_STM,而f_STM的时钟源来自CCU(Clock Control Unit),即时钟控制单元。
image.png
System Timer可以通过7个32位宽度的寄存器来读取(如右图的Counter1~Counter7),这7个寄存器对应64位的Systerm Timer的不同范围。
由于计数器是64位宽度,所以需要进行两次读取加载指令(一次读32位)再拼接,两次加载指令期间,计数器仍在计数,所以可能会出现不匹配的现象。为了解决这个问题,引入了(Capture Register)捕捉寄存器。捕捉寄存器在低位被读取时保持高位的值,那么第二个加载指令直接读取捕捉寄存器中的值。

3. 灵活的中断服务请求

STM可以跟两个比较器寄存器的值进行比较,如果Match,则产生match事件。并且通过中断配置也可以产生对应的中断服务请求。
image.png
每个比较器都是通过两个参数来配置的:① START,开始比较的位 ② SIZE,比较的位数。

4. 系统集成

STM的时钟源来自于CCU,是在PLL使能后产生的;STM时钟分频需要用到两个模块:CCU和STM。
image.png
必须确保f_STM与f_SPB(系统外设总线)是整数倍关系,否则计数器值可能会错。

5. 应用案例

典型的应用案例是操作系统的时钟基的产生。在嵌入式多核系统中可能会跑多个操作系统。每个CPU可以跑单独的RTOS和单独的STM,产生独立的时钟基。
image.png

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CrazyRabbit0823

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值