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.

[参考译文] TMS320F280045:SDFM 问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1006276/tms320f280045-sdfm-issue

器件型号:TMS320F280045
主题中讨论的其他器件:ADS1203

各位专家、您好!

我的客户使用 SINCFAST 滤波器、OSR=128、 Sdfm1Regs.SDDPARM2.bit.SH=1。 当 AMC1306的输入为 -250mV~250mV 时、您会发现 数据波动很大。 他们认为、对于 SINCFAST 滤波器、OSR=128、数据范围为 -32768~32767、在16位数据范围内、不需要运行移位寄存器。 对吗?

第二 个问题是选择 SINC3滤波器时、在与 SINCFAST 滤波器类型相同的条件下、数据波动很大。 以下是 测量结果:

选择 SINC3滤波器时 、OSR=32、移位寄存器0、amc1306调制器输入250mV 信号、理论数据为25598、但实际数据范围为28389到28553。

代码如下:

EALLOW;

   EPwm5Regs.TBPHS.ALL = 0;

 

   EPwm5Regs.TBCTL.ALL = 0xc000;

   EPwm5Regs.CMPCTL.ALL = 0x0;

   EPwm5Regs.CMPCTL2.ALL = 0x0;

   EPwm5Regs.AQCSFRC.ALL = 0x0;   //强制禁用

/*动作限定符输出 A 控制寄存器*/

 

   EPwm5Regs.AQCTLA.ALL = 0x0003;

/*Action 限定符输出 A2控制寄存器*/

   EPwm5Regs.AQCTLA2.ALL = 0;

/*什么也不做*/

/*Action 限定符输出 B 控制寄存器*/

   EPwm5Regs.AQCTLB.all = 0;

/*什么也不做*/

/*Action 限定符输出 B2控制寄存器*/

   EPwm5Regs.AQCTLB2.ALL = 0;

/*什么也不做*/

/*死区发生器控制寄存器*/

 

   EPwm5Regs.DBCTL.ALL = 0x0007;

/*Event-Trigger 选择寄存器*/

   EPwm5Regs.ETSEL.ALL = 0x0;

/*事件触发 预分频 寄存器*/

   EPwm5Regs.ETPS.ALL = 0x0;

/*时基周期寄存器*/

//EPwm5Regs.TBPRD = 4;// 10M 100M/10M/2 - 1 = 4

 

   EPwm5Regs.TBPRD = 2;// 16.67M 100M/(2 + 1)/2 = 16M

//IU  Σ-Δ ADC

   Sdfm1Regs.SDDFPARM2.bit.DOSR = 128;        

   Sdfm1Regs.SDDFPARM2.bit.st = 0;           

   Sdfm1Regs.SDDFPARM2.bit.Fen = 1;           

   Sdfm1Regs.SDDPARM2.bit.DR = 0;             

   Sdfm1Regs.SDDPARM2.bit.SH = 0;             

 

//iw  Σ ADC

   Sdfm1Regs.SDDFPARM4.bit.DOSR = 128;

   Sdfm1Regs.SDDFPARM4.bit.st = 0;

   Sdfm1Regs.SDDFPARM4.bit.Fen = 1;

   Sdfm1Regs.SDDPARM4.bit.DR = 0;

   Sdfm1Regs.SDDPARM4.bit.SH = 0;

 

//比较器(二次)滤波器单元 配置

//0-32768

   Sdfm1Regs.SDCPARM2.bit.COSR = 31;

//Sinc3.

   Sdfm1Regs.SDCPARM2.bit.CS1_CS0 = 3;

   Sdfm1Regs.SDCPARM2.bit.CEN = 1;

   Sdfm1Regs.SDCPARM2.bit.IEH=1;

   Sdfm1Regs.SDCPARM2.bit.IEL = 1;

 

   Sdfm1Regs.SDCPARM4.bit.COSR = 31;

   Sdfm1Regs.SDCPARM4.bit.CS1_CS0 = 3;

   Sdfm1Regs.SDCPARM4.bit.CEN = 1;

   Sdfm1Regs.SDCPARM4.bit.IEH=1;

   Sdfm1Regs.SDCPARM4.bit.IEL = 1;

 

   Sdfm1Regs.SDMFILEN.bit.MFE = 1;

   Sdfm1Regs.SDCTL.bit.MIE = 1;

 

   EPwmXbarRegs.TRIP4MUX16TO31CFG.bit.MUX18 = 1;

   EPwmXbarRegs.TRIP4MUX16TO31CFG.bit.MUX22 = 1;

   EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX18 = 1;

   EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX22 = 1;

 

 

   Sdfm1Regs.SDCMPH2.bit.HLT = 24000;

   Sdfm1Regs.SDCMPL2.bit.LLT = 10000;

   Sdfm1Regs.SDCMPH4.bit.HLT = 24000;

   Sdfm1Regs.SDCMPL4.bit.LLT = 10000;

   EDIS;

 

   EALLOW;

