【轮式平衡机器人】——TMS320F28069片内外设之eCAP

引入

TMS320F28069的eCAP(增强型捕获模块)是一个强大的外设,用于精确测量和捕获输入信号的事件和时间戳

电机控制、传感器数据采集和信号处理等应用中,eCAP模块可以用于测量霍尔传感器、编码器或其他数字输入信号的周期、频率和相位等信息。通过捕获这些信号的事件和时间戳,用户可以精确地控制电机转速、位置和方向,或者实现精确的数据采集和分析。


一、eCAP模块基本介绍

1、特点与功能

以下是eCAP的主要特点和功能

  1. 多通道捕获:TMS320F28069微控制器通常包含多个eCAP模块,每个模块可以独立配置和操作。这使得用户能够同时捕获和测量多个输入信号的事件。
  2. 事件检测:eCAP模块可以配置为检测输入信号的上升沿、下降沿或两者都检测。当检测到这些事件时,eCAP会生成一个中断请求,通知CPU进行处理。
  3. 时间戳捕获:当检测到事件时,eCAP模块会捕获当前的计时器值,并将其存储在时间戳寄存器中。这些时间戳可以用于计算事件之间的时间间隔,从而确定输入信号的频率、周期或其他相关参数。
  4. 灵活性:eCAP模块具有高度的灵活性,可以通过编程配置来适应不同的输入信号和测量需求。用户可以设置捕获模式、极性、预分频器等参数,以满足特定的应用要求。
  5. 中断支持:eCAP模块支持中断功能,当检测到事件或满足其他条件时,可以触发中断请求。这使得用户能够在CPU执行其他任务时,及时响应和处理eCAP模块捕获的事件。

2、包含资源

TMS320F28069有4路eCAP模块,包括以下资源

  • 可分配的输入引脚
  • 32b时间基准(计数器)
  • 4个32b时间窗捕获控制寄存器
  • 独立的边缘极性选择
  • 输入信号分频(2~64)
  • 4个捕获事件均可引起中断

3、可设置模式

可设置的模式有捕捉模式或APWM模式:

  1. 捕捉模式

    • 边沿捕捉:eCAP可以配置为在输入信号的上升沿或下降沿时捕获时间戳。这种模式下,每当输入信号发生边沿变化时,eCAP都会记录当前的定时器或时钟周期值。
    • 窗口捕捉:在此模式下,eCAP会在两个预设的时间窗口内检测输入信号的边沿。如果在这个窗口内检测到边沿,eCAP会捕获时间戳。这种模式常用于检测输入信号的抖动或稳定性。
    • 周期测量:eCAP可以配置为测量输入信号的周期。它会连续捕获两个相邻的边沿,并计算它们之间的时间差,从而得到信号的周期。
  2. APWM模式

    • APWM(Advanced PWM)模式允许eCAP模块作为PWM发生器的输入,用于生成复杂的PWM波形。在此模式下,eCAP会根据捕获到的输入信号边沿来生成PWM波形。
    • 例如,当eCAP在输入信号的上升沿时开始生成PWM波形,并在下降沿时结束,这样可以根据输入信号的周期或占空比来调整PWM波形的参数。
    • APWM模式在需要与外部事件同步的PWM控制应用中非常有用,如电机控制、传感器驱动等。

一般来说前者较为常用,在捕捉模式下可将eCAP分为事件分频、边沿极性选择与验证、中断控制几大部分(具体可查相关资料)。基本工作流程:

配置好eCAP模块的引脚后,外部事件由引脚输入,首先通过模块的分频部分,分频为2~64(也可选择跳过分频部分)该环节主要针对输入事件信号频率很高的情况。经分频后的信号被送至边沿及序列审核部分,边沿审核即设置为上升沿或下降沿有效,序列审核则是指分配当前对哪个寄存器(CAP1~CAP4)作用。最后就是中断执行控制部分。

二、Simulink中使用eCAP

在上期的ePWM中介绍了如何配置ePWM模块使其输出PWM波,本期通过eCAP模块来测量PWM波的占空比是否正确。

