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.

[参考译文] TMS320F28075:采用曼彻斯特编码的 AMC13032510芯片的杂散 SDFM 输出

Guru**** 2538950 points
Other Parts Discussed in Thread: AMC1303E2510, AMC1306M25

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/791077/tms320f28075-spurious-sdfm-output-with-manchester-encoded-amc13032510-chip

器件型号:TMS320F28075
主题中讨论的其他器件:AMC1303E2510AMC1306M25

您好!

我正在使用 TMS320F28075 SDFM1的 Filters1、2和3来读取来自3  个单独的 AMC1303E2510芯片的曼彻斯特编码输出。  AMC1303E2510 具有其内部生成的10MHz CLK、因此我使用 CMPC 和 ePWM11的 CMPD 来同步 SDFM1的滤波器1、2和3。 在读取每个滤波器的结果后、它被重新缩放到 DAC 范围(0-4095)、3个滤波器输出在3个 DAC 上输出。  我已经附加了下面项目的主.c 文件。

我遇到的问题是 SDFM 模块的输出有时是错误的。 在下面的示波器快照中:

- CH1 (黄色)是滤波器1 AMC1303芯片的+/-10V 输入(通过电阻分压器)。 +/-10V 在 AMC1303输入端产生+/-250mV 电压。

- CH2 (粉色)是滤波器1的 DAC 输出(请注意、它通过外部运算放大器缓冲器来增加其振幅)。

您可以在 CH2的放大图中看到、DAC 输出在大约40uS 内是错误的(在代码中、SDFM 采样周期大约为20us、因此这对应于 SDFM 模块中的2个错误值)。 我还验证了问题与 DAC 转换无关(即从 SDDATA 寄存器中读取的滤波器1的原始数据不正确)。

当 ePWM1计数器为0时、ISR 例程 epwm1_ISR 被触发。 它配置为向上计数模式。 PWM 周期被设定为 SDFM 采样周期的4倍。 这是因为在 PWM 同步之后、前两个 SDFM 输出值不正确(使用 SINC3滤波器)。 ePWM11的设置与 ePWM1相同、并通过由 ePWM10馈送的来自 ePWM1的同步脉冲输入与 ePWM1计数器同步。

ePWM11.CMPC 和 CMPD 被设定为 SDFM_RESET_CMP_VALUE。  设置 SDFM_RESET_CMP_VALUE、以便在 PWM 计数器重置为0之前发生数据滤波器延迟+ 5个 SD 时钟周期。 因此、在 CMPC/CMPD PWM 同步之后、在 ISR 触发之前、应该有3个 SDFM 输出值的时间。 因此、我确信问题不是因为我在 PWMSYNC 事件之后读取了2个不正确的样本中的一个。

在 ISR 中、检查滤波器1、2和3的 ACK 和调制器故障标志。 如果任何 ACK 标志未设置或调制器故障标志已设置、则例程暂停(使用 ESTOP0)。 但是、即使值不正确、也不会发生这种情况。

最后、我在数据表和其他线程中看到、Δ-Σ 芯片(在本例中为 AMC1303E2510) CLK 周期必须介于8*T_SYSCLK - 20*T_SYSCLK 之间。 在我的代码中、我使用的是该行

InitSysPll (INT_OSC2、IMULT_10、FULT_0、PLLCLK_By_1);

将 MCU CLK 频率设置为100MHz。 因此 T_SYSCLK = 10ns。 因此 Δ-Σ CLK 周期必须介于80ns - 200ns 之间。 对于10MHz Δ-Σ CLK、周期为100ns、因此该值应该很小。

您看到我所描述的设置有什么问题吗? 您以前是否见过这种行为?

非常感谢、

费尔加尔

e2e.ti.com/.../8322.sdfm_5F00_pwm_5F00_sync_5F00_cpu_5F00_cpu01.c

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

    您是否尝试禁用 PWM 同步功能并检查您是否仍然看到问题?

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

    是的、我尝试禁用 PWM 同步功能、但问题仍然存在。

    我在数据转换器论坛中开始了一个相关的问题。 正如我在这里解释的那样、当我将输入降低到+/-9V (AMC1303E2510输入上的+/-225mV)时、问题就会消失、因此我想知道是否进入 AMC1303E2510的非线性输入范围会导致问题的发生。

    e2e.ti.com/.../791462

    谢谢、

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

    自从我上次发布后、问题再次出现。 即使输入为+/-5Vpp (AMC1303E2510输入为+/-125mV)、也会出现杂散结果。 因此、我再次关注 MCU SDFM。

    你有什么想法吗?

    谢谢、

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

    由于您说即使禁用了 PWM 同步、您也会看到此问题、因此我认为它与 SDFM 无关。

    此外、我不明白您说的"输入为+/-5Vpp (+/-125mV)"是什么意思

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此问题是否已解决? 解决方案是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj、

    否、我们尚未解决。 目前、我们已切换到未编码的 CLK 版本的 Δ-Σ 芯片(AMC1306M25)、工作正常。

    不过、我仍然希望了解一下这里的情况、以便我们可以在未来的项目中使用曼彻斯特版本。 但很遗憾、我现在找不到时间进一步调查、因此我现在将此主题标记为已解决、并在将来打开一个相关问题。

    在回答您的最后一个问题时、"input is +/5Vpp (+/-125mV)"表示 AMC1303E2510端子处的电压输入为+/-125mV。 这完全在该芯片的线性输入范围内(线性输入范围为+/-250mV)、因此我认为问题不在于 AMC1303E2510。

    谢谢、

    费尔加尔