首页 > 其他分享 >ePWM相关记录

ePWM相关记录

时间:2024-11-06 16:09:22浏览次数:1  
标签:记录 ePWM 计数 计数器 信号 寄存器 相关 时基

此处记录TMS320F28x ePWM模块相关理解。

此处先介绍几个名词概念

TBCTR(时基计数器):时基计数器保存当前的计数值,用于生成PWM信号周期。

TBPRD(时基周期寄存器):这个寄存器存储PWM信号的周期值,计数器从0开始计数,直到TBPRD的值。

TBPHS(时基相位寄存器):这个寄存器控制PWM信号的相位偏移,主要用于调整PWM信号的起始点,以便实现相位调节。

CMPA(比较寄存器A):这是第一个比较寄存器,用来设置PWM的占空比。如果计数器的值小于CMPA的值,PWM信号为高电平;否则为低电平。

CMPB(比较寄存器B):这是第二个比较寄存器,通常用于生成对称PWM信号,或者用于双向PWM控制。

ePWMxSYNCI(时基同步信号输入):输入脉冲用于时基计数器与之前的 ePWM模块同步,每个 ePWM 模块可以通过软件配置为使用或者忽略此信号。ePMW1的时基同步信号输入来自外部引脚,而ePMW2的时基同步信号输入来自ePMW1的时基同步信号输出,之后的ePWM模块3、4等以此类推。

ePWMxSYNCO(时基同步信号输入):出脉冲用于随后的 ePWM 的时基计数器同步。该输出信号取决于以下三个事件之一,具体如何选择看软件配置:

  • ePWMxSYNCI
  • TBCTR=CMPB
  • TBCTR=0

 

ePWM 周期和频率的计算

ePWM 的频率是由时基周期寄存器值(TBPRD)和时基计数器的计数模式(TBCTRL)共同决定的。时基计数器的计数模式有向上计数(递增)模式、向下计数(递减)模式、向上-向下计数(先递增后递减)模式。下边就以周期寄存器设置为 4(TBPRD=4)举例说明。

向上-向下计数模式(先递增后递减)

在此模式下,时基计数器先从 0 开始向上计数(递增)直到递增到周期寄存器的值 4,然后再由 4 向下计数(递减)直到减到 0,再重复以上动作,如下图所示:

在此模式下,随着同步信号的到来,时基模块的输出波形有两种情形,需要通过设置相位方向 TBCTL[PHSDIR]来确定。如果 TBCTL[PHSDIR]=0 时,那么当同步信号到来时,对应的输出波形如下图所示:

如果 TBCTL[PHSDIR]=1 时,那么当同步信号到来时,对应的输出波形如下图所示:

 上图第一层为TBCTR的值的变化,第二层ePWMxSYNCI时基同步信号输入,第三层为CTR的方向,第四层为CTR值为0的信号,第五层为CRT值为PRD的信号。

当时基同步信号输入激活时,CTR无论是多少,都会被置为TBPHS的值。而TBCTL[PHSDIR]决定了CTR重置后的递增或递减,即CTR方向。当CTR的值达到特殊值时就会触发对应特殊信号,如当CTR达到TBPRD的值时,CTR=PRD信号就会被激活。

向上计数模式(递增)

在此模式下,时基计数器从 0 开始向上计数,直到递增到周期寄存器的值后,时基计数器会自动复位到 0,重复以上动作,如下图所示:

在此模式下,随着同步信号的到来,时基模块的输出波形如下所示:

向下计数模式(递减)

在此模式下,时基计数器首先加载周期寄存器的值,然后开始递减,直到减到 0 时,自动在加载周期寄存器的值,重复以上动作,如下图所示:

在此模式下,随着同步信号的到来,时基模块的输出波形如下所示:

 

待更新...

标签:记录,ePWM,计数,计数器,信号,寄存器,相关,时基
From: https://www.cnblogs.com/Explosion556/p/18530459

