NXP应用随记(五):eMios功能点阅读随记

2023-12-17 09:28

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

目录

1、概念点

2、eMios功能点

2.1、eMIOS - Single Action Input Capture (SAIC)

2.2、eMIOS - Single Action Output Compare (SAOC)

2.3、eMIOS - Double Action Output Compare (DAOC)

2.4、eMIOS - Pulse/Edge Counting (PEC) – Single Shot

2.5、eMIOS - Pulse/Edge Counting (PEC) – Continuous Mode

2.6、eMIOS - Input Pulse Width Measurement (IPWM)

2.7、eMIOS - Input Period Measurement (IPM)

2.8、eMIOS - Modulus Counter Mode (MC) – UP Counter

2.9、eMIOS - Modulus Counter Buffer Mode (MCB) – UP Counter

2.10、eMIOS - Modulus Counter Buffer Mode (MCB) – UP/DOWN Counter

2.11、eMIOS - Output Pulse Width and Frequency Modulation Buffered (OPWFMB)

2.12、eMIOS -中心对齐输出脉宽调制与死区插入缓冲(OPWMCB)

2.13、eMIOS -输出脉宽调制缓冲(OPWMB)

2.14、eMIOS -带触发器的输出脉宽调制(OPWMT)

3、RTD组件详细介绍

3.1、eMIOS -概述的eMIOS组件的RTD

3.2、eMIOS - Emios_Mcl_Ip组件

3.3、GPT的使用

3.4、OCU的使用

3.5、PWM使用

3.6、ICU的使用


1、概念点

An与Bn

        EMIOS模块包含两个通道,每个通道都包含两个双缓冲数据寄存器,分别称为A和B。这两个寄存器分别为An和Bn,其中n是通道的编号,通常为0或1。

        具体来说,每个通道都有两个双缓冲数据寄存器:

        ·An 寄存器: 这是通道n的一个缓冲区,用于存储数据。当通道正在使用An缓冲区时,可以在后台准备并更新Bn缓冲区的数据。

        ·Bn 寄存器: 这是通道n的另一个缓冲区。当An缓冲区正在被使用时,可以在Bn缓冲区中准备下一组数据,以便在切换缓冲区时,新的数据可以立即被通道使用。

        这种双缓冲的设计允许在一个缓冲区传输数据的同时,另一个缓冲区可以准备新的数据,以保证连续的数据传输。这对于实时控制和高效的数据处理非常有用,因为可以在不中断当前操作的情况下进行缓冲区的切换,确保数据的连续性。

        在使用EMIOS模块进行编程时,程序员可以操作这些An和Bn寄存器,以实现对通道的控制和数据的处理。这样的结构通常用于处理定时器、PWM(脉冲宽度调制)、捕获和比较等应用。

        通过An[A]、Bn[B]、ALTAn[ALTA]来访问影子寄存器。

        每个An[A]实例都有一个独立的关联实例AS1和AS2。在某些UC模式下,还可以使用ALTAn[ALTA]访问AS2。

        注意的是下文中的不同模式,对An[A]、Bn[B]、ALTAn[ALTA] 的操作直接影响着影子寄存器,S32K3XX里面个人理解,影子寄存器存在,但是用户不可见,也只能通过An[A]、Bn[B]、ALTAn[ALTA] 的方式去操作,怎么操作。

2、eMios功能点

2.1、eMIOS - Single Action Input Capture (SAIC)

Type G\X\Y\H可用

返回输入信号边缘匹配的计数器总线的值。

-可以使用内部或模数计数器。

-是否可以匹配上升,下降或切换由EDPOL, EDSEL的状态决定

关注点:

        ·当检测到边缘时,设置标志并在寄存器A2中捕获计数器总线值。用户从UCA[n]寄存器中读取该值。

        ·UCB[n] =已清除,无法写入。

2.2、eMIOS - Single Action Output Compare (SAOC)

Type G\X\Y\H可用

在计数器总线匹配上生成输出。

- 可以使用内部或模数计数器

- 可以设置输出到高,低或切换,根据EDPOL和EDSEL的状态

关注点:

·创建匹配所需的计数器总线值写入UCA[n] (A2n), UCA[n] (A2n)缓冲到A1。

·比较器匹配A1将产生一个输出事件,该事件由EDPOL和EDSEL的状态定义。

2.3、eMIOS - Double Action Output Compare (DAOC)

Type G、H可用

产生一个输出脉冲。

-可以使用内部或模数计数器

-可配置为2个HIGH边或2个LOW边(EDPOL位)测量。

A2更新进A1再更新进A。

关注点:

1、将所需的脉冲前沿写入UCA[n] (A2n),将下降沿写入UCB[n] (B2n),缓存到A1和B1。

