8 增强型脉宽调制模块ePWM

文章目录

  • 8.1 PWM控制基本原理
  • 8.2 PWM结构及组成单位
  • 8.3 时基模块TB
    • 8.3.1 ePWM时基模块作用
    • 8.3.2 时基模块的关键信号和寄存器
  • 8.5 动作模块 AC
    • 8.5.1 动作模块的作用
    • 8.5.2 动作模块关键信号与寄存器
  • 8.11 PWM模块输出
    • 8.11.1 单边非对称波形
    • 8.11.2 单边非对称脉冲波形

8.1 PWM控制基本原理

PWM简称脉冲宽度调制。作用在于通过脉冲宽度调制,等效获得期望波形。

  • 按照正弦规律变化和正弦波等效的PWM波形,也成SPWM(sinusoidal)波形。

8.2 PWM结构及组成单位

F28335中每个ePWM都是一个独立的小模块。

  • 每个ePWM模块由两路ePWM输出组成,分别为ePWMxA何ePWMxB。

这一对PWM输出可以配置成三种

  • 两路独立的单边沿PWM输出(相同)
  • 两路独立的但互相对称的双边沿PWM输出(相反)
  • 一对双边沿非对称的PWM输出(互相独立)

共有6对这样的ePWM模块。每对PWM模块中的两个输出可以单独使用,所以可以认为有12路单独的ePWM。
此外,F28335还有6个APWM,通过CAP模块扩展配置,可以独立使用,因此F28335最多可以有18路PWM输出。
每组ePWM模块都包含一下7个模块:

  • 时基模块TB
  • 计数比较模块CC
  • 动作模块AQ
  • 死去产生模块DB
  • PWM斩波模块PC
  • 错误联防模块TZ
  • 时间触发模块ET

在这里插入图片描述PWM模块的输入输出框图如下:
在这里插入图片描述

  • PWM的输出引脚和GPIO引脚复用。

同步信号分为时间基础同步输入ePWMxSYNCI和ePWMxSYNCO。

  • 同步信号可以将ePWM各个模块的所有单元联系在一起。
  • 每个ePWM模块都可以根据需要被配置为使用同步信号或者忽略它。
  • 时钟同步输入和输出信号仅由ePWM1引脚产生。
  • ePWM1的同步输出也与第一个捕获模块eCAP1的同步信号相连接。

错误联防信号TZ1-TZ6。

  • 当过流等发生时,TZ信号可以触发故障。
  • 每个模块都可以被配置为使用或者忽略错误联防信号。

ADC启动信号。

  • ePWMSOCA和ePWMSOCB
  • 每个ePWM模块都有两个ADC转换启动信号。
  • 任何一个ePWM模块都可以启动ADC

外设总线:

  • 外设总线宽度为32位
  • 允许16位和32位的数据通过外设总线写入ePWM模块寄存器。

8.3 时基模块TB

8.3.1 ePWM时基模块作用

8.3.2 时基模块的关键信号和寄存器

下表为时基模块相关寄存器
在这里插入图片描述CTR为TBCTR时基计数寄存器的值。
PRD为TBPRD时基周期寄存器的值。

在这里插入图片描述

8.5 动作模块 AC

指定在发生时基和比较事件时 PWM 输出引脚的动作:

  • 不采取任何动作【输出信号保持为当前设置值。但该事件仍然可以触发中断和 ADC 开始转换】
  • ePWMxA 和/或 ePWMxB 输出信号变为高电平
  • ePWMxA 和/或 ePWMxB 输出信号变为低电平
  • ePWMxA 和/或 ePWMxB 输出信号来回切换(Toggle)

通过软件控制来强制改变 PWM 输出信号的状态【由 AQSFRC 和 AQCSFRC 两个寄存器控制】
通过软件来配置和控制 PWM 死区

8.5.1 动作模块的作用

1、AQ 模块根据下列事件来产生动作(置高、拉低、翻转):
CTR = PRD :时基模块来的信号,时基计数器的值等于周期寄存器的值;
CTR = ZERO :时基模块来的信号,时基计数器的值等于 0 ;
CTR = CMPA :计数器-比较模块(CC)来的信号,时基计数器的值等于比较寄存器 A 的值;
CTR = CMPB :计数器-比较模块(CC)来的信号,时基计数器的值等于比较寄存器 B 的值。
2、管理以上事件发生后 PWM 的输出极性;

3、针对时基计数器递增或递减时提供独立的动作控制。

8.5.2 动作模块关键信号与寄存器

在这里插入图片描述

8.11 PWM模块输出

8.11.1 单边非对称波形

ePWMxA和ePWMxB独立调制,高电平有效。

在这里插入图片描述

