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使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?