TC3xx芯片STM介绍

原创 汽车电子嵌入式 2023-09-26 08:00

前言

基于Aurix芯片的Davinci工具链的MICROSAR OS的系统Counter(系统心跳)使用的硬件时钟STMSystem Timer),在学习OS前有必要了解下Aurix芯片的STM模块。本文就来详细介绍下Aurix芯片的STM模块。

缩略词

简写

全称

STM

System Timer

CMCON

Compare Match Control Register

参考文档:

1. TriCoreTM TC1.6.2 core architecture manual

2. AURIXTC3XX_um_part1_v2.0.pdf

3. TC37x_appx_um_v2.0.pdf


注:本公众号文章中使用了一些第三方工具和文档,若有侵权,请联系作者删除!

正文

1. STM硬件资源

1.1 STM硬件单元

TC37x芯片有3STM模块,每个STM模块可以产生两个SRx_INT中断信号(通过STM模块的Compare功能实现,下文介绍),Davinci OS中的硬件定时器就是使用STM模块的SRx_INT中断信号

 

 

1.2 STM时钟

系统冷启动或者系统复位后,fSTM=50MHz,也就是fSTM的一个tick1/(50*(10^6)) = 0.00000002 s = 20ns.


Note: TC37x的时钟系统后面的文章再介绍,本文默认系统启动后fSTM就为50MHz.



1.3 STM中断源

1.1章节中介绍了TC37x3STM硬件单元,每个STM硬件单元可以产生两个中断信号,中断号计算公式如下截图所示:

e.g. STM0SR0_INT = 0x300 + 0*8 + 0*4 = 0x300 = 768.


 

2. 功能描述

2.1 功能特色

  • 一个不受约束的64-bit计数器,也就是能产生一个0 – 2^64的计数,如果我们使用fSTM = 50MHz,那么计数器的最大计数值对应的最大时间为:2^64 * 20ns = 4270079.647.. = 11698 年,也就说实际使用中这个计数器不可能溢出

  • 这个64b-bit计数器可以同步读出。理论上,TC37x32-bit系统,每个指令周期顶多能读32-bit数据,TC37x芯片是怎么保证64-bit计时器值同步读出来的了?-- 通过STM_CAP寄存器机制,后面介绍。

  • 64 位计数器的不同 32 位部分可以同步读STM64-bit提供了632-bit Timer可以同步读出来,后文介绍。

  • 基于与部分 STM 内容的比较匹配,灵活地生成服务请求。通过STM_CMPx的比较机制灵活的产生服务请求事件,后文具体介绍。

  • 系统启动后,STM自动启动。

  • 如果ARSTDIS.STMxDIS被清除,则Application Reset也会Reset STM registers;如果ARSTDIS.STMxDIS没有被清除,则Application Reset不会Reset STM registers只有System Reset才会Reset STM registers.

2.2 STM计时器Timer

STM作为Timer时,可以提供7个不同基准的Timer


STM_TIM0: 基准为2^0 tick = 1 tick = 20 ns,也就是每20 ns,计数器加1.


STM_TIM1: 基准为2^4 tick = 16 tick = 320 ns


STM_TIM2: 基准为2^8 tick = 256 tick = 5120 ns = 5.120 us


STM_TIM3: 基准为2^12 tick = 4096 tick = 81920 ns = 81.92 us


STM_TIM4: 基准为2^16 tick = 65536 tick = 1310720 ns = 1.31072 ms


STM_TIM5: 基准为2^20 tick = 1048576 tick = 209715220 ns = 0. 20971522 s


STM_TIM6: 基准为2^32 tick = 4294967296 tick = 85899345920 ns = 85.899345920 s


理论上,TC37x32-bit系统,每个指令周期顶多能读32-bit数据且在读取32-bit数据的时候STM是不会停下来等你再读另一个32-bit的数据的,TC37x芯片是怎么保证64-bit计时器值同步读出来的了?-- 通过STM_CAP寄存器机制,每次读取其中一个寄存器 TIM0 TIM5 时,它都会锁定 STM 高部分的内容。因此,在读取下部时, CAP 完全同时保存计时器的上限值。然后,第二个读取操作将读取 CAP 的内容以获得完整的计时器值。