// Initialization Time
// = = = = = = = = = = = = = = = = = = = = = = = =
EPwm1Regs.TBPRD = 600; // 设定PWM周期为601个TBCLK时钟周期 Period = 601 TBCLK counts
EPwm1Regs.CMPA.half.CMPA = 350; // 比较器A为350个TBCLK Compare A = 350 TBCLK counts
EPwm1Regs.CMPB = 200; // 比较器A为200个TBCLK Compare B = 200 TBCLK counts
EPwm1Regs.TBPHS = 0; // 相位寄存器清零 Set Phase register to zero
EPwm1Regs.TBCTR = 0; // 时基计数器清零 clear TB counter
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;    //递增计数模式
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // 禁止相位控制 Phase loading disabled
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;    //禁止同步信号
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // TBCLK = SYSCLK
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on CTR = Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on CTR = Zero
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;        //当CTR = ZERO 时,将 ePWMA 拉高
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;      //当CTR = CAU 时,将 ePWMA 置低
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;        //当CTR = ZERO 时,将 ePWMB 拉高
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;      //当CTR = CBU 时,将 ePWMB 置低
//
// Run Time
// = = = = = = = = = = = = = = = = = = = = = = = =
EPwm1Regs.CMPA.half.CMPA = Duty1A; // adjust duty for output EPWM1A
EPwm1Regs.CMPB = Duty1B; //调整ePWMB的占空比

8.11.2 单边非对称脉冲波形

递增计数,单边非对称波形,(ePWMxA 和 ePWMxB 独立调制,低电平有效):
在这里插入图片描述

// Initialization Time
// = = = = = = = = = = = = = = = = = = = = = = = =
EPwm1Regs.TBPRD = 600; // Period = 601 TBCLK counts
EPwm1Regs.CMPA.half.CMPA = 350; // Compare A = 350 TBCLK counts
EPwm1Regs.CMPB = 200; // Compare B = 200 TBCLK counts
EPwm1Regs.TBPHS = 0; // Set Phase register to zero
EPwm1Regs.TBCTR = 0; // clear TB counter
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Phase loading disabled
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // TBCLK = SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on TBCTR = Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on TBCTR = Zero
EPwm1Regs.AQCTLA.bit.PRD = AQ_CLEAR;    //CTR = PRD 时,将 ePWMA 置低
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;      //CTR = CAU 时,将 ePWMA 拉高
EPwm1Regs.AQCTLB.bit.PRD = AQ_CLEAR;    //CTR = PRD 时,将 ePWMB 置低
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;      //CTR = CBU 时,将 ePWMB 拉高
//
// Run Time
// = = = = = = = = = = = = = = = = = = = = = = = =
EPwm1Regs.CMPA.half.CMPA = Duty1A; // adjust duty for output EPWM1A
EPwm1Regs.CMPB = Duty1B; // adjust duty for output EPWM1B

与11.1不一样的地方只有在初始化的最后部分。

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

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

相关文章

Less 安装教程

文章目录 前言LESS的系统要求安装LESS例子输出Less编译css工具后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:Sass和Less 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板…

kafka的设计原理

文章目录 1 Kafka简介2 Kafka的架构2.1 Kafka 一些重要概念2.2 工作流程2.3 副本原理2.4 分区和主题的关系2.5 生产者2.5.1 分区可以水平扩展2.5.2 分区策略 2.6 消费者2.6.1 消费方式2.6.2 分区分配策略 2.7 数据可靠性保证2.7.1 副本数据同步策略2.7.2 ACK 应答机制2.7.3 可靠…

C++ libcxxabi中dynamic_cast 实现

摘要:最近在看一个崩溃的过程中详细看了一遍cxxabi的定义,就想着看一些llvm中cxxabi的一些实现。本文描述了cxxabi中dynamic_cast的实现以及原理。   关键字:cxxabi,dynamic_cast 1 简介 C中,dynamic_cast用于有虚函数的继承链…

监控同一局域网内其它主机上网访问信息

1.先取得网关IP 2.安装IPTABLES路由表 sudo apt-get install iptables 3.启用IP转发 sudo sysctl -p 查看配置是否生效 4.配置路由 iptables -t nat -A POSTROUTING -j MASQUERADE 配置成功后,使用sudo iptables-save查看

Android获取原始图片Bitmap的宽高大小尺寸,Kotlin

Android获取原始图片Bitmap的宽高大小尺寸,Kotlin val options BitmapFactory.Options()options.inJustDecodeBounds trueval decodeBmp BitmapFactory.decodeResource(resources, R.mipmap.p1, options)//此时,decode出来的decodeBmp宽高并不是原始图…

Linux 中的 ls 命令使用教程

目录 前言 如何运用 ls 命令 1、列出带有所有权的文件和目录 2、获取以人类可读的方式显示的信息 3、列出隐藏文件 4、递归列出文件 5、在使用 ls 时对文件和目录做区分 6、列出指定扩展名的文件 7、基于大小对输出内容排序 8、根据日期和时间排序文件 让我们来总结…

