SemiDrive E3 MCAL 开发系列(6)– Icu 模块的使用

一、  概述

本文将会介绍 SemiDrive E3 MCAL Icu 模块的简介以及基本配置,其中还会涉及到 Xtrg 模块的配置。此外会结合实际操作的介绍,帮助新手快速了解并掌握这个模块的使用,文中的 MCAL 是基于 PTG3.0 的版本,开发板是官方的 E3640 网关板。

二、  Icu 模块简介

E3 Icu 模块底层硬件为 Etimer 中的 Capture 通道,每个 Capture 通道都可以作为一个 Icu 通道,E3 系列最多有 4 个 Etimer,因此最多有 16 个 Icu 通道,其中 E3206/E3106/E3205/E3104 系列最多有 2 个 Etiemr,最多有 8 个 Icu 通道。Icu 模块支持以下四种时钟源的选择:

  • HF_CLK 时钟源,可以在 Mcu_ClkCfg 中找到对应频率。
  • AHF_CLK 时钟源,和 Xtrg 使用的时钟源一致。
  • EXT_CLK 时钟源,外部时钟源输入。
  • LP_CLK 时钟源,固定为 24 MHz。

Icu 模块支持对以下几种模式进行输入捕获:

  • 信号边沿变化检测
  • 信号测量(高电平时间、低电平时间、周期时间、周期占空比)
  • 边沿变化时间戳采集
  • 边沿的计数

三、  Icu 模块的主要配置

配置 Icu 模块首先需要使能 Etimer 模块,在 Mcu 模块中进行配置,如下图所示。

图 3.1 使能 Etimer 模块

接着进行 Icu 模块的配置,首先是通用的配置,主要需要配置一下选项:

  • IcuMaxChannel:需要用到的 Icu 的通道总数。
  • IcuDevErrorDetect:在开发过程中是否支持对 Icu 驱动参数进行错误检测和有效性检测。
  • IcuDmaModeEnable:是否需要使用 DMA 进行传输,需要注意的是仅在时间戳模式和多路采样时会使用到。
  • DmaBurstTransferWordLength:使用 DMA 进行传输时,一次传输的数据量。
  • DmaFifoWml:使用 DMA 进行传输时设置的水线。
  • IcuMultiCaptureEnable:是否支持多路采样。
  • IcuMultiCaptureDmaMode:使用多路采样时,是否使用 DMA 进行数据传输。
  • DmaMultiCptBurstLengh:在多路采样时,使用 DMA 进行传输,一次传输的数据量。

图 3.2 Icu通用配置

接着对每个 Icu 通道进行配置。

图 3.3 Icu 通道的配置

Icu 通道的配置包括以下选项:

  • IcuChannel:Icu 的逻辑通道 ID。
  • IcuMultiCapture:该通道是否采用多路采样,需要注意如果使用多路采样,配置页面的 IcuDefaultStartEdge/IcuMeasurementMode/IcuHardwareChannel 这几个配置无效。
  • IcuDefaultStartEdge:该通道采样的边沿设置。
  • IcuFilterLevel:该通道使用的滤波等级。
  • IcuMeasurementMode:该通道需要采样的模式。
  • IcuHardwareModule:该通道用到的 etiemr 硬件模块。
  • IcuHardwareChannel:该通道用到的 Capture 硬件通道,包括 ICU_HW_CPT_A/B/C/D。
  • IcuHardwareClock:该通道使用的时钟源频率,包括 ICU_SEL_HF_CLK、ICU_SEL_AHF_CLK、ICU_SEL_EXT_CLK、ICU_SEL_LP_CLK。
  • IcuHwModulePrescaler:该通道使用的时钟分频值。
  • IcuWakeupCapability:目前该配置还不支持。
  • IcuSignalNotification:使用边缘检测模式时,采集到所设置的边沿变化时调用的回调函数。
  • IcuSignalMeasurementProperty:使用信号测量模式时,需要采样的具体模式,包括 ICU_DUTY_CYCLE、ICU_HIGH_TIME、ICU_LOW_TIME、ICU_PERIOD_TIME。
  • IcuTimestampNotification:使用时间戳模式时,采集到所需的时间戳数量时的回调函数。

