This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我已从 ePWM 引脚生成2kHz PWM 脉冲。 但我想在输出脉冲和频率不超过10kHz 的高频脉冲之间斩波或执行"与"运算。 我无法使用斩波器模块、因为我将获得的最小频率为1.56MHz。 您能否告诉我如何在不使用斩波模块或外部与门的情况下实现斩波脉冲?
谢谢、
尊敬的 Cody:
我也有相同的问题、但如果不降低频率、是不可能的?
谢谢、
尊敬的 Cody:
我通过编写软件循环生成了斩波脉冲。 假设我有占空比为50%的100us 方波、并且我使用计时器每20us 切换一次该脉冲。
这里是不是从 ePWM 生成的方波。 通过比较定时器生成的三角和基准来生成它。 如果我使用 ePWM 模块输出来生成斩波脉冲、则会出现同步问题。 ePWM 模块和斩波 GPIO 引脚之间的同步是不同的、因此我不会在斩波脉冲和原始脉冲之间实现同步。
因此、我所做的是使用计时器生成自己的三角、并与基准进行比较以生成 PWM 脉冲。 然后在另一个 GPIO 引脚上执行另一个循环以生成斩波脉冲。
您能告诉我这是一个好解决方案吗? (生成自己的三角波并与基准进行比较以生成脉冲、以便在生成的脉冲和斩波脉冲之间实现同步)。 下面是生成的斩波脉冲
注: 如果我使用自己生成的三角形或斜升使用的计时器为20us、那么对于1000Hz、我仅获得50个样本、即离散样本、因此即使我设置了占空比、某些值(52.5%)确切值也不会反映在输出方波中、因为它不是由其形成的连续三角形 离散点。
谢谢、
Siva、
我不知道您所说的"生成的三角"和"参考"是什么意思... 如果您以另一种方式解释它、我可能会提供更多评论。
我认为最好的解决方案是使用两个 PWM、一个以斩波频率运行、另一个以所需 PWM 频率的两倍运行。 较高频率(斩波) PWM 应连接到所需的输出引脚。 然后、较低频率的 PWM 可以在 CTR=PRD ISR 中启用和禁用较高频率的 PWM。 您可以使用跳闸区域子模块或在 IO 缓冲器中禁用它、我可以认为一种方式比另一种方式更好的原因。
[引用 user="Siva Swami">注意: 如果我使用自己生成的三角形或斜升使用的计时器为20us、那么对于1000Hz、我仅获得50个样本、即离散样本、因此即使我设置了占空比、某些值(52.5%)确切值也不会反映在输出方波中、因为它不是由其形成的连续三角形 按离散点。[/quot]
增大斩波 PWM 的频率将帮助您在最终 PWM 输出中获得更高的分辨率。
此致、
Cody
我认为三角表示时基计数器
尊敬的 Cody:
首先、我们使用向上计数模式的计数器、因此通过使用时基计数器间接生成高频三角。 然后,我们通过将获得所需的占空比与基准相比较 (通过将 CMPA 或 CMPB 值设置为基准值)来比较获得的所需占空比。 因此、通过将 CMPA 或 CMPB 值设置为基准值、我们将高频三角形与基准信号进行比较、以在 ePWM 输出端获得与 PWM 版本的基准波形相同的占空比。
其次、斩波脉冲存在限制、每个脉冲应至少为20us。 因此、我不能将切屑频率设为高值。
让我知道使用软件代码(时基计数器三角)生成三角、并与折射进行比较以生成方波是否正常? 是否可以解决确切的占空比问题??
如果您需要更好的理解、我将与您分享代码。
谢谢、
Siva、
思考过这一点后、我相信我了解您正在做什么以及您遇到的问题。
请确认我的理解:
您所使用的解决方案似乎效果相当好、但似乎您需要在软件中经常更新 CMPA 和 CMPB 值。 以及脉宽不精确的问题。
如果我的理解是正确的、我认为如果您使用跳闸区域子模块来控制高频三角的输出、您将获得更好的结果。
尝试此操作:设置为高频三角形所需的脉冲宽度、然后 将比较值保持静态。 然后启用高频三角形的单次触发、这将允许您启用和禁用输出。
现在、您需要使用 SW 力强制并重置高频三角的单次触发。 应在参考信号的 ISR 中强制跳闸或清除跳闸。 请注意、您可能需要使基准信号的频率加倍、这将允许您在每个周期启用和禁用两次高频三角。
如果我没有正确解释您的帖子、我认为所有这些都毫无意义。
祝你好运、
Cody
尊敬的 Cody:
虽然我没有很清楚地表达这一点、但你已经很好地理解了。 感谢您的努力。 无论您认为什么是正确的、主要问题是不使用 ePWM。
由于为了消除电离问题、我生成了自己的计数器(三角形)、并且我将其与参考进行比较、以获得上面红色波形中显示的方波脉冲。 每当软件循环处于高电平时、我就会使用软件循环进行雄心勃勃的切换、我们可以在其中控制斩波频率和斩波脉冲宽度。 使用上面绿色波形中所示的软件环路的斩波脉冲结果。
唯一的问题是生成的三角形将具有离散点、具体取决于载波频率和 ISR 时间周期。 如果我将载波频率1000Hz 和 ISR 时间20us 置于这里、我将得到50个点、其中25个点用于递增计数、25个点用于递减计数。 因此、如果我增加 ISR 的时间或降低高频采样点数、即使使用此方法解决了同步问题、也会产生不准确的结果。 (因为在比较折射时可能不会在点之间得到、因为三角形或计数器具有太小的离散点)
1.使用软件循环生成自己的 traingle (计数器)和生成斩波形是否是一种好方法? (因为这样我可以消除同步延迟)
2.如何在不影响载波频率(训练频率或计数器频率)和定时器 ISR 的情况下提高精度? (计数器或培训精度取决于生成的采样点数量、而这些采样点数量取决于上述因素)
希望您能理解。 对于较低频率的斩波问题已由上述实现和前一封邮件中显示的相同波形解决、但没有同步问题。 仅关注提到的问题。
谢谢、