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

这篇具有很好参考价值的文章主要介绍了【轮式平衡机器人】——TMS320F28069片内外设之ePWM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明:本系列博客参考有关专业书籍,截图均为自己实操,仅供交流学习!

引入

脉冲宽度调制(PWM)是一种对模拟信号进行数字编码的方法,硬件原理是根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管晶体管导通时间的改变。

一个重要理论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。

以此为理论基础,对半导体开关元件的导通和关断进行控制得到一系列幅值相等而宽度不相等的脉冲,用这些PWM脉冲等效正弦波或其他各种波形。按一定规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压大小,也可改变输出功率

TMS320F28069有19路脉宽调制输出引脚(需要软件进行配置,与普通GPIO类似),包括16路增强型PWM(ePWM)3路普通PWM(ECap模块复用),其中16路ePWM中有8路可配置为高分辨率的PWM(HRPWM)。

除了19路输出引脚,还有8组PWM模块,每组分2路PWM,分别为PWMAPWMB(对应16路ePWM)。一个ePWM模块包括:时基模块、计数器比较模块、比较方式预设模块、死区模块、斩波模块、事件触发模块、行程区模块7个模块。

ePWM模块在电机控制、电源管理和其他需要精确时间控制的应用中非常有用!


一、ePWM单路输出

1、ePWM模块可以配置为单路输出模式,这意味着它可以生成一个独立的PWM信号。
2、在单路输出模式下,ePWM模块可以根据预设的周期、占空比和其他参数生成PWM波形。
3、用户可以通过配置ePWM模块的相关寄存器来调整PWM信号的各种参数,如周期、占空比、相位等。
4、ePWM模块还具有死区时间生成功能,可以防止上下桥臂的功率开关管同时导通,从而避免短路。

ePWM模块的输入时钟来自系统时钟,可根据需要调节分频系数。选择ePWM模块进行如下配置:

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件

TBCLK = SYSCLKOUT/(HSPCLKDIV*CLKDIV)

这个公式表示了如何从一个系统的主时钟 (SYSCLKOUT) 导出另一个时钟 (TBCLK)。

让我们分解这个公式:

SYSCLKOUT:这是系统的主时钟输出频率。这通常是微控制器或处理器的核心时钟频率。
HSPCLKDIV:这是高速预分频器的值。预分频器通常用于降低时钟频率。例如,如果HSPCLKDIV的值为2,那么时钟频率就会被除以2。
CLKDIV:这是另一个分频器的值。和预分频器一样,分频器也用于降低时钟频率。
所以,TBCLK 是由 SYSCLKOUT 经过两次分频后得到的。首先,SYSCLKOUT 被 HSPCLKDIV 分频,然后再被 CLKDIV 分频。最后得到的时钟频率就是 TBCLK。

举个例子,如果 SYSCLKOUT 是 100 MHz,HSPCLKDIV 是 2,CLKDIV 是 4,那么 TBCLK 将会是:

(TBCLK = \frac{100 MHz}{(2 * 4)})
(TBCLK = 12.5 MHz)

这意味着从 SYSCLKOUT 得到的 TBCLK 是 12.5 MHz。

本次使用的系统主时钟SYSCLKOUT为80MHz,取HSPCLKDIV为4分频,CLKDIV取2,则TBCLK为10MHz,设置周期寄存器值10000(如上配置图),则ePWM1的输出频率10MHz/10000=1kHz。

在配置框使能ePWMA,当计数等于0时不动作,等于CAU的值时复位,等于CAD的值时置高,其他时间不动作。ePWM、死区时间、事件触发以及错误联防均不配置。

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件

最后配置Counter Compare,CMPA值50,即占空比为50%。

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件


二、ePWM双路互补输出

1、ePWM模块还支持双路互补输出模式,
这种模式常用于电机控制中的H桥驱动。
2、在双路互补输出模式下,ePWM模块可以生成两个
互补的PWM信号,分别用于控制H桥的上下两个开关管。
3、这两个互补的PWM信号具有相同的周期和占空比,
但相位相差180度,从而确保H桥的两个开关管不会同时导通。
4、通过合理配置ePWM模块的参数,可以实现电机的正反转、调速等功能。

首先对于Genaral和ePWMA的配置如上单路输出,双路输出还需配置ePWMB,与ePWMA的配置相反。

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件

对于Counter Compare的配置如下:

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件


三、ePWM中断

1、ePWM模块还支持中断功能,这意味着当ePWM模块的状态发生变化或满足某些条件时,
可以触发一个中断请求。
2、中断功能可以帮助用户实时监控ePWM模块的状态和性能,
从而及时采取相应的措施。
3、例如,当ePWM模块的输出状态发生变化时,可以触发一个中断请求,
然后在中断服务程序中执行相应的操作,如调整PWM参数、记录日志等。

在前面配置的基础上改动,在配置框Event Trigger选项中,使能ePWM中断,并配置为第一个事件发生时就进入中断,其他保持默认:

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件

然后使用Simulink的C28x Hardware Interrupt模块,设置好PWM1中断的CPU中断号3和PIE级中断号1写入。

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件

如下是ePWM中断实现的实现图:(右下角为中断函数,可根据需要添加逻辑,可使用StateFlow模块进搭建逻辑图)

StateFlow是一个基于有限状态机和流程图来构建组合和时序逻辑决策模型并进行仿真的环境。它由MathWorks公司开发,并作为Simulink的一个附加模块提供。StateFlow可以用于设计有关监控、任务调度以及故障管理应用程序的逻辑。

StateFlow的主要特点包括:

