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.

[参考译文] Linux/ADS7886:Converter行为不一致

Guru**** 2540720 points
Other Parts Discussed in Thread: ADS7886

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/602313/linux-ads7886-converter-has-inconsistent-behavior

部件号:ADS7886

工具/软件:Linux

我目前使用覆盆子PI来运行debian Jessie。

ADS7886文档指出,数据以MSB格式提供,但是

我注意到,在转换为本机硬件格式后,数据不一致。

不一致是指文档中说明的当前值是12位

但当我除以4096时,我实际上得到了预期值的一半,因此看起来像

如果应除以2048。 有时它还会在其他时间输出数据

但没有。 我以为可能是布线,但我把它挂到了一个示波器上,我明白了

VIN,VDD和SPI接口处的电压正在生成数据(信号CS,CLCK)。

1.规格显示它使用20Mhz时钟,但使用由生成的频率

Raspberry PI基于250MHz时钟,因此我不确定ADS7886是否是

由于时钟原因,工作不正常。

2,除以4096,为什么得到预期值的一半?

谢谢

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

    你好,Jonathan

    ADS7886最大串行时钟频率为20MHz。 这相当于1MSPS的全部吞吐量。 您需要根据采样速度提供<= 20MHz到SCLK的外部时钟。 尽管Rasberry Pi基于250MHz时钟,如果您正在基于该时钟为ADS7886生成时钟,它应该可以正常工作。

     您读取预期值的一半的原因之一 是,由于SCLK和SDO上的时间不匹配,您可能缺少MSB位。 请参阅第7页上的ADS7886时序图,查看您是否符合数据表中的所有delyas。 您甚至可以尝试使用较低的采样速度(SCLK<20MHz),看看是否得到正确的结果。

    您可以将ADS7886模拟输入应用于AVDD/2以上,并在示波器上捕获SDO,SCLK和CS。 在这种情况下,应 始终将MSB位作为1。 如果您看到此信息,则您的捕获是正确的,我们可能需要研究其他内容

    谢谢,顺祝商祺

    Abhijeet

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

    您好,Abhijeet

    我尝试了更低的采样率250MHz/13,但这种情况是一样的。 我会尝试您的建议,但我看到过0V,3.3V和5V的数据,只是行为一直不一致。 我将查看范围上的所有三个来源,并了解它们的外观。

    谢谢