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**** 1829440 points
Other Parts Discussed in Thread: TMS320F28379D, AMC1305M25, CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/697546/tms320f28377d-get-data-out-sigma-delta-filter-to-analyze-and-compare

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

社区好、我在从 Σ-Δ 滤波器模块中获取正确数据时遇到了问题。 该位流由 TI 的 AMC1305M25生成。 为了进行滤波、我使用 TMS320F28379D 的集成 SDFM (具有集线站的 controlCARD 版本)。
两侧都需要一个 CLK 才能正常工作、为此、我在 TMS320F28379D 上配置了一个 ePWM 模块。 以20MHz 运行的 CLK 以最快速度获取详细数据。

在第一个测试中、我使用 了 controlSUITE "sdfm_PWM_SYNC"中的一个项目。 OSR 为256且位移为9位的 SDFM-Data 滤波器的配置基本配置可让我获得分流器上正电压的确切值。 (此时、我仅使用正直流偏移、无交流电压。) 在我看来,否定直流偏移的值不正确。
示例:
可在分流器上测量的实际电压为170mV。
(配置 OSR=256;位移=9)
从 SDFM、我得到整数值17524 (二进制010001110100)。
我已计算
[(max.full-scale-range)/(16位数据)] x SDFM-Data-Value =分流器上的电压
[(0、32V)/(2^15)] x 17524 = 0、171V
我认为这是正确的。

现在、我切换直流偏移(-170mV)的极性、并得到...
(配置 OSR=256;位移=9)
从 SDFM、我得到一个65462的整数值(二进制111110110110)。
这应该是一个二进制补码形式的值。
对于这个、新的整数值将为74。
但即使是74或65462、我也能得到 -170mV 的源极电压值。

对于所需的 OSR=64和 Bitshift=4配置、我甚至不会得到预期值。 在技术参考手册中、我找到了正确位移的指南。
表13-5. 移位控制位配置设置
但我n´t 这是不正确的、因为我得到的值与预期值不符。 我决定将 Bitshift 更改为3、现在我得到正直流失调电压的预期值。
可在分流器上测量的实际电压为170mV。
(配置 OSR=64;位移=3)
从 SDFM、我得到整数值17524 (二进制010001110100)。
我已计算
[(0、32V)/(2^15)] x 17524 = 0、171V
我认为这是正确的。

现在、我切换直流偏移(-170mV)的极性、并得到...
(配置 OSR=64;位移=3)
从 SDFM、我得到一个65453的整数值(二进制111110101101)。
这应该是一个二进制补码形式的值。
对于这个、新的整数值将为83。
但即使是83或65453、让我返回-170mV 的源极电压 值。


我出了什么问题?
是否可以测量被否决的值、或者我使用的原始项目是否不是针对此进行的?
位移是否正确? 我的计算错误吗?

我很乐意得到有用的回复。

巴斯蒂

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

    表13-5. 表中提供的移位控制位配置设置确实正确。 对于32、64、128、256等某些 OSR、我们需要右移额外位、这是为什么?

    例如、当 OSR = 32时、

    最小值=-32768、在16位模式下、最小值= 0x8000
    最大值= 32768、在16位模式下、最大值= 0x8000

    如果 OSR = 32、如果右移0、则最小值和最大值都将仅获得0x8000。 这显然是不正确的。 但是、如果您将右移其他位、则得到最小值=-16384且最大值= 16384、并且您将能够区分最小值和最大值。

    只有当 SD 调制器在饱和区域中运行时、您才会遇到此问题。 如果应用于 SD 调制器的模拟差分电压处于指定的线性满量程范围(FSR)内、则无需此处提及其他位。

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

    Manoj、您好!


    很抱歉、我的错误、但我的电路存在质量问题、这会为负电压产生错误的数据输出。

    但是、现在我为同一位流配置了两个滤波器。
    第一个位流使用 OSR=256和 Bitshift=9进行滤波。 这是原始配置并重新给出逻辑值。
    我在同一位流上的 OSR=64和 Bitshift=3的新配置将返回相同的值。
    由于这个结果、我一直停留在该位置、即表错误、我必须使用位移3而不是4来返回正确的值。

    此致 Basti

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

    表格不是错误的。

    如上所述、如果差分模拟电压输入在线性满量程范围内工作且不达到饱和、则可以在 OSR=64时进行位移3。 当 SD 调制器饱和时、您需要额外的位移4。

    此致、
    曼诺伊