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

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

MySQL中闪回功能的方案讨论及实现

《MySQL中闪回功能的方案讨论及实现》Oracle有一个闪回(flashback)功能,能够用户恢复误操作的数据,这篇文章主要来和大家讨论一下MySQL中支持闪回功能的方案,有需要的可以了解下... 目录1、 闪回的目标2、 无米无炊一3、 无米无炊二4、 演示5、小结oracle有一个闪回(flashb

MySQL使用binlog2sql工具实现在线恢复数据功能

《MySQL使用binlog2sql工具实现在线恢复数据功能》binlog2sql是大众点评开源的一款用于解析MySQLbinlog的工具,根据不同选项,可以得到原始SQL、回滚SQL等,下面我们就来... 目录背景目标步骤准备工作恢复数据结果验证结论背景生产数据库执行 SQL 脚本,一般会经过正规的审批