【PyQt】(自定义类)阴影遮罩-升级版

这是之前发的代码(自定义类)阴影遮罩的升级版。 升级就升级在,优化了对非矩形控件的遮盖效果,例如圆角按钮,以及默认方法不满足时可以传入其他的遮盖方法。 自定义阴影遮罩Mask: class Mask(QWidget):__excludeNone__colorNonecl…

【中间件】消息队列中间件intro

中间件middleware 内容管理 introwhy use MQMQ实现漫谈主流消息队列QMQ IntroQMQ架构QMQ 存储模型 本文还是从理论层面分析消息队列中间件 cfeng现在处于理论分析阶段,以中间件例子,之前的blog对于中间件是从使用角度分享了相关的用法,现在就…

带你用uniapp从零开发一个仿小米商场_9. 轮播图组件封装及使用

导航栏有了,接下来就是轮播图了,轮播图如下, 因为uniapp 官方自己有轮播图,所以这里就不自己写了,直接使用uniapp的轮播图二次开发就好 uniapp的轮播图组件叫swiper ,感兴趣的朋友可以点击链接,直接去看官方文档,也可以看我这里实操 用hbuilderX编译uniapp的代码有一个好处…

FO-like Transformation

参考文献: [RS91] Rackoff C, Simon D R. Non-interactive zero-knowledge proof of knowledge and chosen ciphertext attack[C]//Annual international cryptology conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 1991: 433-444.[BR93] Bellare M…

枚举的第一行

2023年11月26日 问题: 好奇enum的所声明的枚举类的第一行是什么 从java技术卷1中第五章5.6中,了解是枚举类的实例 验证 错误信息: 解释: 此时只有有参构造 在这个枚举类里不能使用空,大概意思是说不能使用空参创建实例 校验 在原有的基础上创建一个无参构造 结果:不再报错,第…

常见树种(贵州省):019滇白珠、杜茎山、苍山越桔、黄背越桔、贵州毛柃、半齿柃、钝叶柃、细枝柃、细齿叶柃木、土蜜树、山矾、胡颓子、檵木

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、滇白珠…

电路 buck-boost相关知识

BUCK-BOOST 文章目录 BUCK-BOOST前言一、DC-DC工作模式电容电感特性伏秒积平衡原理 二、BUCK电路三、BOOST电路四、BUCK-BOOST电路总结 前言 最近需要用到buck-boost相关的电路知识,于是便写下这篇文章复习一下。 一、DC-DC 在学习buck-boost电路之前我们先来看一…

steam/csgo搬砖项目真能月入过万吗?到底真的假的

steam/csgo搬砖第三课之如何出售 steam搬砖核心原理是什么?为什么会有差价产生?buff不是更低价吗?很多小白会有这些疑问! steam搬砖指的是通过买卖csgo游戏装备赚钱的。 玩过游戏的应该就很清楚,像绝地求生&#xff…

新的centos7.9安装jenkins(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 接上一节文章。 这个版本默认git也安装好了,所以全局配置这个不需要了。 maven安装3.9.3版本…

第一百八十一回 如何绘制阴影效果

文章目录 1. 概念介绍2. 使用方法2.1 SegmentedButton2.2 ButtonSegment 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 1. 概念介绍 我们在本章回中介绍的SegmentedButton组件是一种分段式按钮,它把多个按钮连接成一组显示,组内再对不同的按钮进…

231126 刷题日报

1. 高楼扔鸡蛋 O(N*logN) 2. 698. 划分为k个相等的子集 没做出来,和划分两个子集不同 3. 300. 最长递增子序列 LIS petencie sorting 没看懂,明天看吧 4. 518. 零钱兑换 II 完全背包问题:每个物品数量是无限的 注意:dp的定义…

STM32F103C8T6_PWM引脚

可以看到:一共可以产生4 x 416路PWM信号:每个TIMER4路PWM, PA0,PA1,PA2,PA3,PA8,PA10,PA11; PA共7个 PB0,PB1,PB6,PB7,PB8,PB9,PB14; PB共7个

PTA NeuDS-数据库题目集

一.判断题 1.在数据库中产生数据不一致的根本原因是冗余。T 解析:数据冗余是数据库中产生数据不一致的根本原因,因为当同一数据存储在多个位置时,如果其中一个位置的数据被修改,其他位置的数据就不一致了。因此,在数据…

Jmeter接口测试快速入门 以飞致云平台为例

接口测试快速入门 以飞致云平台为例-CSDN博客 飞致云电商平台可以做接口测试练习。快速了解如何测试接口,如何做关联 系统基地址:https://gz.fit2cloud.com/ 接口测试快速入门 以飞致云平台为例-CSDN博客 博文中介绍了如何在swagger页面上进行接口测试。…