缺乏硬件,根据专业书籍该实验需将ECAP1引脚用杜邦线先后与EPWM1A引脚和EPWM1B连接起来!

1、基本模型设置

Solver设置定步长为0.5s,时钟90MHz,LSPCLK低速时钟外设4分频:

eCAP的ECAP1 pin assignment引脚选择GPIO5:

2、变量初始化

用Data Store Memory模块初始化10个全局变量,用来实现对一方波信号的频率,周期、占空比测量。t1(t2、t3)是第一(二、三)个捕捉事件发生时计数器的值;T1(T2)表示t2-t1(t3-t1),即测试方波的高电平(整个周期)时间对应的计数值;CLK是系统时钟值,Duty是实际方波的占空比,Frequence是方波频率,Period则是周期,Flag表示检测完成时的标志位。

3、ePWM模块配置(产生PWM)

生成两路频率为10kHz,一个是占空比为50%的PWM,另一个是占空比为60%的PWM:

4、设置eCAP模块

使用eCAP1模式,配置为连续控制。第一次事件的触发极性为上升沿,第二次为下降沿,第三次也为上升沿,计数时间的数据类型为无符号的32位整型。中断配置如下图,在第三次事件之后触发中断,停止计数并重置。在eCAP输出接上Simulink的demux模块,并将输出的值赋予t1、t2、t3(Data StoreWrite模块)

5、计算T1、T2并对Flag置位

根据t1、t2、t3计算T1、T2并对Flag置位​​​​​​​,表示一次检测结束。(Flag标志位,作为while子系统的触发信号)

6、配置硬件中断模块

​​​​​​​根据eCAP1的中断向量号,它属于CPU中断第四组的第一个PIE中断。

⑦标志位触发,在While(1)中触发计算模块,对输入方波的频率、周期、占空比(PWM参数)进行计算,如下图对它们的计算,其中CLK=1/90000000。

上图其实是放在Triggered Subsystem(while)里的 Subsystem的

三、仿真整体图

下图为eCAP的Simlink模型整体图:

封装后这个样子:

将模型编译后下载到主控板,然后再CCS中打开工程文件进行操作,具体可查阅相关CCS的操作方法,这里不做演示。

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/H0u9Q

OpenCV-Python专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/htF7k

AI底层逻辑专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/keH1Q

机器学习专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FNWM7 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源爬虫技术在金融行业市场分析中的应用与实战解析

一、项目介绍 在当今信息技术飞速发展的时代,数据已成为企业最宝贵的资产之一。特别是在${industry}领域,海量数据的获取和分析对于企业洞察市场趋势、优化产品和服务至关重要。在这样的背景下,爬虫技术应运而生,它能够高效地从互…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统(深度学习模型+UI界面+训练数据集)

摘要:开发农作物害虫检测系统对于提高农业生产效率和作物产量具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个农作物害虫检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5&#xff0…

docker容器镜像管理+compose容器编排(持续更新中)

目录 一、 Docker的基本组成 二、 容器和镜像的关系 2.1 面向对象角度 2.2 从镜像容器角度 三、 容器命令 3.1 使用Ubuntu 3.1.1 下载镜像 3.1.2 新建和启动容器 run 3.1.3交互式 compose编排与部署 1. docker-compose部署 2. docker-compose.yml模板 …

Git版本工具学习

目录 版本控制git配置工作区域文件状态git对象模型基础命令.gitignore忽略文件IDEA集成Git 版本控制 本地版本控制:在本地记录每一次版本更新。 集中版本控制:版本数据都保存在单一服务器,不联网就看不到版本信息。SVN 分布式版本控制&…

《详解:鸿蒙NEXT开发核心技术》

我们现在都知道鸿蒙作为一个国产的全栈自研系统,经过国家主推后。已经引起人们很大的关注,其中作为开发者来说;许多一线大厂已经与其华为鸿蒙展开原生应用的合作了,目前了解到已经有200家。而之后出现了很多的高薪鸿蒙开发岗位&am…

[密码学]OpenSSL实践篇

