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

news2024/10/6 0:32:50

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

引入

脉冲宽度调制(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模块进行如下配置:

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、死区时间、事件触发以及错误联防均不配置。

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


二、ePWM双路互补输出

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

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

对于Counter Compare的配置如下:


三、ePWM中断

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

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

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

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

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

StateFlow的主要特点包括:

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

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


往期精彩

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

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

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

机器学习专栏(免费)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.coloradmin.cn/o/1493881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3. 在Go语言项目中使用Zap日志库

文章目录 一、介绍二、 默认的Go Logger1. 实现Go Logger2. 设置Logger3. 使用Logger4. Logger的运行5. Go Logger的优势和劣势 三、Uber-go Zap1. 为什么选择Uber-go zap2. 安装3. 配置Zap Logger4. 定制logger4.1 将日志写入文件而不是终端4.2 将JSON Encoder更改为普通的Log…

三极管控制元器件设计

一、设计原则 三极管作为开关控制设备的两个原则: 1、NPN型三极管:从设备取电流,导向GND。 2、PNP型三极管:从电源取电流,导向设备。 二、理论计算(设计规则推演) 分别以NPN和PNP控制三极管为…

算法简单试题

一、选择题 01.一个算法应该是( B ). A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C 02.某算法的时间复杂度为O(n),则表示该…

【高效开发工具系列】vimdiff简介与使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

领取阿里云服务器1888元优惠券,如何登录云主机?

点击左上角“请登录” 首先点此领取阿里云服务器1888元优惠券 这样就登录成功了。 如果您没有淘宝帐号,可以自行注册一个。 登录成功后: 很多人进入阿里云首页告诉我找不到购买云主机的地方。 点击云服务器ECS即可找到。 付款后,登录阿里云…

期货开户交易切勿满仓操作

平时我们交易主要是仓位管理风险,切勿不要满仓操作,满仓相当于一锤子买卖,我们做交易要有交易计划,计划中除了开仓点.止损点.止盈点外,还有加仓点,所以我们要留下充足的加仓仓位,有很多投资者是…

传感器在TWS耳机中的应用

一项音频产品使用报告显示,消费者对音频设备中音质差异的认知不断提高,对在设备上获得最佳音频体验的期待也在提升。自适应主动降噪、语音增强、空间音频等是提升TWS耳机用户体验的主要因素,这些技术背后都有运动传感器的身影,包括…

一文搞定Kafka安装和配置(Windows)

一文搞定Kafka安装和配置(Windows) 概述 Kafka是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点,Kafka适合离线和在线消息消费,Kafka消息保留在磁盘上&#xff0c…

2024/3/6打卡最短编辑距离---线性DP

题目: 给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有: 删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。 现在请你求出&a…

Draft-P802.11be-D3.2协议学习__$Annex-Z-HE-SIG-B-and-EHT-SIG-content-examples

Draft-P802.11be-D3.2协议学习__$Annex-Z-HE-SIG-B-and-EHT-SIG-content-examples Z.1 GeneralZ.2 HE-SIG-B example 1Z.3 HE-SIG-B example 2Z.4 HE-SIG-B example 3Z.5 HE-SIG-B example 4Z.6 EHT-SIG example 1(EHT OFDMA 80MHz)Z.7 EHT-SIG example …

Java两周半速成之路(第十一天)

集合 1.概述: (1)为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。 (2)数组和集合类同是容器,有何…

【Godot4自学手册】第二十节增加游戏的打击感,镜头震颤、冻结帧和死亡特效

这节我主要学习增加游戏的打击感。我们通过镜头震颤、冻结帧、增加攻击点特效,增加死亡。开始了。 一、添加攻击点特效 增加攻击点特效就是,在攻击敌人时,会在敌人受击点显示一个受击动画。 1.添加动画。 第一步先做个受击点动画。切换到…

鲸鱼优化算法(WOA)优化随机森林回归预测(RF)

WOA-RF回归 鲸鱼优化算法(WOA)优化随机森林回归预测(RF) 可以更换算法和替换成自己需要预测的数据集 实验结果如下

PAT——1020月饼(python)

题目要求 题目思路 计算每种月饼的均价,优先卖出均价最高的月饼计算总价格,需要注意,当全部月饼都不够需求时,价格就是当前总价格 题目代码(python) def mooncake(cakelist,need_cake): # 输入月饼信…

Leetcode 239:滑动窗口最大值

题意 大小为 k 的滑动窗口从整数数组 nums 的最左侧移到最右侧,只能看到滑动窗口中的 k 个数字,窗口每次向右移动一位。 返回滑动窗口的最大值。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7], k 3 输出:[3,3,5,5,6,7] …

Common Sense Machines(CSM):立志成为图像生成适用于游戏引擎的3D资产AI产品

详细说明 Common Sense Machines(CMS):立志成为图像生成适用于游戏引擎的3D资产AI产品-喜好儿aigc详细说明:https://heehel.com/CSM-3d 官方网站:https://www.csm.ai/ 使用体验网址:https://3d.csm.ai/ 来…

stable diffusion的额外信息融入方式

conditioning怎么往sd中添加,一般有三种,一种是直接和latent拼一下,另外很多是在unet结构Spatialtransformers上加,和文本特征一样,通过cross-attention往unet上加,这里还需要注意一点,在文本嵌…

就业班 2401--3.5 Linux Day11--DNS解析

DNS域名解析服务 少壮不努力,老大徒伤悲。一、 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,…

MySQL 空间碎片详解

文章目录 前言1. 空间碎片如何产生2. 空间碎片如何查看3. 空间碎片如何回收后记 前言 MySQL 数据库在运行过程中,随着时间的推移,可能会出现空间碎片的问题。空间碎片是指数据库表中不再使用的空间,但由于各种原因,这些空间并没有…

集简云SDK嵌入支持传值,支持通过接口创建和管理流程

集简云SDK嵌入方案,允许开发者将集简云的产品功能直接嵌入到自己的产品中,用户无需单独注册或登录集简云,即可在第三方产品内使用集简云提供的功能。 目前,SDK嵌入方案已支持传值功能,通过SDK嵌入,可以在创…