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.

[参考译文] TMS320F28379D:1kHz PWM 输入下的 ECAP 零尖峰问题(尽管中断模式为 F28379D、Simulink):

Guru**** 2463330 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499933/tms320f28379d-ecap-zero-spike-issue-on-1-khz-pwm-input-despite-interrupt-mode-f28379d-simulink

部件号:TMS320F28379D

工具/软件:

我正在使用 德州仪器(TI) F28379D 微控制器 Simulink Embedded Coder 以捕获 1kHz PWM 信号 最大电流 TAS (扭矩角度传感器) 使用了 中断模式下的 eCAP 模块

系统设置:

  • 输入: 来自 TAS 传感器的1kHz PWM 信号(干净的信号、在示波器上进行了验证)

  • 采集: 将 ECAP 模块与结合使用 启用中断

  • Simulink 任务速率: 100kHz (10 µs 基本速率)

  • 数据访问: ECAP 值在 ISR 中读取或传递到 Simulink 进行处理或 CAN 传输

  • 发现的问题: 间歇性 也就零尖峰 脉冲宽度中的值

  • 使用的工具: Monitor & Tune (Simulink)和 CAN 输出(两者都出现相同的尖峰)

  • 目前、我在 无中断的情况下运行的采样时间为20kHz。

发现的问题:

尽管输入信号干净且 eCAP 配置通过中断进行了正确、但测得的脉冲宽度偶尔会下降至 做出响应 意外变化。 这些尖峰不存在于实际信号中、并随机出现。

即使在使用时也是如此 触发的子系统 中断驱动的捕获例程 、则问题仍然存在。 脉冲宽度通常正确、但有时系统会记录 A 零宽度脉冲 、导致下游问题。

问题:

  1. Simulink 的最佳实践有哪些 安全访问 ECAP 数据 使用慢速输入 PWM 和快速采样环路时?

  2. 我是否应该在 ISR 内缓冲 ECAP 数据并使用 "新数据可用"标志 主要环路吗?

  3. 使用 由 ECAP 中断触发的函数调用子系统 比触发子系统更可靠?

  4. 在 Simulink 中使用 ECAP 捕获低频 PWM (例如1kHz)时、是否有已知的最佳实践或常见缺陷? 感谢您的任何指导或建议!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Keerthi:

    我已经将这个工单发送给了我们的 Simulink 专家。  

    从 ECAP 的角度来看、我建议设置断点并从捕获寄存器中读取、以从调试器的角度查看它们是否正确。

    您能否读取 CAP1->4寄存器捕获的正确脉冲宽度?

    此致、

    Ryan Ma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    脉冲宽度通常正确、但有时系统会记录 A  零宽度脉冲 、导致下游问题。  所有图均为占空比

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Keerthi、

    MathWorks 工程师将是最佳帮手、为您提供最佳实践。

    从一般观察来看、您可以在没有监视器和调优选项的情况下进行检查、这可能会导致执行速度变慢。 检查是否可以将相同的行为直接部署到硬件上。

    请跟进 MathWorks 工程师的相关事宜。