2、在比较器a匹配中,输出被设置为EDPOL的值。如果MODE0=1,则设置FLAG

3、在比较器B匹配中,输出被设置为EDPOL的倒数。设置FLAG。

2.4、eMIOS - Pulse/Edge Counting (PEC) – Single Shot

Type G 可用

返回在期望的时间窗口内在输入上检测到的脉冲或边缘的数量。

关注点:

·MODE[0] = 1位选择Single Shot操作。

·极性和触发边由EMIOSC[n]寄存器中的EDSEL和EDPOL位选择.

·A1保存时间窗口的开始时间,寄存器B1保存时间窗口的停止时间.

·另外,寄存器A2总是保存最新的可用测量值。

·比较器A和所选时间基之间的下一次匹配没有效果,直到对寄存器A执行新的写入操作。

2.5、eMIOS - Pulse/Edge Counting (PEC) – Continuous Mode

Type G 可用

关注点:

·MODE[0] = 0位选择连续操作。

·极性和触发边由EMIOSC[n]寄存器中的EDSEL和EDPOL位选择

·A1保存时间窗口的开始时间,寄存器B1保存时间窗口的停止时间

·另外,寄存器A2总是保存在第一个FLAG发生后的任何时间提供一致数据的最新可用测量值。

2.6、eMIOS - Input Pulse Width Measurement (IPWM)

Type G 、H可用

确定输入脉冲宽度的宽度(在计数器总线时钟刻度中)。

-可以使用内部或模数计数器

-可以通过EDPOL位的状态来测量HIGH或LOW脉冲(EDPOL=1表示HIGH)

关注点:

-前沿被捕获到B2[n]中。(EDPOL确定前缘是高还是低)。

-后沿捕获到A2[n],并设置Flag

-脉冲宽度由UCAn (A2)减去UCBn (B1)计算。

        警告(溢出的时候)-如果脉冲已经跨越了一个计数器总线周期,那么需要小心修改计算....宽度= (UCAn +计数器周期)- UCBn。

2.7、eMIOS - Input Period Measurement (IPM)

Type G 、H可用

确定输入脉冲宽度的周期(以计数器总线时钟刻度计)。

-可以使用内部或模数计数器

-可配置为2个HIGH边或2个LOW边(EDPOL位)测量。

      关注点:

  当检测到所选极性的边缘时,将计数器值捕获到A2[n]和B2[n]中,将先前保存在B2[n]中的数据捕获到A1[n]和B1[n]中,并设置Flag。

        周期由UCAn (A2)减去UCBn (B1)计算。

        注意-如果输入信号的周期已经跨越了一个计数器总线周期,那么需要注意修改计算....

        宽度= (UCAn +计数器周期)- UCBn

2.8、eMIOS - Modulus Counter Mode (MC) – UP Counter

Type G 、H可用

生成一个时基,可通过内部计数器时基与其他通道共享。

- 可使用内部或外部(输入通道引脚)计数器。

关注点:

•在比较器a匹配上,FLAG被设置,内部计数器被设置为值$0。

•A2寄存器的变化使A1寄存器在下一个时钟更新

·注意-如果进入MC模式时,内部计数器值高于寄存器UCA[n]值,那么在匹配A1之前,它将在最大计数器值($FFFFFF)处包装。

2.9、eMIOS - Modulus Counter Buffer Mode (MCB) – UP Counter

Type X可用

生成可通过内部计数器库与其他通道共享的时间库。

-可以使用内部或外部(输入通道引脚)计数器。

关注点:

·在比较器a匹配上,设置FLAG,并将内部计数器设置为值$1。

·为了实现平稳的转换,当内部计数器达到$1时,A2寄存器的变化使A1寄存器更新。

·注意-如果进入MCB模式时,内部计数器值高于寄存器UCA[n]值,那么在匹配A1之前,它将在最大计数器值($FFFFFF)处包装。

2.10、eMIOS - Modulus Counter Buffer Mode (MCB) – UP/DOWN Counter

Type G 、X可用

生成可通过内部计数器库与其他通道共享的时间库。

-可以使用内部或外部(输入通道引脚)计数器。

关注点:

在比较器a匹配上,设置FLAG,并将内部计数器设置为值$1。

为了实现平稳的转换,当内部计数器达到$1时,A2寄存器的变化使A1寄存器更新。

2.11、eMIOS - Output Pulse Width and Frequency Modulation Buffered (OPWFMB)

Type G 、X可用

生成简单的输出 PWM 信号。

- 需要内部计数器

- EDPOL 允许在高电平有效或低电平有效占空比之间进行选择。

关注点:

