IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Simulink嵌入式自动代码DSP F28335(3)——ePWM模块详解及应用例程 -> 正文阅读

[嵌入式]Simulink嵌入式自动代码DSP F28335(3)——ePWM模块详解及应用例程


简述

本文以C2000硬件支持包F2837X的ePWM模块为例进行介绍,内容与F2833X模块相差不大,部分设置页面有少许差异。第二段将进行应用实例介绍:①一路带死区输出(20kHz,占空比50%②两路同步输出
基本设置和重要地方进行加粗标黄显示
阅读本文前先对ePWM模块有些了解,建议查看官方数据手册。
在这里插入图片描述

图一

1、模块介绍

1.1 General界面

在这里插入图片描述

图二
  1. Module:选择所使用的ePWM模块。F28379D可选16路ePWM模块。
  2. ePWMLink TBPRD:使当前ePWM模块链接到另一个ePWM模块,以获得另一ePWM模块的计时器周期值。(C2000系列部分处理器有这个功能)
  3. Timer period units:以时钟周期或以秒为单位确定计时器周期值。(为减小误差,获得最佳结果,建议选择时钟周期)
  4. Specify timer period via:填写计时器周期的方式,可以选择通过对话框填写或者输入端口确定。(如果计时器周期不变,可以选择通过对话框填写specify via dialog,如果选择输入端口input port,需要填写计时器初始周期值Timer initial period)
  5. Timer period:确定计时器周期值,当3[Timer period units]选择时钟周期时,此处单位为时钟周期步长(对于200MHz的F28379D,1=5ns);当3选择秒时,此处单位为秒。参数设置参考7[Counting mode]。
  6. Reload for time base period register(PRDLD):选择何时更新计时器周期值,默认计数值等于0时更新,也可选择同步事件或是立即更新。
  7. Counting mode:默认增减计数,也可选择增计数是减计数。
    在这里插入图片描述
图三
  • 如果选择增减计数:
    EPWMCLK =200MHz,所以TBCLK=5ns,如果想得到10kHz计时周期(载波频率),5[Timer period]数值为10000。
    计算方法:计时器周期 = 5ns * 10000 * 2 = 100us
  • 如果选择增计数或是减计数:
    且Timer period数值为10000,则计时器周期为20kHz
    计算方法:计时器周期 = 5ns * 10000 = 50us
  1. Synchronization action:确定相对于时基同步信号EPWMxSYNCI的相位偏置。(还不太明白其作用)
  • ePWM模块希望相位值在0到360度的范围内,以时钟周期为尺度,作为相位值的输入。因此,对于负值需要加上360度,使其达到0到360度的相位范围。例如,对于-90度的值,需要(360-90)=270度,并以时钟周期作为输入。
    对于任何大于360度的值,需要考虑用逻辑将该值规划到0到360度的范围内。例如,120 + (360 - 90) = 390应被包装成(390 - 360) = 30度,然后用时钟周期进行缩放,并将其作为输入提供给ePWM。
  1. Specify software synchronization via input port:创建一个同步端口SYNC,实现多个ePWM精确同步。
  2. Enable digital compare A event1 synchronization(DCAEVT1):选择此参数可将此PWM模块与另一个PWM模块的时基同步,使用相位偏移值微调两个模块之间的同步。
  3. Enable digital compare B event1 synchronization(DCBEVT1):作用同10。
  4. Synchronization output(SYNCO):确定时基计数器什么何时同步。
  5. Peripheral synchronization event (PWMSYNCSEL):外围同步。
  6. Time base clock (TBCLK) prescaler divider:时基时钟分频。
  7. High speed time base clock (HSPCLKDIV) prescaler divider:高速时基时钟分频。
  8. Enable swap module A and B:交换ePWMA和ePWMB输出。

1.2 ePWMA界面

在这里插入图片描述

图四
  1. Enable ePWMA:使能ePWMA
  2. 输出电平何时变化(计数值等于0,周期值,CMPA,CMPB时变化)下图为默认值
    在这里插入图片描述
图五

可以理解为调制波与载波相交时电平变化情况。

  1. Add continuous software force input port:添加连续软件执行输入端口,创建一个输入端口SFA,可用于控制软件执行逻辑。将以下值之一作为无符号整数数据类型发送到SFA:
    0=强制禁用:不执行任何操作(默认)。
    1=强制低:清除低
    2=强制高:设置高
  2. Continuous software force logic:如果未创建SFA输入端口,则可以使用连续软件执行逻辑。可以指定以下选项之一:
    Forcing disable: Do nothing (default).
    Forcing low: Clear low
    Forcing high: Set high
  3. Reload condition for software force:软件执行重载情况(何时重载)

1.3 ePWMB界面

在这里插入图片描述

图六

同ePWMA
Inverted version of ePWMA:反转ePWM A信号并将其作为ePWM B输出。

1.4 Counter Compare界面

在这里插入图片描述

图七
  1. ePWMLink CMPA:链接另一ePWM模块的CMPA值。
  2. CMPA units:确定CMPA单位,时钟周期或是百分比。
  3. Specify CMPA via:指定脉宽来源:根据输入端口或是对话框填写。(如果选择输入端口需填写初始值)
  4. Reload for compare A Register (SHDWAMODE):比较寄存器周期何时重载

CMPB、CMPC、CMPD设置同理

1.5 Deadband unit界面

在这里插入图片描述

图八
  1. Use deadband for ePWM1A:使用ePWM1A死区设置。
  2. Use deadband for ePWM1B:使用ePWM1B死区设置。
  3. Enable half-cycle clocking:启用半周期时钟,使死区分辨率加倍。
  4. Deadband polarity:确定死区极性,如下图
    在这里插入图片描述
图九
  1. Signal source for raising edge (RED):上升信号源,选择参考信号上升沿,如图9中Original。
  2. Signal source for falling edge (FED):下降信号源,选择参考信号下降沿。
  3. Deadband period units:确定死区时间单位,选择时钟周期或是秒。
  4. Deadband period source:死区时间确定方式,可选择输入端口或是对话框填写。
  5. Deadband Rising edge (RED) period (0~16383)和Deadband Falling edge (FED) period (0~16383):确定死区时间。
  6. Reload for DBRED register (SHDWDBRED)和Reload for DBFED register (SHDWDBFED):重载死区寄存器设置。

2、应用实例

2.1 一路带死区互补输出(20kHz,占空比50%)

模型搭建如图十

在这里插入图片描述

图十

在这里插入图片描述

图十一

如图11所示,计时器单元选择以时钟周期为单位,计数模式增减计数,当计时器周期设位5000时
F28379D(200MHz,5ns) 输出脉冲周期为5ns * 5000 * 2 = 50us,也就是20kHz

在这里插入图片描述

图十二

ePWMA
当计时器数值向上增加等于CMPA时,输出低电平
当计时器数值向下减小等于CMPA时,输出高电平

在这里插入图片描述

图十三

ePWMB
当计时器数值向上增加等于CMPA时,输出高电平
当计时器数值向下减小等于CMPA时,输出低电平

在这里插入图片描述

图十四

只用到了CMPA,并通过输入接口确定,设置为2500使占空比为50%

在这里插入图片描述

图十五

确定死区设置极性AHC,死区时间单边5ns*500=2.5us

实验结果
请添加图片描述

图十六

示波器结果与设置一致

note:
如果选择死区设置,即使不勾选使能ePWM,也能输出。

2.2 两路同步输出

模型搭建如图十七所示。
在这里插入图片描述

图十七

在这里插入图片描述

图十八

配置与2.1一致,注意打开同步输出。

实验结果
请添加图片描述

请添加图片描述

图十九

因示波器探头不够,只观察ePWMA和ePWMB同步输出的端口,由示波器结果可看出,两者同步电平变化时间差小于10ns。

参考

① MATLAB help文档
② DSP C2000数据手册

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:36:26  更:2021-08-31 15:37:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:52:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码