背景 最近在写Android abl阶段fastboot工具,需要我在Android代码中实现一些鉴权加解密相关的fastboot命令,里面用到了OpenSSL。我们先来实践一下OpenSSL在Linux系统中的指令。 OpenSSL官方网站:OpenSSL 中文手册 | OpenSSL 中文网 1. 查看…

mybatis-plus整合spring boot极速入门

使用mybatis-plus整合spring boot,接下来我来操作一番。 一,创建spring boot工程 勾选下面的选项 紧接着,还有springboot和依赖我们需要选。 这样我们就创建好了我们的spring boot,项目。 简化目录结构: 我们发现&a…

C语言:内存函数

目录 1.memcpy2.memmove3.memset4.memcmp5.atoi 1.memcpy void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置这个函数再遇到\0时不会停下来如果source和destination有…

哪个骨传导蓝牙耳机的好?独家揭秘六大选购技巧

在科技飞速前进的今天,骨传导蓝牙耳机以独特的听觉技术逐渐进入大众视野,赢得了众多消费者的青睐。作为一名资深的数码爱好者,我最近频繁地收到朋友们的咨询,他们希望了解哪个骨传导蓝牙耳机的好?对于初入数码圈的朋友…

zabbix 7.0编译部署教程

zabbix 7.0编译部署教程 2024-03-08 16:50乐维社区 zabbix7.0 alpha版本、beta版本已经陆续发布,Zabbix7.0 LTS版本发布时间也越来越近。据了解,新的版本在性能提升、架构优化等新功能方面有非常亮眼的表现,不少小伙伴对此也已经跃跃欲试。心…

ThreeJs 射线拾取不准确设置

欢迎关注进来点个关注; 关注获取更多咨询!关注获取答案! 1、效果图如下: 2、问题描述:点击一开始无法获取当前的位置,官方推荐直接使用 mouseClick.x = (event.offsetX / window.innderWidth) * 2 - 1; mouseClick.y = -(event.offsetY / window.innderHeight) * 2 + 1;…

promise,async →await,then→catch,try→catch 使用简介

提示:promise,async →await,then→catch,try→catch 使用简介 文章目录 前言一、Promise二、promise then/catch三、promise async/await try/catch总结 前言 需求:promise,async →await,then…

多数问题求解之蒙特卡洛与分治法

多数问题(Majority Problem)是一个有多种求解方法的经典问题,其问题定义如下: 给定一个大小为 n n n的数组,找出其中出现次数超过 n / 2 n/2 n/2的元素 例如:当输入数组为 [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] […

爬虫案例2:playwright 超爽体验

参考链接:https://playwright.bootcss.com/python/docs/intro 目标网站:https://spa6.scrape.center/通过观察,页面的信息是通过Ajax请求后返回的信息 下面使用playwright实现绕过token的获取直接拿到返回的数据import asyncio import json f…

邮件发送:行业会议邀请的高效新选择

随着数字化浪潮的不断深入,营销手段也在不断的创新和升级。因此,如何高效、精准地触达并吸引目标用户群体参与行业会议已成为众多会议举办方的核心关注点。在这一背景下,邮件推送服务凭借其独特的优势正逐渐成为行业会议邀请的新选择。 邮件推…

Linux本地搭建FastDFS系统

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

初级爬虫实战——伯克利新闻

文章目录 发现宝藏一、 目标二、简单分析网页1. 寻找所有新闻2. 分析模块、版面和文章 三、爬取新闻1. 爬取模块2. 爬取版面3. 爬取文章 四、完整代码五、效果展示 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

挑战杯 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的人脸表情识别 该项目较…

explain关键字的用法(mysql高级部分)

文章目录 简介explain关键字分析 简介 explain主要是用来分析sql语句的,当你的系统中出现慢查询SQL后,你可以使用explain关键字对该语句进行分析。通过使用explain,我们可以得到以下结果 表的读取顺序 哪些索引可能使用 哪些索引被实际使用…

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器,它能够查询有关可用软件包的信息,从存储库获取软件包,安装和卸载软件包,以及将整个系统更新到最新的可用版本。yum 在更新&#…