Sdfm1Regs.SDIFLGCLR.bit.MIF = 1;

   EDIS;

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

    Zou、

    非政治 SDFM 滤波器输出计算信息最近在 F280049 TRM 中进行了更新、正在等待发布。 但幸运的是、F28388d TRM 中提供了相同的信息。 https://www.ti.com/lit/pdf/spruii0。

    请查看 SDFM 章节中的"理论 SDFM 滤波器输出"部分。 使用这些公式、我计算了采用上述配置的比较器滤波器和数据滤波器的理论滤波器输出。

    在上述帖子中、

    [引用 userid="480254" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1006276/tms320f280045-sdfm-issue ]\n 我的客户使用 SINCFAST 滤波器、OSR=128、 Sdfm1Regs.SDDPARM2.bit.SH=1。 当 AMC1306的输入为 -250mV~250mV 时、您会发现 数据波动很大。 他们认为、对于 SINCFAST 滤波器、OSR=128、数据范围为 -32768~32767、在16位数据范围内、不需要运行移位寄存器。 对吗?[/引述]

    您曾提到、数据滤波器输出波动很大。 您尚未提到观察到的读数。 当 SincFast 和 DOSR = 128时、可以预期 ENOB 约为12位。 如果您在+/- 250mV 范围内操作 SD 调制器、则无需使用移位寄存器。

    [引用 userid="480254" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1006276/tms320f280045-sdfm-issue ]\n 当选择 SINC3滤波器时、 OSR=32、移位寄存器0、amc1306调制器输入250mV 信号、理论数据为25598、但实际数据范围为28389到28553.[/引用]

    您是否在比较器滤波器(或)数据滤波器上观察到这一点?

    此致、

    曼诺伊

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

    这是否意味着、如果我选择 SINCFAST、DOSR=128、那么移位寄存器应该被设定为1?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    选择 SINC3滤波器时 、OSR=32、移位寄存器0、amc1306调制器输入250mV 信号、理论数据为25598、但实际数据范围为28389到28553。

    您是否在比较器滤波器(或)数据滤波器上观察到这一点?

    这是数据过滤器。

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

    如果调制器的模拟输入处于建议的+/- 250mV 范围内、则可以将移位寄存器设置为0。

    但是、它不在建议的电压范围内、因此对于 DOSR =128、移位寄存器值需要为1。

    此致、

    曼诺伊

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

    您是否确保 AMC1306 SD 调制器模拟输入为稳定的250mV?

    SDFM 是一种数字滤波器。 它基本上仅根据从 SD 调制器接收的 SD 调制位流计算滤波器输出。 如果您确保模拟输入稳定、则应获得稳定的结果。

    此致、

    曼诺伊

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

    但在 TRM 中、有一个表(表17-4。 移位控制位配置设置)。 根据表、移位寄存器设置为1。

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

    是的。 调制器的输入是稳定的。 如上所述、在相同条件下、SINCFAST 的输出稳定、但 SINC3的输出不稳定。 这两种类型之间是否有差异?

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

    该表假设 SD 调制器模拟输入可以接触 Vclping 电压(+/-320mv)。 如果客户确保保持在(+/- 250mV)范围内、则对于 Sincfast DOSR = 128、客户无需右移1位即可离开

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="480254" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1006276/tms320f280045-sdfm-issue/3719938 #3719938"]SINCFAST 稳定、但 SINC3输出不稳定。 这两种类型之间是否有任何差异?

    SincFast 和 Sinc3是两种不同类型的低通滤波器。 Sinc3通常提供更高的 ENOB 和更高的 OSR 设置。

    下面是以 OSR 与 ENOB 的图形方式显示的 ADS1203数据表的片段

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

    问题是调制器的输入是稳定的。 如上所述、在相同条件下、SINCFAST 的输出稳定、但 SINC3的输出不稳定。  您之前是否进行过测试并比较了这两个输出? 您知道为什么在同一输入下 、SINCFAST 的输出稳定、但 SINC3的输出不稳定?

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

    安吉洛

    您是否要求以下内容:-

    SincFast + DOSR = 128 -稳定结果

    Sinc3 + DOSR = 128      -不稳定结果

    您是否使用32位表示法(或) 16位表示法? 您是否在32位和16位表示法中都看到了问题? 您是否正在使用 SDSYNC 功能? 如果是、您是否尝试禁用 SDSYNC 功能? 禁用 SDSYNC 功能时、您是否看到稳定的结果?

    此致、

    曼诺伊

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

    您好、Manoj、

    它们使用16位、从不尝试32位。 它们也不会启用 SDSYNC。

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

    安吉洛

    您可以确认过滤器设置吗? 此外、您能否让客户在32位模式下尝试使用 Sincfast 和 Sinc3滤波器?

    此致、

    曼诺伊

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

    您好、Manoj、

    我已经上传了代码、还需要其他信息吗? 我将客户在 32位模式下尝试使用 Sincfast 和 Sinc3滤波器。

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

    好的。 请告诉我们结果。

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

    您好、Manoj、

    在16位和3位模式下、SINC3的波动大于 SINCFAST。  SINCFAST 滤波器在最大值4内波动、而 SINC3滤波器在最大值约30内波动。

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

    安吉洛

    OSR 设置是什么? 如果 Sincfast 在较低 OSR 设置下提供比 Sinc3更好的 ENOB 和 OSR 性能。

    此致、

    曼诺伊

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

    此问题是否已解决?

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

    很抱歉耽误你的回答。 OSR=128

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

    Sinc3与 Sincfast 之间的 ENOB 与 OSR 性能差异微不足道、因为 Sinc3与 Sincfast 之间具有较小的边沿。

    如果我是您、我将坚持使用16位模式来实现 SincFast (或) Sinc3。

    如果 OSR = 128、则需要将 SincFast 移动1

    如果 OSR = 128、则 Sinc3需要移动7。

    当 OSR = 128且 Sinc3时、您可以得到13位 ENOB。 Sincfast 也应该非常接近它。

    此致、

    曼诺伊