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.

[参考译文] ADS8586S:读取随机值

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1129861/ads8586s-reading-random-values

器件型号:ADS8586S

您好!

我设计了一个具有 ads8586的测试 PCB、我仅使用2通道 ch-1和 ch-6、其他通道是浮动的。

由于某种原因、我在尝试读取转换时获取随机值、

遗憾的是、即使我向正输入端子注入 GND 或 PS 电压、这些值也不会改变、我甚至尝试将负引脚和正引脚短接在一起

它没有影响。 由于某种原因、它好像没有对其输入 kegs 进行采样

我将附上原理图、布局和 SPI 读数、希望有人能帮我弄清楚问题所在

即使 N-P 输入连接在一起、也会发生该读数

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

    好的、 我发现了我的问题。

    我尝试使用 OS 比率为64的过采样。 它只是返回一些随机电压、当我取消它时、它就是移除 PU 电阻器 R19和 R21

    它最终会正确测量数据。

    有人知道问题是什么?我的阅读代码如下(Arduino 代码):

    digitalWrite (convStartPinlow);
    延迟(5);
    digitalWrite (convStartPinHIGH);
    延迟(1);
    ////开始事务
    digitalWrite (芯片选择引脚电平);
    CH_ONE = SPI.transfer16 (0xAD);
    CH_two = SPI.transfer16 (0xAD);
    CH_Three = SPI.transfer16 (0xAD);
    CH_Four = SPI.transfer16 (0xAD);
    CH_Five = SPI.transfer16 (0xAD);
    CH_Six = SPI.transfer16 (0xAD);
    ch_One_array[i]= ch_one
    ch_Si_array[i]= ch_six

    digitalWrite (芯片选择引脚电平);
    延迟(1);
     我很确定我的时间是否符合要求
    BR

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

    您好、sagy、

    我正在尝试理解您的问题。

    •  安装 R19和 R21时、CH1和 CH6上会出现随机电压、即使将 GND 或电源连接到 AIN_1P 或 AIN_6P 输入端也是如此。
    • 移除 R19和 R21后、您可以获得正确的代码并正确测量输入信号。

    您能否确认我的理解是否正确?

    您的时序中还有哪些其他信号(黄色和红色)? 如果您可以通过 SCLK、CONVST、BUSY 和 DOUT (MISO)信号提供时序、那将非常好。 此外、您的 SPI 配置是什么(相位和极性)?

    此致、

    戴尔

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

    您好!

     

    是的、您在这两个方面都是正确的。

     

    • 在不进行过采样的情况下工作时、测量结果良好
    • 在使用 OSR 64时、无论线路电压是多少、我们都能获得垃圾测量值。

     

    我认为 SPI 模式没有问题,因为我可以在没有操作系统模式的情况下获得准确的结果。

     

    我不测量忙线、我只使用幅度大于所需最小延迟的延迟

    根据数据表中的时序表(OSR 64要求更长的延迟周期)

     

    在我上次的依赖中、我添加了用于读取样本的代码  

    BR。

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

    您好、sagy、

    感谢您的确认。

    OSR 肯定应该起作用。 您等待在 OSR 64中读取数据的时间有多长?  您可以使用示波器来检查转换数据是否与 BUSY 信号匹配、以及您在正确的时序中的读数是否与 ADC 相符。

    REFSEL 应上拉至 DVDD (+3.3V)而不是 AVDD (+5V)。

    此外、您在原理图中使用的是相同的 GND、但您似乎是将接地分离、您能确认吗?  

    此致、

    戴尔

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

    您好!

     很抱歉等了很久、我不得不完成 PCB 的其他测试。

    对于您的问题:

    1、我正在等待至少5ms、如我在前一条消息"delay (5)"中共享的代码所示;

    我无法真正检查过这条线、因为我没有将其从 PCB 上走线、现在我可以在引脚上使用探针进行接触。

    虽然我非常积极、但我等待的时间已经足够、可以阅读表格、显示大约600 us、就像这样。

    2、你是对 REFSEL 的、我对它进行了更改、它没有什么影响

    3.我的确是在分地。

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

    您好、sagy、

    对于 OSR 64采样、5ms 足够长。 如果  您可以与我分享、最好将带或不带 R19和 R21的时序图(/BUSY、CONVST、SCLK 和 DOUT)进行比较。 放大后的时序图将非常有用。

    此外、您如何连接不同的接地平面? 在 PCB 板上、您在哪里短接它们?

    此致、

    戴尔