我是靠谱客的博主 完美宝贝,最近开发中收集的这篇文章主要介绍Simulink嵌入式自动代码DSP F28335(3)——ePWM模块详解及应用例程简述1、模块介绍2、应用实例参考,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

  • 简述
  • 1、模块介绍
    • 1.1 General界面
    • 1.2 ePWMA界面
    • 1.3 ePWMB界面
    • 1.4 Counter Compare界面
    • 1.5 Deadband unit界面
  • 2、应用实例
    • 2.1 一路带死区互补输出(20kHz,占空比50%)
    • 2.2 两路同步输出
  • 参考


简述

本文以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数据手册

最后

以上就是完美宝贝为你收集整理的Simulink嵌入式自动代码DSP F28335(3)——ePWM模块详解及应用例程简述1、模块介绍2、应用实例参考的全部内容,希望文章能够帮你解决Simulink嵌入式自动代码DSP F28335(3)——ePWM模块详解及应用例程简述1、模块介绍2、应用实例参考所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部