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

2024-03-10 20:04

本文主要是介绍【轮式平衡机器人】——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=N4N7http://t.csdnimg.cn/H0u9Q

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

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

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

这篇关于【轮式平衡机器人】——TMS320F28069片内外设之eCAP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明

机器人工具箱中的SerialLink表示串联机器人型机器人的具体类。该类使用D-H参数描述,每个关节一组。SerialLink I类包含的参数如表1所示。 表1 SerialLink I类参数 参  数 意    义 参  数 意    义 plot 显示机器人的图形表示 jacobn 工具坐标系中的雅可比矩阵 plot3D 显示机器人3D图形模型 Jacob_dot

机器人助力上下料搬运,加速仓库转运自动化

近年来,国内制造业领域掀起了一股智能化改造的浪潮,众多工厂纷纷采纳富唯智能提供的先进物流解决方案,这一举措显著优化了生产流程,实现了生产效率的飞跃式增长。得益于这些成功案例,某信息技术服务企业在工厂智能物流建设的进程中,也选择了与富唯智能合作。 为了应对日益增长的物料搬运需求,匹配成品输出节拍,该公司引入了富唯智能复合机器人AMR与搬运机器人AGV,实现了仓库成品搬运自动化,大幅减少人工

写给大数据开发:你真的“慢“了吗?揭秘技术与职场的平衡艺术

你是否曾经在深夜里,面对着一个棘手的数据处理问题,感到无比沮丧?或者在一次重要的项目汇报中,突然语塞,无法清晰地表达你的技术方案?作为一名大数据开发者,这些场景可能再熟悉不过。但别担心,因为你并不孤单。让我们一起探讨如何在这个瞬息万变的行业中,既磨练技术利刃,又培养职场软实力。 目录 技术与时间的赛跑1. 长远视角的重要性2. 复利效应在技能学习中的应用 跨界思维:数据结构教我们的职场智

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

Dify.ai:部署自己的 AI 应用、知识库机器人,简单易用

Dify.ai:部署自己的 AI 应用、知识库机器人,简单易用 今天,来分享下 Dify.AI 这个产品,一句话介绍:可供普通人简单易用的部署生成出一个 AI 应用。这是一种使用人工智能技术来帮助团队开发和运营 AI 应用的工具。 什么是 Dify.ai Dify.ai 是一个易于使用的 LLMOps 平台,旨在帮助更多的人创建可持续的、AI 原生的应用。通过对各种应用类型的可视化编排,Di

机器人可能会在月球上提供帮助

登月是我们这个时代最具标志性的事件之一,这可能还算轻描淡写了:这是我们迄今为止在物理上探索得最远的一次。我听过一些当时的老广播,它们可以让你想象出这次航行的重要性。 现在,研究人员表示,我们可能很快就能重返月球,甚至可能很快就会有人类任务前往火星。 火星。艺术家:NASA 这次会有什么不同呢? 有一点是确定的:机器人将大力协助—— 非常多。 在麻省理工学院,我们的一些团队正在开发突破性的

代码随想录 -- 二叉树 -- 平衡二叉树

110. 平衡二叉树 - 力扣(LeetCode) 思路:仍然是递归调用 1. 定义一个递归函数 count 用来计算二叉树的层数 2. isBalanced 函数:如果传入根节点为空返回真;如果根节点 | 左子树的层数 - 右子树的层数 | 大于1,返回假;最后返回根节点左子树、右子树是否是平衡二叉树。 class Solution(object):def count(self,root

【人工智能/机器学习/机器人】数学基础-学习笔记

函数 奇偶性: 偶函数: f ( − x ) = f ( x ) f(-x)=f(x) f(−x)=f(x)     y轴对称 f ( x ) = x 2 f(x)=x^2 f(x)=x2     f ( − x ) = ( − x ) 2 = x 2 = f ( x ) f(-x)=(-x)^2=x^2=f(x) f(−x)=(−x)2=x2=f(x) 奇函数: f ( − x )

全国机器人大赛 Robocon 常州工学院团队首战国三

全国机器人大赛 Robocon 常州工学院团队首战国三 通宵7天7夜,常州工学院RC团队,首次闯入全国机器人大赛国赛,并成功得分! 不同于老牌强队,常州工学院(下面用"常工"代替)的这只队伍,大多数成员由大一组成,核心岗位由一些大二各个专业基础最为扎实的学生担任。 7月7日,19:26分。卡在报道的最后10分钟,由在团队项管和电控成功领队签到,光电Robot成为最近几年唯一一只冲入Roboc