大家好、
以下是客户提出的问题、可能需要您的帮助:
客户希望将方波(增量编码器输出)相乘。 当输出稳定时、增量编码器的占空比为50%、应加倍器。 是否有方法将波形乘以 n? 最好更改程序中的数字 n。 客户目前正在考虑使用 ECAP 或 eQEP 读取频率、然后调整 PWM 寄存器的频率以输出。
1) 1)能否实时更改 PWM 设置频率寄存器?
2) 2)是否有其他解决方案?
您可以帮助检查此案例吗? 谢谢。
此致、
樱桃
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.
大家好、
以下是客户提出的问题、可能需要您的帮助:
客户希望将方波(增量编码器输出)相乘。 当输出稳定时、增量编码器的占空比为50%、应加倍器。 是否有方法将波形乘以 n? 最好更改程序中的数字 n。 客户目前正在考虑使用 ECAP 或 eQEP 读取频率、然后调整 PWM 寄存器的频率以输出。
1) 1)能否实时更改 PWM 设置频率寄存器?
2) 2)是否有其他解决方案?
您可以帮助检查此案例吗? 谢谢。
此致、
樱桃
您好 Cherry、
让我提出一个澄清问题。 当您说"多层"时、您是指频率相乘吗? 例如,初始信号的频率为10Hz,客户希望其频率为10*nHz?
如果是这种情况、并且他们使用 ePWM 模块来实现 PWM 信号、那么最简单的解决方案就是通过时基子模块调整 ePWM 的周期。 我强烈 建议通过影子加载而不是即时加载来完成此操作、因为这样可以在系统联机时安全地执行此操作。 或者、如果 ePWM 的占空比只需要更改、则可以通过调整计数器比较值来完成此操作、如器件 TRM 中 ePWM 的计数器比较子模块中所述。
我还想指出、如果客户希望保持相同的占空比、则该期间的调整应伴随 CMPA/B 的调整。
希望我能够提供帮助、
Jason Osborn
您好 Cherry、
那么、我最初的假设是否正确、即他们正在尝试更改频率? 如果是、则通过外部源控制该(或任何)加载/寄存器影子写入操作的时序是使用4类 ePWM 的全局加载功能完成的。 通过将全局负载触发器配置为由其外部脉冲生成(这可以通过几种不同的方法实现、其中最常见的实现方式是在 ePWM 输入 X-Bar 上将信号设置为 SyncIn 并利用该功能)、 客户能够在下一个 TBCLK 脉冲上调整这些寄存器中的值。
此致、
Jason Osborn
尊敬的 Jason Osborn:
[引用 userid="525429" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1159879/tms320f28388d-how-to-achieve-a-square-wave-multiplier/4363416 #4363416"]我最初的假设是正确的,那么他们正在尝试更改频率?是的、正确。
例如、有一个90-110kHz 的稳定信号、如果 MCU 进行采样、该信号将变为原始信号频率(900-1100kHz)输出的十倍。 整个过程中的延迟是多少?
谢谢、此致、
樱桃
您好 Cherry、
更改运行频率的总延迟量完全取决于 TBCLK (ePWM 的本地时钟)的设置、以及 (启用影子加载的情况下)影子加载事件的频率。 也就是说、考虑到数据表中描述的 ePWM 的最大频率和该客户的工作频率、从影子加载事件到寄存器更新的延迟应小于1 TBCLK 周期。 器件的 TRM 中提供了可用于更新这些寄存器的可用影子加载/全局加载事件列表。
此致、
Jason Osborn
(简短的不相关说明! 当我说要使用影子加载时、我在上面提到了"全局加载"、我想为客户/此线程的任何其他读者阐明-这是两个不同的东西。 影子加载会告诉器件"对于该特定寄存器、只要此影子加载事件、例如 x、就只会加载新值 TBCLK=0或 SyncIn=1、发生。" 同时、全局加载会告知器件"对于此影子寄存器列表、请忽略本地设置。 所有这些设备都使用此影子加载事件、以便它们都同时发生。"
我建议使用全局加载设置、因为周期调整通常伴随着 CMPx 值的调整、并且通过全局加载一次性配置影子寄存器更新设置比单独配置每个设置更简单。)