配置完 Icu 模块后我们还需要对 Xtrg 模块进行配置,将 IO 信号或者 PWM 的输出信号路由到 Etimer 的捕获通道,具体配置如下图所示。

图 3.4 Xtrg 模块配置

四、  实际操作

配置完成后,更新配置,代码使用例程默认的代码,无需修改,如图 4.1 和 图 4.2 所示,接着进行编译、下载并调试,输入测试命令 “runcase 1600”,可以看到串口中会打印出捕获到的周期值、边缘计数、时间戳等信息,具体如图 4.3 所示。

图 4.1 Icu 测试代码

图 4.2 Icu 测试代码

图 4.3 串口打印信息

五、  注意事项

配置 Icu 模块时,需要注意以下事项:

  • 使用同个 etimer,捕获通道不同的情况下,时钟源的分频值需要设置一致,如果不一样,以在 EB 上配置的逻辑通道排列靠后的为准。
  • 使用了多路采样的 etimer 不能用于单路采样。
  • 多路采样,Etimer1 支持 XTRG_IO(0)~XTRG_IO(31) 的配置,etimer2 支持 XTRG_IO(32)~XTRG_IO(63)的配置。
  • 多路采样的子通道,不支持“边沿检测”子模式,以及回调函数的调用。
  • 使用多路采样时,etimer1 需要按照最大的 XTRG_IO 引脚配置多路采样路数,etiemr2 需要按照(最大的 XTRG_IO 管脚标号 – 31)配置多路采样路数。

六、  参考资料

1.《SemiDrive_E3_MCAL_User_Guide_Rev03.00.pdf》,2023.08

欲知更多系列技术内容可点击此处查看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944807.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智慧地下采矿:可视化引领未来矿业管理

图扑智慧地下采矿可视化平台通过整合多源数据,提供实时 3D 矿井地图及分析,提升了矿产开采的安全性与效率,为矿业管理提供数据驱动的智能决策支持,推动行业数字化转型。

MySQL 服务器简介

通常所说的 MySQL 服务器指的是mysqld程序,当运⾏mysqld后对外提供MySQL 服务,这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容,包括: 服务器⽀持的启动选项。可以在命令⾏和配置⽂件中指定这些选项。 服务器系统变…

echarts没有map地图解决方案

在echarts4.9以后的版本中移除了map地图 使用命令npm install echarts --save它会下载最新版本 的echarts 所有我们要下载回echarts4.9版本中 如果已经下载了最新的可以卸载 // 卸载echarts运行: npm uninstall echarts然后再去下载4.9版本 // 安装4.9版本的ech…

Java高频面试之SE-06

hello啊,各位老6!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 访问修饰符 public、private、protected的区别是什么? 在Java中,访问修饰符用于控制类、方法和变量的访问权限。主要的访…

pymysql中的问题

首先像代码所示: 正确输出了mysql版本,但是,在pycharm链接mysql成功后创建表时又出现报错内容: Traceback (most recent call last): File "D:\PycharmProjects\PythonProject0\pymysqllearning.py", line 13, in &…

VuePress搭建个人博客

VuePress搭建个人博客 官网地址: https://v2.vuepress.vuejs.org/zh/ 相关链接: https://theme-hope.vuejs.press/zh/get-started/ 快速上手 pnpm create vuepress vuepress-starter# 选择简体中文、pnpm等, 具体如下 .../19347d7670a-1fd8 | 69 .../19…

【DC简介--Part1】

DC简介-Part1 1 overview1.1 DC操作步骤1.2 Steps1.2.1 Develop HDL files1.2.2 Specify libraries1.2.3 Read design1.2.4 Define design environment1.2.5 Set design constraints1.2.6 Select compile strategy1.2.7 Synthesize and optimize the design1.2.8 Analyze and r…

【Unity3D】ECS入门学习(十二)IJob、IJobFor、IJobParallelFor