基于状态机的建模:StateFlow允许用户创建和管理复杂的状态机模型,这些模型可以描述系统在不同状态下的行为和转换。
图形化设计界面:StateFlow提供了一个直观的图形界面,使用户可以轻松地创建状态图、流程图和数据流图来描述系统的行为。
强大的仿真功能:StateFlow支持实时仿真和离线仿真,可以对模型进行详细的仿真分析和验证。
与Simulink的无缝集成:StateFlow可以直接嵌入到Simulink模型中,与Simulink的算法设计和代码生成环境完美集成。
丰富的控制流功能:StateFlow提供了丰富的控制流功能,包括顺序、分支和循环等,以支持复杂的逻辑设计。

【轮式平衡机器人】——TMS320F28069片内外设之ePWM,轮式平衡机器人,机器人,simulink,嵌入式硬件

写到这里有点学不下去了,呜呜呜,没硬件有点没着力点!请允许我浅浅纸上谈兵,可能学到后面的系统级仿真会有趣点,希望我可以坚持写下去吧!


往期精彩

STM32专栏(付费9.9)

OpenCV-Python专栏(付费9.9)

AI底层逻辑专栏(付费9.9)

机器学习专栏(免费)FreeRTOS专栏(免费)电机控制专栏(免费)文章来源地址https://www.toymoban.com/news/detail-838368.html

到了这里,关于【轮式平衡机器人】——TMS320F28069片内外设之ePWM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [DSP学习笔记]基于TMS320F28335的FIR滤波实现

    首先进入TI官网,搜索C2000 wave,进行下载安装。 安装完成后,在2000 wave的安装目录下,进入以下目录:C2000Ware_4_02_00_00librariesdspFPUc28 以我本地的安装目录为例:E:tic2000C2000Ware_4_02_00_00librariesdspFPUc28 复制include、source文件夹到新建工程中。再根据选用的DSP型号对文件夹内

    2024年02月10日
    浏览(79)
  • DSP_基于TMS320F28377D双核芯片和CCS7.40的编程入门

    开始之前明确一个东西裸机程序和RTOS程序的差别:参考下面三个连接瞅瞅   ​​​​​​理解实时操作系统与裸机的区别-----Free RTOS 简介_书中倦客的博客-CSDN博客_裸机操作系统 裸机与RTOS的理解和并发带来的问题-电子发烧友网 (elecfans.com) ​​​​​​类似于STM32之类的单片

    2024年02月13日
    浏览(40)
  • 【轮式移动机器人课程笔记 4】机器人可操作度和车轮类型

    本讲主要包含三部分内容: (1)复习上节课程中运动学相关知识 (2)讨论移动机器人可操作度 (3)讨论移动机器人的车轮类型 4.1 回顾轮式移动机器人运动学知识 具体详见 L3。 4.2 轮式移动机器人可操作度(degree of maneuverability) 它是机动度(degree of mobility)和可转向度(

    2024年02月03日
    浏览(105)
  • 建模分析 | 差速轮式移动机器人运动学建模(附Python/Matlab仿真)

    🔥附C++/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。 🚀详情:图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法 差速轮式移动机器人

    2024年02月05日
    浏览(44)
  • 用全志R128复刻自平衡赛车机器人,还实现了三种不同的操控方式

    经常翻车的朋友们都知道,能在翻车后快速摆正车身的车才是好车。 就像动画《四驱兄弟》中展现的那样,在比赛中需要跟着赛车一起跑圈,而且赛车如果被撞翻还需要重新用手扶正,所浪费的时间非常影响比赛结果。 如果小豪和小烈可以拥有一款能通过发挥R128的WiFi蓝牙特

    2024年02月03日
    浏览(35)
  • 【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波(文末附3个算法源码)

     效果: MPU6050姿态解算-卡尔曼滤波+四元数+互补滤波 目录 基础知识详解 欧拉角

    2024年04月14日
    浏览(69)
  • DSP_TMS320F28377D_ADC学习笔记

    DSP各种模块的使用,基本上就是 GPIO复用配置、相关控制寄存器的配置、中断的配置。本文主要记录本人对ADC模块的学习笔记。TMS320F28377D上面有24路ADC专用IO,这意味着不需要进行GPIO复用配置。 只需要考虑相关控制寄存器和中断的配置。看代码请直接跳到最后。 在放代码之前

    2024年02月04日
    浏览(36)
  • DSP_TMS320F28377D_ePWM学习笔记

    本人需要使用ePWM来控制一个永磁同步电机(PMSM), 本文记录了对于TMS320F28377D ePWM模块的学习笔记。主要内容是FOC PMSM控制的ePWM配置,同时包含ADC触发源的配置,关于ADC的学习笔记,请参考DSP_TMS320F28377D_ADC学习笔记_江湖上都叫我秋博的博客-CSDN博客。 关于一些PWM的基础知识,

    2023年04月25日
    浏览(47)
  • 11.TMS320C5509V+Win10+CCS8开发环境搭建

    众所周知,相较于TMS320F28335,TMS320C5509V属于较老的平台,在新版本的CCS版本上支持一直是一个问题。 最基本的问题便是,无法新建基础工程。各开发版厂商提供的例程无法在CCS8上使用,只支持CCS3.3环境,但是由于目前Win7、Win10等系统均不再支持CCS3.3,所以只能折腾虚拟机来

    2024年02月07日
    浏览(44)
  • DSP_TMS320F28377D_算法加速方法1_拷贝程序到RAM运行

    TI C2000系列的DSP芯片算力有限,用于来控制有时候常会出现控制程序无法实现实时运行的情况,因此从本文开始,将陆续推出几篇DSP算法加速的方法 此方法只需要添加 一行代码 和 一个预定义 ,即可达到算法整体加速的目的。先声明本文是讲的是TMS320F28377D,其他C2000系列芯片

    2024年02月10日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包