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.

[参考译文] TMS320F28377D:数据从 Σ-Δ 滤波器中传出同步错误的样本

Guru**** 1807890 points
Other Parts Discussed in Thread: C2000WARE, ADS1203
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/735829/tms320f28377d-data-out-of-sigma-delta-filter-incorrect-samples-by-sync

器件型号:TMS320F28377D
主题中讨论的其他器件:C2000WAREADS1203

你好

是否有人可以简单地解释为什么使用这些"SYNC"和"RESET"? 我不熟悉本模块的使用、因此很抱歉有这样的问题! 但我已经阅读了 TRM、无法理解为什么使用"SYNC"和"RESET"(例如在 "IDDK_Servo"中)、以及为什么在"sdfm_filters_sync_cpu_cpu01.c"等示例中 禁用了它们?

注意事项

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

    我相信您正在谈论 SDSYNC 事件(允许 SDFM 滤波器通道复位的 PWM 信号)。 此功能用于精确地读取相对于 PWM 周期的 SDFM 滤波器数据。 如果您不需要此功能、则可以将其禁用。 sdfm_filters_sync_cpu_cpu01示例不使用此功能、因此已禁用。

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Monaj
    感谢你的答复

    但我仍然不能完全理解这个问题。
    正如我注意到的(如果我错了、请纠正我的错误)、DSP 以"调制器数据速率"的速率从 AMC 获取数据。 然后、滤波器模块以" SINC 滤波器的数据速率"的速率输出数据。 (Q1:该数据是可以使用的经过滤的数据还是原始数据? 我认为这是原始数据)在生成"sinc 滤波器的延迟"后(即滤波器周期延迟期间的 rawdata 移动平均值)(是否正确或我错了?)
    第二个问题是何时生成这些数据(原始数据和过滤数据)? (时间循环)并且如果每个"sinc 滤波器的延迟"都输出此滤波数据、为什么需要 PWM 同步?
    第三个问题是、当我想定期读取并使用测量的电流时、是否应该使用 PWM 同步功能? 我应该如何解决使用 PWM 重置滤波器模块的缺点、这些缺点会导致生成一些错误的数据(在表12-4 TRM 中提到)

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

    Q1) SDFM 滤波器数据"正弦滤波器的数据速率"不是原始数据。 它确实是经过过滤的数据。

    Q2)需要 sinc 滤波器的延迟、以了解 PWM 同步事件(SDSYNC)后等待读取正确滤波器数据的时间量。 例如、当 SD 调制器时钟频率为20MHz、DOSR = 256时、您将获得每256/20MHz = 12.8us (或78.1 KHz)一次新的滤波数据。 但是、当数据滤波器收到 SDSYNC 事件时、您必须等待 sinc 滤波器+ 5个 SDCLK 周期的延迟、才能读取正确的滤波数据。

    3)是的、如果您希望在读取 SDFM 数据滤波器时有精确的时间、则需要使用 PWM 同步功能。 发生 SDSYNC 事件后、您需要忽略不正确的样本。 没有办法解决这个问题。

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

    您好 Manoj
    感谢你的帮助
     请告诉我、除了 PWM11和 PWM12之外、是否还有其他生成同步事件的方法来复位 SDFM 并将其与 PWM 同步。 因为 不幸 的是、我使用这些引脚的原因是另一个(因为 SDFM 本身!) 我认为它们不能用于在我的系统设计中生成同步事件!


    此致
    萨那

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

    1) 1)您的理解是正确的。

    2) 2) PWM11和 PWM12是唯一可用于生成此 SDSYNC 事件的 PWM。 其他 PWM 都不支持此功能。
    PWM11.CMPC/CMPD 和 PWM12.CMPC/CMPD 信号在内部连接到 SDFM。 您无需外部引脚即可支持此功能。

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

    您好、Manoj

    非常感谢您的回答! 我想我终于熟悉了这个模块以及如何使用它了!

    -关于 可用作 PWM11A 和 PWM11B 的 GPIO 20和21,我能否将这些 GPIO 定义为 SD,而不是将 GPIO 165和166用作 PWM11A 和 PWM11B 以实现同步?

    最后一个问题是、在"sdfm_pwm_sync_cpu01.c"等 SD 操作示例文件中、为什么没有任何 SD 时钟设置? 例如、没有引脚被定义为用作 SDFM 时钟的 PWM? 如何为这些示例生成和连接时钟信号? 我应该更改它们并添加用作时钟的 PWM 吗?

    此致

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

    1) 1)是的、您可以将 GPIO20 / 21用作 SD 引脚、而不会出现任何问题。 要生成 SDSYNC 事件、您无需配置 PWM11A/11B (或)使用 GPIO165/166。 只需配置 PWM11.CMPC/CMPD 和 PWM12.CMPC/CMPD 即可。 无需外部引脚连接。

    2) 2)对于 C2000Ware 中的示例工程、我使用了具有内部振荡器的 ADS1203 SD调 制器。 因此、我不需要向调制器发送时钟信号。 如果您使用的调制器需要提供外部时钟、则可以配置其中一个 PWM 来为调制器提供时钟。

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj
    感谢你的帮助。
    非常感谢您的回复。
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴知道您已解决此问题。 我要结束这个线程。