IJob&#xff1a;开启单个线程进行计算&#xff0c;线程内不允许对同一个数据进行操作&#xff0c;也就是如果你想用多个IJob分别计算&#xff0c;将其结果存储到同一个NativeArray<int>数组是不允许的&#xff0c;所以不要这样做&#xff0c;如下例子就是反面教材&#…

HCIA-Access V2.5_7_1_XG(S)原理_系统概述

近年来&#xff0c;随着全球范围内接入市场的飞快发展以及全业务运营的快速开展&#xff0c;已有的PON技术标准在带宽需求&#xff0c;业务支撑能力以及接入节点设备和配套设备的性能提升等方面都面临新的升级需求&#xff0c;而GPON已经向10G GPON演示&#xff0c;本章将介绍1…

imgproxy图像处理的高效与安全

摘要 imgproxy作为一个高效且安全的独立服务器,为图像处理提供了全新的解决方案。它不仅简化了图像调整和转换的过程,还极大地提升了处理速度,确保了整个流程的安全性。通过集成imgproxy,用户可以轻松优化网页上的图像,提高加载速度,改善用户体验。本文将深入探讨imgpro…

CPT203 Software Engineering 软件工程 Pt.4 软件设计(中英双语)

文章目录 6. 设计概念6.1 Principle6.2 Concepts6.2.1 General design concepts&#xff08;常见的设计概念&#xff09;6.2.1.1 Abstraction&#xff08;抽象&#xff09;6.2.1.2 Modularity&#xff08;模块化&#xff09;6.2.1.3 Functional independence&#xff08;功能独…

MultiDiff 论文解读

一、CameraCtrl AnimateDiff->MotionCtrl->CameraCtrl CameraCtrl将多帧图像的Plucker射线输入到Camera Encoder&#xff0c;Plucker射线可以表示每个像素对应的光线方向。 Camera Encoder包括ResNet block和Temporal Attention&#xff0c;来提取每一帧相机位姿的时序…

OpenCV-Python实战(4)——图像处理基础知识

一、坐标 在 OpenCV 中图像左上角坐标为&#xff08;0&#xff0c;0&#xff09;&#xff0c;竖直向下为 Y&#xff08;height&#xff09; &#xff1b;水平向右为 X&#xff08;width&#xff09;。 二、生成图像 2.1 灰度图像 img np.zeros((h,w), dtype np.uint8) i…

【Compose multiplatform教程18】多平台资源的设置和配置

要正确配置项目以使用多平台资源&#xff0c;请执行以下操作&#xff1a; 添加库依赖项。 为每种资源创建必要的目录。 为限定资源创建其他目录&#xff08;例如&#xff0c;深色 UI 主题或本地化字符串的不同图像&#xff09;。 依赖项和目录设置 要访问多平台项目中的资源…

html转PDF

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 在项目中会有一些需要页面转成PDF的情况&#xff0c;这里需要配合一些插件可以完成 使用html2canvas将使用canvas将页面转为base64图片流&#xff0c;并插入jspdf插件中&#xff0c;保存并下载pdf。…

32132132123

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

微服务保护-sentinel

为什么要有微服务保护&#xff1f; 微服务保护是为了避免微服务雪崩而出现的&#xff0c;每个微服务能处理的请求是有限的&#xff0c;如果一个微服务出现问题导致一个请求进入微服务的时间太久&#xff0c;就会导致大量去请求停滞在微服务内部&#xff0c;这样就会过分占用系统…

深入浅出 MyBatis | CRUD 操作、配置解析

3、CRUD 3.1 namespace namespace 中的包名要和 Dao/Mapper 接口的包名一致&#xff01; 比如将 UserDao 改名为 UserMapper 运行发现抱错&#xff0c;这是因为 UserMapper.xml 中没有同步更改 namespace 成功运行 给出 UserMapper 中的所有接口&#xff0c;接下来一一对…

【LLM综述】29种大模型Prompt Engineering技术

note 从零样本&#xff08;Zero-shot&#xff09;提示到最新进展的各种提示技术&#xff0c;包括推理和逻辑链&#xff08;Chain-of-Thought, CoT&#xff09;提示、自动链式思考&#xff08;Auto-CoT&#xff09;提示、自我一致性&#xff08;Self-Consistency&#xff09;提…