增强型脉冲宽度调制模块(ePWM)图解
模块概览
子模块
主要包括8个子模块:
每一组PWM模块的输入信号主要有:
类别 |
信号 |
功能 |
同步信号 |
EPWMxSNYCI |
同步输入信号 |
TripZone |
TZ1~TZ3 |
TripZone输入 |
TRIPIN |
TRIPIN1~12 |
|
故障/错误输入 |
ECCDBLERR |
ECC错误 |
EMUSTOP |
(TZ6) |
|
CLOCKFAIL |
时钟失效(TZ5) |
|
EQEPxERR |
(TZ4) |
|
PIEERR |
PIE错误 |
|
COMPxOUT |
比较器输出信号 |
输出信号主要有:
类别 |
信号 |
功能 |
同步信号 |
EPWMxSNYCO |
同步信号输出 |
PWM输出 |
ePWMxA |
A路输出 |
ePWMxB |
B路输出 |
|
中断 |
EPWMxTZINT |
TZ中断 |
EPWMxINT |
PWM中断 |
|
触发ADC转换 |
EPWMxSOCA |
A路触发ADC转换 |
EPWMxSOCB |
B路触发ADC转换 |
关键信号交互
时基子模块
时基子模块在整个ePWM模块中的位置:
时基模块详解
计数周期
向上计数 或者 向下计数 模式:计数周期 = (TBPRD + 1)* Ttbclk
上下计数模式:计数周期 = (TBPRD * 2)* Ttbclk
计数同步
计数时序
向上计数
向下计数
与向上计数类似:
上下计数
当遇到同步事件时,也是从相位值开始重新计数。不过,接下来是向上计数还是向下计数取决于TBCTL寄存器中的PHSDIR位。
相位方向位
该位仅在时基计数器配置为加减计数模式时使用。 PHSDIR 位指示在同步事件发生并从相位 (TBPHS) 寄存器加载新相位值后时基计数器 (TBCTR) 将计数的方向。 这与同步事件之前计数器的方向无关。
在向上计数和向下计数模式中,该位被忽略。
0:同步事件后向下计数。
1:同步事件后向上计数。
当PHSDIR=0时:
当PHSDIR=1时:只要遇到同步事件,计数方向就会变成1(UP),而不管同步事件之前的计数方向是0还是1。然后从相位值开始,重新向上计数。
计数事件
有3个:
- CTR=zero
- CTR=PRD
- CTR=MAX(0xFFFF)
常用的是前2个。不管什么计数模式,也不管是否发生同步,只管比较CTR的值。和zero、PRD、MAX进行比较。
全局加载
启用此功能后,对于启用此模式的所有寄存器,内容从影子寄存器到活动寄存器的传输发生在与全局影子到活动加载控制寄存器 (GLDCTL[ GLDMODE])。 当 GLDCTL[GLD] = '1' 时,个别影子寄存器的影子到活动加载事件选择位被忽略,全局加载模式对由 GLDCFG[REGx] 启用的相应寄存器生效。
当 GLDCTL[GLD] = ‘1’且 GLDCFG[REGx] = ‘0’时,全局加载模式不影响相应的寄存器(REGx)。 各个影子寄存器的影子到活动加载事件选择位决定如何将内容从影子寄存器传输到活动寄存器。
计数比较子模块
在这:
详解:
加载模式有:
CTR=Zero
CTR=PRD
CTR=Zero或者CTR=PRD
软件强制同步:TBCTL寄存器的SWFSYNC位写1.
同步信号输入
比较事件
有2个:
- CTR=CMPA
- CTR=CMPB
动作限定子模块
在这:
详解:
输入信号:
类别 |
信号 |
功能 |
时钟 |
TBCLK |
|
事件 |
CTR=PRD |
计数器等于周期值 |
CTR=0 |
计数器等于0 |
|
CTR=CMPA |
计数器等于比较器A |
|
CTR=CMPB |
计数器等于比较器B |
|
计数方向 |
CTR_dir |
当时是向上计数还是向下计数 |
软件强制控制 |
SFRC |
|
其他 |
T1/T2 |
Based on comparator, trip or syncin events |
输出信号就是ePWMA和ePWMB。
触发事件
触发动作
- 置高
- 置低
- 高低翻转
- 不动作
影子模式
决定动作限制寄存器的加载时机。
其中,
LDAQAMODE决定什么计数事件;
LDAQASYNC决定是使用同步事件还是计数事件;
SHDWAQAMODE决定是立即加载,还是使用影子加载。
产生PWM驱动 示例
死区子模块
夹在动作限定模块和PWM斩波模块之间:
主要功能
死区模块的主要功能:
- 从单个 EPWMxA 输入生成具有死区关系的适当信号对(EPWMxA 和 EPWMxB)
- 编程信号对用于:
- 高电平有效 (Active high,AH)
- 低电平有效 (Active low,AL)
- 高有效互补 (Active high complementary,AHC)
- 低有效互补 (Active low complementary,ALC)
- 将可编程延迟添加到上升沿 (rising edges,RED)
- 将可编程延迟添加到下降沿 (falling edges,FED)
- 完全旁路(不使用死区模块)
子模块框图
典型应用
斩波器子模块
PWM 斩波器子模块允许高频载波信号调制由动作限定器和死区子模块生成的 PWM 波形。 如果需要基于脉冲变压器的栅极驱动器来控制电源开关元件,则此功能非常重要。
工作原理
说明:
- 相关寄存器:PCCTL
- CHPEN使能位:等于0时可以旁路斩波模块,EPWMxA和EPWMxB信号直通。
- CHPFREQ位:分频系数
- CHPDUTY:斩波的占空比
- OSHTWTH:第一个脉冲的宽度
简单斩波
就是将驱动信号中的高电平变成高电平脉冲。
第一个脉冲持续宽度
一次性模块是一种功能,它提供高能量的第一个脉冲以确保硬且快速的开启电源开关,而随后的维持脉冲,确保电源开关保持开启。 一次性宽度通过 OSHTWTH 位进行编程。
占空比控制
基于脉冲变压器的栅极驱动设计需要了解变压器和相关电路的磁性或特性。 饱和度就是这样一种考虑。 为了帮助栅极驱动设计人员,第二个和后续脉冲的占空比已经可编程。 这些持续脉冲确保在导通期间在电源开关栅极上保持正确的驱动强度和极性,因此可编程占空比允许通过软件控制来调整或优化设计。
Trip-Zone 子模块
控制逻辑
中断逻辑
事件触发子模块
触发输入:时基信号,计数比较信号,数字比较信号。
触发输出:PIE,ADC转换SOC。
子模块功能原理图
说明:
- 触发输入源:计数事件(CTR=Zero、PRD);比较事件(CTR=CMPA、CMPB)及计数方向;
- 可配置触发事件发生N次才输出。
事件触发产生中断
事件触发启动ADC转换
增强型脉冲宽度调制模块(ePWM)图解相关推荐
- 实验8 脉冲宽度调制(PWM)模块 北京化工大学 2019090034
实验8 脉冲宽度调制(PWM)模块 北京化工大学 2019090034 韩政霄 1 小结实验内容(1),写出程序的设计流程. #mermaid-svg-Tj4EWPiWDYXxIkjI {font-f ...
- 拓展模块使用教程和心得(四):PWM脉冲宽度调制及普通有刷马达和空心杯电机(测试平台:STC8A8K,STM32F103)
成就更好的自己 这次内容是给未来的新专栏(控制算法)打一个小基础,而且是为了完善上一期拓展模块教程三:步进电机的内容(https://blog.csdn.net/qq_36098477/article ...
- 蓝桥杯模块学习9——PWM脉冲宽度调制(深夜学习——单片机)
一.什么是PWM脉冲宽度调制: 对PWM简单理解(佛科院--深夜学习)_佛科院深夜学习的博客-CSDN博客 二.脉冲宽度调制实验: 1.代码思路: (1)我们可以利用定时器规定周期为10ms(100H ...
- 启明智显分享| ESP32学习笔记参考--PWM(脉冲宽度调制) 篇,配PWM控制 LED呼吸灯代码示例参考
提示:启明智显专为智能产品提供一站式彩屏显示+连接+云端服务+APP软件开发.维护等解决方案,帮厂商快速实现硬件的智能化.作为启明云端旗下方案公司,我们用心整理了开发小伙伴在开发过程中可能会遇到的问题 ...
- 脉冲宽度调制PWM的原理及应用
目录 一.什么是PWM信号 二.PWM信号是如何产生的 三.PWM有什么优点? 四.PWM的应用 一.什么是PWM信号 PWM,英文全称Pulse Width Modulation,是脉冲宽度调制的缩 ...
- 双极性正弦脉冲宽度调制
双极性正弦脉冲宽度调制 采用正弦脉冲宽度调制技术SPWM(Sinusoidal Pulse Width Modulation)是减少滤波器尺寸.获得高质量正弦波的有效手段. 一. SPWM基 ...
- PWM(脉冲宽度调制)信号原理
1.什么是PWM信号 PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字 ...
- CPS攻击案例(一)——基于脉冲宽度调制PWM的无人机攻击
本文系原创,转载请说明出处 Please Subscribe Wechat Official Account:信安科研人,获取更多的原创安全资讯 原论文链接:sec22-dayanikli.pdf ( ...
- 脉冲宽度调制pdm_PWM (脉冲宽度调制)原理与实现
原理与实现 1 . PWM 原理 2 .调制器设计思想 3 .具体实现设计 一. PWM (脉冲宽度调制 Pulse Width Modulation )原理: 脉冲宽度调制波通常由一列占空比不同的矩 ...
最新文章
- getRotationMatrix2D 函数
- java数组缓冲,java – 字节数组缓冲图像转换速度慢
- 【数字图像处理】 二.MFC单文档分割窗口显示图片
- Datawhale组队-pandas(上)基础(自学)
- Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
- Spring Boot 配置随机数技巧
- JavaScript Event Delegation, and event.target vs. event.currentTarget
- leetcode探索动态规划(三)
- Tornado使用模板
- 2012年信息系统项目管理师下半年上午考试习题与答案解析
- MarkdownPad的livepreview预览无效,显示this view has crashed
- 窗口特征(Window Features)
- Gentoo Linux KDE 下使用IBUS的问题
- matlab人脸识别样本库建立,facenet 人脸识别(二)——创建人脸库搭建人脸识别系统...
- 第三十七章 立方体贴图总结
- Skype和Lync互连互通
- 解决浏览器不支持display:flex的问题
- 本质复杂性 偶然复杂性_结构偶然性(第一部分)
- CodeGear RAD Studio 2007下载
- 在VMware虚拟机上安装统信UOS系统