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.

[参考译文] ADS7953:自动模式输出错误数据

Guru**** 2442090 points
Other Parts Discussed in Thread: ADS7953, TMS320F28386S

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1278477/ads7953-auto-2-mode-outputs-wrong-data

器件型号:ADS7953
主题中讨论的其他器件: TMS320F28386S

大家好、我使用 ADS7953获取外部电压值、处理器是 TMS320F28386S。

我想要  在范围2内捕获从通道0到通道15 的数据 、因此让芯片进入 自动2 模式。  命令序列如下所示:

0x4200 -> 0x93C0 -> 0x3C40 ->  0x3840 -> 0x3840 -> 0x3840  ->   .....

结果来自 SPI FIFO、如下图所示

结果[0]可能是命令 0x4200的响应 ,

Result [1]~[3]是  CH0的转换结果,实际上是正确的。

但 其余的都是不正确的。我很困惑,请帮我。

另一个问题是、设计需要以预定义的系统帧速率(即1ms)对全部16个通道进行采样。 以上序列每1ms 重复一次。 我是否应该通过发送 0x4200 -> 0x93C0  -> 0x3C40 -> 0x3840 ->  0x3840    -> 0x3840 ->>0x3840 ->来重置和重新配置器件每个帧   ... ?

如果有人帮助我、我真的很感激。

Y-SIMO、G-SOMI、B-CLK、R-CS

    SpiaTransmitData(0x4200);                 //frame(n-2),reset
    SpiaTransmitData(0x93C0);               //frame(n-1),program register
    SpiaTransmitData(0x3C40);             //frame(n),change to reset mode-2
    SpiaTransmitData(0x3840);           //frame(n+1),increment auto-2 mode
    for(i = 0;i < 16; i++)                     
    {
        SpiaTransmitData(0x3840);      
        while(SpiaRegs.SPIFFRX.bit.RXFFST < 1){;}       
        Chip1ChnData[i] = SpiaRegs.SPIRXBUF;       
    }

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

    尊敬的 Alex:

    欢迎来到我们的 e2e 论坛!  初始化序列看起来不错、但可以在第一次传输0x3840后停止。  然后通过传输0x0000来提供 SCLK。  没有必要继续对器件进行编程、您应该只需要在上电或器件复位时进行编程。

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

    感谢您的回复, TOM.I 在 第一个 0x3840后发送0x0000,但得到了相同的 转换结果 ,我不知道哪一步会出错。

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

    我在测试后得到了一些示波器屏幕截图。

    Y-SIMO、G-SOMI、B-CLK、P-CS

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

    尊敬的 Alex:

    您可以在 SIMO 上更改相位吗?  如果这能解决您的问题、请告诉我。

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

    您好、Tom。

    根据您的建议、我成功解决了这个问题。

    非常感谢您的支持。

    在此测试后、我再次查看了 ADS7953的数据表、并 确认 SDI 数据会在从第一个时钟开始的每个 SCLK 上升沿被锁存。 基于上述内容、关键点是将 SPI 设置为在 SPICLK 信号上升沿之前的半个周期输出数据。

     此致。

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

    好消息!  很高兴听到它为你工作!