System Timer (STM)

news2024/9/28 7:36:53

文章目录

  • 1. 介绍
  • 2. 功能特性
  • 3. 应用场景
  • 4. 功能介绍
    • 4.1 TIME0 ~TIME6计数器精度与定时范围
    • 4.2 比较器工作原理
    • 4.3 中断处理
  • 5. Ifx Demo
    • 5.1 STM_Interrupt_1_KIT_TC277_TFT
    • 5.2 STM_System_Time_1_KIT_TC275_LK
    • 5.3 SMU_Reset_Alarm_1_KIT_TC275_LK

1. 介绍

Ifx TC37x拥有3个自由运行(上电后启动,不可停止)的64bit计数器,可以提供高精度和长周期的全局系统定时。
在这里插入图片描述

2. 功能特性

  • 自由运行的64bit计数器
  • 所有64位都可以同步读取;
  • 64位计数器中不同的32部分可以同步读取;
  • 灵活的中断服务请求生成;
  • 计数在应用程序重置后自动启动;
  • 支持应用复位或者系统复位, 如果位为ARSTDIS.STMxDIS = 0,应用程序复位信号产生后,STM寄存器复位;ARSTDIS.STMxDIS = 1,则STM寄存器不会接收应用程序复位信号,只接收系统复位信号。
    在这里插入图片描述

3. 应用场景

  • 作为一个操作系统的Tick,用于任务调度的时间片;
  • 一个STM有两个比较器,可以灵活的产生中断触发事件 ;
  • 作为复位触发器,产生复位信号(系统 or 应用)
  • 利用64bit计数器值产生精确延时

4. 功能介绍

  • STM模块数量与内核数量保持一致,此处TC37x有三个内核,所以对应3个STM。
  • 每一个STM下面均有7个不同分辨率的计数器(TIME0~TIME6)
  • 两个比较器CMP0和CMP1,当64位System Timer计数值特定位域(通过配置比较器决定)与CMP0和CMP1寄存值相等时,产生比较事件,用于产生定时中断。
    在这里插入图片描述
    备注:STM计数器是64位宽度,整个计数器需要用两个加载指令读取,硬件为实现对STM内容的同步和一致读取,多加入一个捕获寄存器,读取低32bit(TMI0)值,CAP寄存器捕获高32bit值,最后合为64bit计数器值;

4.1 TIME0 ~TIME6计数器精度与定时范围

在这里插入图片描述

4.2 比较器工作原理

通过配置比较器的MSTARTx和MSIZEx位域,配置比较器的起始位置和宽度,当比较器值与64bit计数器特定连续区域值相等时,产生比较事件。
在这里插入图片描述
在这里插入图片描述
其他:可以设置MSZIE = 0,MSTART = n,来检测低32位的单个位(n = 0~31)

4.3 中断处理

  • ICR.CMPxIR中断标志位软件只有只读权限,只有硬件可以Set/Clear,或者通过ISCR寄存器间接修改;
  • STM复位后,ICR.CMPxIR立即置位(CMPx与64 bit计数器都为0导致),由于ICR.CMPxEN复位同时清0,所以不会产生中断。但具体使用STM比较中断之前,需要先修改CMPx值,并清除中断标志位,避免无效中断产生。
  • 注意图中CMPxIR方向,当软件通过ISCR寄存器设置为1时,并不会产生中断信号出去,仅比较事件可以产生中断信号,故CMPxIR标志位并不会影响中断信号的产生,Ifx提供的Demo,在中断函数中并没有清除IR中断标志位。

在这里插入图片描述

5. Ifx Demo

5.1 STM_Interrupt_1_KIT_TC277_TFT

实现功能:CPU0使用CMP0, 每隔500ms触发一次中断,LED翻转一次;
具体Demo直接看ifx代码即可,主要函数如下:
在这里插入图片描述
①获取系统时钟,根据定时中断时间,计算Ticks值,Ticks = T*f STM
②初始化STM初始化配置结构体(中断优先级,Ticks、挂载到哪个Core等)
③将初始化配置写入到STM0中

