【轮式平衡机器人】——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模块进行如下配置:

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

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

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

相关文章

代码随想录算法训练营第11天

20. 有效的括号 方法: 1. 如果 !st.empty() return false2.如果st.top() ! s[i] return false3. 如果 st.empty() return false注意: 以下这种写法 不满足 题目要求的第二点,不能以正确的顺序闭合 if(s[i] st.top()){return true;s…

世界级通讯社发稿-法新社海外发稿渠道-大舍传媒

世界级通讯社发稿-法新社海外发稿渠道-大舍传媒 美联社:全球最大的通讯社之一 美联社(Associated Press)是全球最大的通讯社之一,成立于1846年,总部位于美国纽约。该社拥有一支庞大的全球新闻团队,涵盖了…

x86使用PID模式检测磁盘是否存在--代码实现

磁盘 视频教程以及实际代码可以看这一个教程 ATA PIO Mode - OSDev Wiki 下面的大部分来自这一个网址的翻译 在磁盘的第一个扇区里面可以有4个描述分区的描述符 电脑有两个总线, Primary Bus, Secondary Bus, 这两个都有一个Msater Driver和一个Slave Driver According to t…

Ceph qos 限速

因为1 Mbps 1,000,000 bps rbd_qos_bps_limit、rbd_qos_read_bps_limit和rbd_qos_write_bps_limit都是与RBD(Rados Block Device)的QoS(Quality of Service,服务质量)相关的参数,用于限制I/O操作的速率。这…

【EI会议征稿通知】第四届人工智能,大数据与算法国际学术会议 (CAIBDA 2024)

第四届人工智能,大数据与算法国际学术会议 (CAIBDA 2024) 2024 4th International Conference on Artificial Intelligence, Big Data and Algorithms 由河南省科学院、河南大学主办,河南省科学院智慧创制研究所、河南大学学术发展部、河南大学人工智能…

【MATLAB源码-第157期】基于matlab的海马优化算法(SHO)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 海马优化器(Sea Horse Optimizer, SHO)是一种近年来提出的新型启发式算法,其设计灵感来源于海洋中海马的行为模式,特别是它们在寻找食物和伴侣时表现出的独特策略。海马因其独特…

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复,初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图: 1.isFucntion is not function,是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

移动端的自动化测试,最常见的是 Android 自动化测试,我个人觉得 Android 的测试优先级会更高,也更开放,更容易测试;而 iOS 相较于 Android 要安全稳定的多,但也是一个必须测试的方向,这个系列文…

计算机能转嵌入式吗?

我是电气工程转的嵌入式单片机方向。 那是2011年的事了,当时贴吧也是一片哀嚎。 有找不到工作的,也有干了7,8年月薪不过万的。 这么年过去了,如果你仔细观察每个行业,都有一群骂娘的,也一群混得风生水起的。 主要和圈子…

IDEA修改git提交者的信息

git提交后,idea会记录下提交人的信息,如果不修改提交人信息的话,会有一个默认值。避免每次提交都要填提交人信息,直接设置成自己想要的默认值,该怎么操作? 提交的时候在这里修改提交人信息 避免每次都去设置…

显示高考天数倒计时——vba实现

以下代码实现高考倒计时: Sub 高考倒计时() 高考日期 CDate("06,07," & Year(Date)) If Date > 高考日期 Then高考日期 CDate("06-07-" & Year(Date) 1) End If 年月日 Year(Date) & "年" & Month(Date) &am…

【Python】新手入门(5):# -*- coding: UTF-8 -*- 的作用详解

【Python】新手入门(5):# -*- coding: UTF-8 -*- 的作用详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础…

code: 500 ] This subject is anonymous - it does not have any identifying

项目场景: 相关背景: 使用idea 开发java 项目,前端页面请求 页面中相关的接口时,idea 控制台有报错信息出现,前端请求失败。 问题描述 问题: 使用idea 开发java 项目,前端页面请求 页面中相…

【Linux】磁盘情况、挂载,df -h无法看到的卷

文章目录 解决挂载、解决挂载完重启就消失1、查看linux下的硬盘挂载的空间、使用空间2、查看没有挂载的硬盘是否检测在系统中3、挂载 (挂载完,要在/etc/fstab 下面配置挂载信息 要不然重启挂载就消失了) 解决挂载、解决挂载完重启就消失 linu…

STP---生成树协议

STP的作用 a)Stp通过阻塞端口来消除环路,并能够实现链路备份目的 b)消除了广播风暴 c)物理链路冗余,网络变成了层次化结构的网络 STP操作 选举一个根桥每个非根交换机选举一个根端口每个网段选举一个指定端口阻塞非根,非指定端口 STP--生成树…

windows11配置电脑IP

windows11配置电脑IP 选择"开始>设置>“网络&Internet >以太网”。在 "属性"下,编辑IP地址,子网掩码,网关以及DNS。

【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0

目录 一、 Kubernetes 的概述 二、服务器配置 2.1 服务器部署规划 2.2服务器初始化配置 三、安装Docker/kubeadm/kubelet【所有节点】 3.1 安装Docker 3.2 添加阿里云YUM软件源 3.3 安装kubeadm,kubelet和kubectl 四、部署Kubernetes Master 五、部署Kube…

企业对接Walmart平台API流程 On-request Reports API(二)

对接On-request Reports API 1、对接指南1.1 报告生成时间1.2 报告保留期1.3 请求限制1.4 报告请求工作流如何申请报告第 1 步:申请取消报告第 2 步:获取报表可用性状态第 3 步:下载报告 URL 2、代码实现2.1、获取访问API的token2.2、构建公共…

Codeforces Round 932 (Div. 2) --- C. Messenger in MAC --- 题解

C Messenger in MAC 题目大意: 思路解析: 答案计算为 , 可以发现当所选的几个信息固定后,其实后面的一项就变为b_max - b_min,得到了这个结论之后,其实我们可以直接把整个信息按照b进行排序,枚举l,r&am…

Day36 网络概述、IP划分、网络模型

文章目录 网络发展史局域网和广域网局域网(LAN)广域网(Wan) 光猫路由器 IP地址基本概念地址划分特殊地址(后续编程使用)IP地址转换端口字节序 网络模型网络模型OSI模型(了解)TCP/IP模…