2.3 STM比较器功能

64 位系统计时器的内容可以与 CMP0 CMP1 寄存器中存储的两个比较值的内容进行比较。服务请求可以在 STM CMP0 CMP1 寄存器的比较匹配上生成。


2.3.1 STM比较功能寄存器

CMCON(Compare Match Control Register)寄存器的MSIZEx位域配置CMPx寄存器从0-bit开始多少位用来和STM比较,MSTARTx位域配置STM Counter的哪一位开始和CMPx寄存器比较。

 

 

 

2.3.2 STM比较器功能示例

如下图所示,对应的CMCOM的配置为:

  • MSIZE0 = 10001B = 17D; MSTART0 = 01010B = 10D


  • MSIZE1 = 00111B = 7D; MSTART1 = 00111B = 7D


MSIZE0 = 10001B = 17D : Compare Register00-bit开始的7bit用于比较


MSTART0 = 01010B = 10D : STM的第10-bit位开始的7bit比较

CMP1类似……


 

Compare成功后,就会产生EventEvent可用于配置中断。


2.3.3 STM比较器中断控制

 


Compare中断事件产生举例:


1:配置STMx_CMCON. MSTARTx位域,设置比较寄存器在STM中的起始位置


2:配置STMx_CMCON.MSIZEx使用STM_CMPx的宽度(多少bit


3:配置STM_CMPx. CMPVAL[31:0]定时器值


4:配置STM_ICR.CMPxOS到时触发STMIR0还是STMIR1中断


5:配置STM_ICR.CMPxEN使能中断,等待定时中断触发


中断触发后:在中断服务例程(ISR,中断服务函数)里设置STM_ISCR.CMPxIRR=1清除中断,并重复上述第5步操作重新使能中断,等待中断触发


2.4 配置STM是否在Debug时停止

OCS. SUS[27:24]位域配置为0,STM计时不会被外部调试器的操作打断;  OCS. SUS[27:24]位域配置为2, 在使用调试器Stop程序的时候,STM会同步Stop计时。


 

3. AUTOSAR OS中的配置

3.1 OsHardwareTimerChannels

DavinciSIP包中硬件相关的配置都是默认配置好,TC37x芯片有三个STM定时器,每个STM有两个通道(也就每个STM能产生两个中断事件)。


 

3.2 OsIsrs中配置STM中断

OsIsrs中关于STM产生的中断也是默认配置好的,使用三个STMChannel0通道。


 

3.3 OsCounters引用STM Timer

OsCounsters使用硬件定时器STM,需要引用STM的配置。


 

4. 总结

STM一般用作OsTimer,如果OS中配置使用了STM,那么应用就不能再使用了。具体怎么使用,那就是Os的静态代码实现的了。作为学习,我们理解了STMCompare Operation机制就能去阅读Os是怎么配置寄存器实现Timer功能的了。

 



End

「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」


点击文章最后左下角的阅读原文可以获取更多信息


或者复制如下链接到浏览器获取更多信息

https://blog.csdn.net/qq_36056498/article/details/132125693



注:本公众号文章中使用了一些第三方工具和文档,若有侵权,请联系作者删除!


推荐阅读

汽车电子嵌入式精彩文章汇总第一期:20210530-20230703

AUTOSAR 架构下EcuM唤醒源事件详解

AUTOSAR架构下NVM Block连续写及Default Value问题分析

AUTOSAR架构下NvM模块详细分析

AUTOSAR架构下报文掉线超时不上报问题分析

Classic Autosar下的以太网通讯架构概览

通信中间件Someip服务化通信

AUTOSAR架构下Fee详细分析

TC37x芯片FLASH基本概念介绍

AUTOSAR架构下Fls详细分析

TC3xx芯片DMU介绍

TC3xx芯片MPU介绍

End



欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号


评论
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 145浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 134浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 658浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 122浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 74浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 194浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 159浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 595浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 321浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 175浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