5.2 STM_System_Time_1_KIT_TC275_LK

实现功能:记录MCU复位后,MCU运行时间,结果g_time结构体变量中,主要函数如下:
在这里插入图片描述
此处wait函数中,使用的getDeadLine和isDeadLine函数,前者用于计算延时timeout个Ticks后64bit计数器值deadLine,后者用于返回当前计数器值是否大于等于deadLine变量,若大于则说明延时时间到。用户可以使用俩函数,实现无阻塞延时

同样Ifx STM驱动代码中,提供阻塞的延时函数IfxStm_waitTicks,用户可以指定任意STM,函数会在此处延时ticks个时钟后退出。
在这里插入图片描述

5.3 SMU_Reset_Alarm_1_KIT_TC275_LK

在这里插入图片描述
修改SMU Alarm Demo,使用STM0的CMP0触发系统复位。除STM CMP0正常配置以外,还需额外配置RCU模块。此处比较器中断时间配置为0.5s。

测试方法:代码编译完成后,下载到设备,在初始化STM之前打断点停住,全速运行0.5s后,软件重新停在断点处。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2172836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端大模型入门:使用Transformers.js实现纯网页版RAG(一)

我将使用两篇文章的篇幅,教大家如何实现一个在网页中运行的RAG系统。本文将其前一半功能:深度搜索。 通过这篇文章,你可以了解如何在网页中利用模型实现文本相似度计算、问答匹配功能,所有的推理都在浏览器端本地执行,…

C语言-IO

一,阻塞IO与非阻塞IO 简介: IO的本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的 IO 方式(模型),比较常见的有下列三种 阻塞型IO模型 非阻塞型IO模型 多路复用IO模型 在 C 语言中&#…

牛客SQL练习详解 02:条件查询

牛客SQL练习详解 02:条件查询 1、基础排序sql36 查找后排序sql37 查找后多列排序sql38 查找后降序排列 2、基础操作符sql6 查找学校时北大的学生信息sql7 查找年龄大于24岁的用户信息sql8 查找某个年龄段的用户信息sql9 查找chuchu 3、高级操作符sql11 高级操作符练…

认知杂谈91《菜鸟的自我修炼:减少过度干预》

内容摘要:          在投资和生活中,动作过多往往因情绪波动和缺乏计划而引发亏损。历史上的安史之乱和现代投资中的频繁交易都是例证。要管理情绪,首先要认识自己的情绪模式,然后改变消极的思考方式,并通过合…

『USB3.0Cypress』QT基于cyusb_linux_1.0.5开发上位机

文章目录 1.CyUSB Suite2.搭建开发环境3.Cyusb的应用4.疑问解决5.传送门1.CyUSB Suite CyUSB Suite for Linux是一个围绕现有开源用户空间USB库libusb的wrapper。CyUSB套件通过围绕libusb的简化包装器以及在下载固件后提供用于测试外围设备的基础设施,让您快速入门。换句话说…

1.6 物理层

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 物理层的基本概念1.1 定义1.2 作用1.3 物理层的主要任务 2 数据通信的基础知识2.1 常用术语2.2 信号2.3 码元2.4 信道2.5 数据通信系统模型 3 信道的极限容量3.1 基本术…

LabVIEW提高开发效率技巧----合理管理程序架构