相关文章

  • bug解决记录:前端解密后的中文是问号的解决办法
     最近的项目中,遇到了这个问题,我们的容灾环境要进行演练,但是进行切换到容灾环境的时候,发现返回的中文都是?问号解决思路:1.先看下接口的请求头和响应头是不是指定了这个编码格式。排查出来发现都是有的2.看下解密和加密是否有指定编码格式设置字符byte[]bytes=srcData.getByt......
  • Cmake 实操 -- 使用文件操作命令添加源码文件并移除失效问题记录
    搜索文件使用file(GLOB_RECURSEfileListsearchDir/*.cpp)搜索searchDir目录下所有cpp文件,将路径保存到fileList中。GLOB_RECURSE:启用递归搜索。ps:searchDir不会被展开,如果searchDir中存在C/test/../test1,保存到fileList中的文件路径将仍然带有C/test/../test1,而不是C/test1......
  • [记录]安装 Python 中SPAM库失败
    报错信息:×pythonsetup.pyegg_infodidnotrunsuccessfully.│exitcode:1╰─>[41linesofoutput]runningegg_infocreating/private/var/folders/l9/f9rjm65s07bdf55y5xyk9f2c0000gn/T/pip-pip-egg-info-o3ic4gdp/progressbar.egg-infowriting/private/var/fo......
  • 博客园记录:汽车参数爬虫
    可以输入汽车品牌名,从而爬取对应汽车参数点击查看代码fromrandomimportrandomfrombs4importBeautifulSoupfromfake_useragentimportUserAgentfromdatetimeimporttimefromcoloramaimportForefromopenpyxlimportload_workbookfromopenpyxl.stylesimpor......
  • 学习记录只大端存储和小端存储
    大端存储和小端存储在计算机系统中,数据在内存中的存储方式并不是唯一的。对于多字节的数据类型(如int、float等),计算机可以以不同的方式在内存中存储它们。这些存储方式通常分为两种:大端存储(Big-Endian)和小端存储(Little-Endian)。了解这两种存储方式对底层编程和系统开发非......
  • list拷贝踩坑记录
    最近做项目中,有一个场景需要复制list给其他对象的属性赋值,然后再去根据对象的其他属性操作list的元素数据,其实就是一个list的拷贝问题代码还原一个list集合,元素类型为class,复制一下list,但是list里面元素还是指向原来的对象internalclassProgram{staticvoidMain(str......
  • 记录一次计数代替空延时的按键检测方法ByWYJ
    //按键处理voidkeyProc(void){ staticunsignedintCnt=0,KEY=0; if((GPIO_ReadInputData(GPIOA)&0xF000)!=0xF000)//按下时刻:判断GPIOA口是否有一个或多个按键按下 { Cnt+=1; KEY=GPIO_ReadInputData(GPIOA); if(Menu==5)//当Menu==5且GPIO_......
  • 在 Windows 11 中,如果在 WSL2 中使用了 mirrored 或 virtioproxy 模式,而子系统的 IP
    在Windows11中,如果在WSL2中使用了mirrored或virtioproxy模式,而子系统的IP地址与主机地址相同,通常这与WSL2的网络配置和虚拟化模式相关。1. 理解 mirrored 和 virtioproxy 模式mirrored模式:通常在虚拟化环境中,mirrored网络模式意味着虚拟机(或者在此情况下......
  • scala学习记录,Set,Map
    set:集合,表示没有重复元素的集合,特点:唯一语法格式:val变量名=Set[类型](元素1,元素2...)可变不可变可变(mutable)可对元素进行添加,删除等操作;不可变(immutable)创建后元素不能修改如果要定义可变的Set(mutable),需要额外导入包:importscala.collection.mutableSet常见操作对于......
  • 劫持微信聊天记录并分析还原 —— 解密数据库(二)
    本工具设计的初衷是用来获取微信账号的相关信息并解析PC版微信的数据库。程序以Python语言开发,可读取、解密、还原微信数据库并帮助用户查看聊天记录,还可以将其聊天记录导出为csv、html等格式用于AI训练,自动回复或备份等等作用。下面我们将深入探讨这个工具的各个方面及其......