NXP应用随记(四):eMios阅读随记-整体功能概述

2023-12-16 08:15

本文主要是介绍NXP应用随记(四):eMios阅读随记-整体功能概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、eMios IP介绍

2、时钟结构

3、通道类型

4、功能介绍

5、中断与DMA

6、EMIOS -通道分配建议(针对S32K312)


1、eMios IP介绍

        Emios是什么?eMIOS提供了独立的通道(UCs),您可以配置这些通道来为不同的功能生成或测量时间事件。

        每个eMIOS实例最多有24个UC通道,2个全局定时器总线和3个专用定时器总线。

        触发eDMA通道并与TRGMUX互连。

        定时器Timer Width 对于S32K388来说是24bit

        Timer Width在手册里面可以看到 A与B寄存器是24bit的,这是因为手册充分考虑了S32K3xx系列芯片都是使用一份手册,但是实际调试的时候,通过调试器可以实际观察到bit位数。      

        Local Channel prescaler width 这个个人理解应该是时钟的分频,4表示4bit也就是最大到16分频。SDK的配置里面最大也就是16分频。

        Number of global counter buses:讲的是Ch23 Count_bus_A、Ch22 Count_bus_F。

        Number of global prescaler:这个表示从锁相环过来的时钟是不分频的,如下图所示。

        Global channel prescaler width:这个表示从CORE_CLK过来的时钟最大能分频数,目前看是8bit也就是256,大于这个值就是错误的了,配置显示如下。

当大于256时,会报错

对应的寄存器如下

  1. eMIOS可以使用它的禁用输入来禁用它的输出,类似于K1 FTM中使用的故障检测输入。(个人理解一下,通过K1 FTM模块检测输入故障,一旦检测到故障,禁止输入,那么对应的输出也是关闭的了)
  2. 除了主计数器总线通道(ch[23])外,每个eMIOS通道都可以触发BCTU。
  3. GTBE_OUT连接到其他eMIOS实例的GTBE_IN输入,设定GTBE位同时打开这些eMIOS实例的内部计数器。

注释:GTBE - Global Timebase Enable

        4、eMIOS采用CORE_CLK时钟,最高160MHz,外部时钟仅在MC和MCB模式下可用。

2、时钟结构

时钟分频最终线路如下:

此时注意两个寄存器,命名的微区别,但是寄存器内部区别非常大。

        UC (EXT) PRE取值范围为1 ~ 16。如果要求宽度> 2位,则使用eMIOS_C2n寄存器。在这种情况下,最后2位eMIOS_C2n。UCEXTPRE[1:0]在eMIOS_Cn中被镜像。UCPRE(1:0)同步自动更改。

使用内部计数器的时候,必须使能UCPREN,整个设计采用单时钟频率。

3、通道类型

eMIOS包含4种不同类型的通道,每种类型都有不同的模式实现。

        通道类型如下:注意一下 Ch TypeX与Ch TypeG有内部计数器,这样子区分的原因是:不同的Ch有不同的功能,实现上需要注意的。

4、功能介绍

eMIOS模块的主要特性是:

− 24个UCs(统一通道)分布在本地计数总线上。

− 由UC23驱动的全局计数器总线A。

− 由UC22驱动的全局计数总线F。

− 通过计数器总线共享的同步时基。

− 每个通道的专用时基,与计数器总线不同

− 全局时钟预分频器(GCP)

− 每通道一个CP

− 为每个UC设置专用的控制和状态寄存器

− 16位宽数据寄存器

− 影子标志寄存器(GFLAG)通过一次读访问访问所有通道标志:备注不是特别清楚这个寄存器到底是干嘛的。

− 为调试目的冻结UC状态的能力

− 电机控制能力

UC的主要特点是:UC也就是通道

-两个双缓冲数据寄存器,An和Bn。

-两个比较值 A和B

插入疑问点:An/Bn与A/B有什么区别呢?

1、Two Double-Buffered Data Registers (An and Bn):

Double-Buffered: 意味着有两个缓冲区,可以在一个缓冲区中写入数据,而在另一个缓冲区中读取数据。这种机制可以提高并发性和系统的响应速度。当一个缓冲区正在被使用时,另一个缓冲区可以被更新。

An和Bn: 这两个寄存器(An和Bn)是用于存储数据的。当一个缓冲区(例如A)正在被写入新的数据时,另一个缓冲区(例如B)可以被读取。这使得在数据更新的同时,可以保持对先前数据的可用性。

2、Two Comparators (A and B):

Comparators: 比较器通常用于将输入信号与一个或多个参考值进行比较。在EMIOS中,有两个比较器,分别命名为A和B。

A和B: 这表示有两个独立的比较器。每个比较器都可以与相应的数据寄存器(An和Bn)中的数据进行比较。当输入信号与参考值相匹配或满足某个条件时,比较器可以触发相应的动作,例如产生中断或更新数据寄存器中的值。

总的来说,An和Bn是用于存储数据的寄存器,而A和B是比较器,用于将输入信号与参考值进行比较。这种结构允许在处理输入信号时实现一些复杂的功能,例如在不中断当前操作的情况下更新数据。

- 一个内部计数器(CNTn[C]),可以在除GPIO之外的所有模式下运行。

- 一个输出触发器,保持要应用到输出引脚的逻辑电平。

- 一个状态寄存器,UC状态n (S0 - S23),标记输入捕获和匹配事件。

- 一个控制寄存器,UC控制n (C0 - C23),用于控制UC操作。

UCs可配置为以下13种工作模式:

当改变MODE[6:0]时,应用软件必须先进入GPIO模式,才能正常复位统一通道的内部功能。

5、中断与DMA

程序体现如下

6、EMIOS -通道分配建议(针对S32K312)

1、比较功能

Type G(7 Channel)全功能:它有内部定时器,但不能被其他通道使用;

Type X(10 Channel)具备OPWFMB:具备内置定时器,MC/MCB定时器总线可用于其他信道;没有IPWM;

Type Y(10 Channel):具备SAIC、OPWMB(频率不可调整),没有内部定时器。

2、PWM输入通道

Type H型适用于PWM测量-需要X型通道运行作为计数器总线(MC模式);

Type G型适用于PWM测量-它具有完整的功能;

3、输出通道:

Type X型适用于PWM输出-频率和周期在OPWFMB模式下可调。

Type G型适用于PWM输出-它具有完整的功能。

每个 eMIOS 模块的下列通道之一可预留用于生成计数器总线:

− Type X Ch22 = counter bus F

− Type X Ch23 = counter bus A

这篇关于NXP应用随记(四):eMios阅读随记-整体功能概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/499805

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关