在LabVIEW开发中,合理管理程序架构是保持项目可维护性和扩展性的关键。随着项目复杂度的增加,良好的架构设计可以避免代码混乱,并且便于后期的修改和扩展。以下是两种常见且有效的架构管理方式: 1. 面向对象编程(OOP&a…

Sony IMX334LQR-C 1/1.8寸 8.42 M像素

索尼IMX334LQR宽动态超星光级交通监测CMOS 封装:LGA 对⾓线:8.86 mm(类型1/1.8) 索尼IMX334LQR宽动态超星光级交通监测CMOS的参数及规格书资料: IMX334LQR-C是⼀个对⾓线8.86 mm(类型1/1.8)的…

安科瑞Acrel-1000DP分布式光伏监控系统在鄂尔多斯市鄂托克旗巴音乌苏六保煤矿5MW分布式光伏项目中的应用

安科瑞 华楠 摘 要:分布式光伏发电就是将太阳能光伏板分散布置在各个区域,通过小规模、模块化的方式实现电能的并网或独立使用,这种发电方式具有就近发电、就近并网、就近转换、就近使用的特点。近年来,技术进步和政策支持推动了光…

8086介绍

内部结构 执行部件EU(Execution Unit) 包含运算器、通用寄存器组、EU控制单元。 只负责控制,不和外部总线打交道 总线接口部件BIU(Bus Interface Unit) 包含指令队列缓冲器、16位指令指针寄存器IP、16位段寄存器&am…

TypeScript入门 (五)异步编程与前后端交互

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的TypeScript学习总结文档。本文旨在全面介绍 TypeScript 中的异步编程与网络请求,帮助读者深入理解 TypeScript 中的 asyn…

Colorful/七彩虹将星X17 XS 22 Win11原厂OEM系统 带COLORFUL一键还原

安装完毕自带原厂驱动和预装软件以及一键恢复功能,自动重建COLORFUL RECOVERY功能,恢复到新机开箱状态。 【格式】:iso 【系统类型】:Windows11 原厂系统下载网址:http://www.bioxt.cn 注意:安装系统会…

Redis 五大基本数据类型及其应用场景进阶(缓存预热、雪崩 、穿透 、击穿)

Redis 数据类型及其应用场景 Redis 是什么? Redis是一个使用C语言编写的高性能的基于内存的非关系型数据库,基于Key/Value结构存储数据,通常用来 缓解高并发场景下对某一资源的频繁请求 ,减轻数据库的压力。它支持多种数据类型,如字符串、…

Linux安装JDK及配置环境变量超详细教程

微服务Linux解析部署使用全流程 linux系统的常用命令 Linux安装vim超详细教程 Linux安装tomcat及配置环境变量超详细教程 1、上传压缩包 统一创建目录:/usr/local/jdk,将压缩包上传到这个目录下。拖动文件到这个目录下即可。 2、执行解压命令 先进…

ELMO理论

目录 1 优点 2 缺点 3.知识点个人笔记 2018年3月份,ELMo出世,该paper是NAACL18 Best Paper。在之前2013年的word2vec及2014年的GloVe的工作中,每个词对应一个vector,对于多义词无能为力。ELMo的工作对于此,提出了一…

在 Gitlab 中使用 ChatGPT 进行 CodeReview

ChatGPT集成Gitlab,实现自动代码审计并进行评论,为软件开发团队提供高效、智能的代码审查解决方案。支持其他模型如通义千问等 自动触发与及时响应:利用Gitlab的Webhook功能,实现代码提交、合并请求和标签创建等事件的自动触发。一…

安全帽检测系统丨OPENAIGC开发者大赛高校组AI创作力奖

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…

国产化低功耗低延时广覆盖物联网无线通讯方案_LAKI模组

01 物联网系统中为什么要使用LAKI模组。 物联网系统中使用LAKI模组的原因可以归结为以下几个方面: 技术先进性 广覆盖能力:LAKI模组具有卓越的广覆盖能力,其射频SoC芯片接收灵敏度小于-120dBm125kbps,系统通讯距离可达5千米以上…

一款好用的多种格式电子书制作软件

在数字化阅读日益普及的今天,电子书已经成为人们日常生活中不可或缺的一部分。而一款功能强大、操作简便的电子书制作软件,无疑是满足广大用户需求的最佳选择。 这款软件名为“FLBOOK在线制作电子杂志平台”,它支持多种格式输入,如…

设计模式、系统设计 record part02

软件设计模式: 1.应对重复发生的问题 2.解决方案 3.可以反复使用 1.本质是面向对象 2.优点很多 1.创建型-创建和使用分离 2.结构型-组合 3.行为型-协作 571123种模式 UML-统一建模语言-Unified Modeling Language 1.可视化,图形化 2.各种图(9…