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

相关文章

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②