占空比= UCA[n] (A1) + 1,周期= UCB[n] (B1) + 1

比较器A1匹配时,输出引脚设置为EDPOL值

比较器B1匹配时,输出引脚设置为EDPOL的补码,内部计数器复位

从寄存器B2[n]到B1[n]以及从寄存器A2[n]到A1[n]的传输在下一个周期的第一个时钟执行。

根据MODE[5]位的不同,只能在B1匹配上生成标志,也可以同时在A1和B1匹配上生成标志。

2.12、eMIOS -中心对齐输出脉宽调制与死区插入缓冲(OPWMCB)

Type G 可用

·产生中心对齐PWM输出信号与死区时间插入。

·MODE[6]位分别在尾随死区插入和前导死区插入之间选择。

·EDPOL允许有源高或有源低占空比之间的选择。

·需要MCB上/下

关注点:

Period = MCB Period, Dead Time = B1[n], Duty Cycle = 2 * (Period - A1[n]) – Dead Time

在选取的死区插入边上:

▪在比较器A1匹配(选择计数器总线)上,内部计数器设置为$1

▪在比较器B1匹配(内部计数器)上,输出引脚设置为EDPOL值

在非选择死区插入边缘上:

▪在比较器A1匹配上,输出引脚设置为EDPOL的补码,内部计数器设置为$1

2.13、eMIOS -输出脉宽调制缓冲(OPWMB)

Type G 、H、X、Y可用

产生一个简单的输出PWM信号。

-使用模数计数器

- EDPOL允许在有源高或有源低占空比之间进行选择。

关注点:

UCA[n] (A1) 写入前沿

UCB[n] (B1) 写入后沿

在比较器A1匹配上,输出引脚设置为EDPOL的值

在比较器B1匹配上,输出引脚被设置为EDPOL的补码

从寄存器B2[n]到B1[n]和从寄存器A2[n]到A1[n]的传输在下一个周期的第一个时钟执行。

根据MODE[5]位的不同,只能在B1匹配上生成标志,也可以同时在A1和B1匹配上生成标志。

程序里面体现如下:

假设TICKS为0x4E2,占空比为50%,emios0_0作为Count bus,emios0_1、emios0_2、emios0_3参考emios0_0输出,寄存器如下显示。

2.14、eMIOS -带触发器的输出脉宽调制(OPWMT)

Type G 、H、X、Y可用

·产生一个固定偏移量的PWM信号和一个触发信号。

·-旨在与具有共享公共时基的相同模式下的其他信道一起使用。

·这种模式在产生 lighting  PWM控制信号时特别有用

A1[n]定义前缘,B1[n]定义后缘,A2[n]定义FLAG事件的生成

在比较器A1匹配上,输出引脚设置为EDPOL的值

在比较器A2匹配时,FLAG被设置(并且可以允许与其他事件同步,例如:AD告转换)

在比较器B1匹配上,输出引脚被设置为EDPOL的补码

寄存器B2[n]到B1[n]的传输在寄存器A1的每次匹配时执行

3、RTD组件详细介绍

3.1、eMIOS -概述的eMIOS组件的RTD

配置工具提供五个RTD的eMios实现驱动应用。

  1. eMios的为控制库,也就是MCAL
  2. eMios的GPT模块
  3. eMios的输出比较单元
  4. eMios的PWM
  5. eMios的IC

需要注意的:

如果想使用其他四个派生程序,则必须在项目中添加Emios_Mcl_Ip

每个eMIOS RTD模块都有自己的Irq函数,您可以为应用程序设置一个回调函数。

所有处理程序项都在Mcl Irq文件中分配。

EMIOSx_x_IRQ -> Emios_Xxx_Ip_IrqHandler(inst, channel) -> CallbackFunction/Notification

eMIOS初始化一般流程:

Initialize instance (Mcl) -> Initialize channel (Gpt, Ocu, Pwm, Icu) -> other (start, notification, etc.)

3.2、eMIOS - Emios_Mcl_Ip组件

1、启用eMIOS通用支持。

·否则,EmiosCommon不可用。

·需要启用错误检测

2、配置全局eMIOS。

启用eMIOS实例冻结状态和全局时基。

设置全局时钟分频值:1 ~ 256

3、配置eMIOS主总线

选择硬件通道

选择master bus

选择默认周期与通道分频

启用或禁用调试模式和中断

主总线通道不能配置为其他模式。

MC与MCB的区别:MC表示本周期,MCB表示下周期,起作用的时间不一样

3.3、GPT的使用

3.4、OCU的使用

3.5、PWM使用

3.6、ICU的使用

除主总线通道(ch[23])外,每个 eMIOS 通道都能触发 BCTU。

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



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

相关文章

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 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关