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.

[参考译文] ADS7871:无法与ADS7871通话

Guru**** 2606725 points
Other Parts Discussed in Thread: ADS7871

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/664609/ads7871-not-able-to-talk-with-ads7871

部件号:ADS7871

我使用Arduino通过SPI总线设置此ADC时遇到问题。  我尝试执行一些基本的读取命令,但我从芯片的详细信息中没有得到任何反馈。

是否需要先设置某些寄存器?  我没有使用CCLK,Vref,BufIn,BufOut或GPIO引脚。  到目前为止,我所做的只是 设置 振荡器控制以使用内部振荡器。  根据数据表,我需要发送0xE0,然后发送0x0C,对吗?

如果有使用此芯片的经验,任何建议都是很好的。  谢谢!

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

    您好,Andrew,

    ADS7871是一个简洁的小部件,但它可能需要一点时间才能实现。 当您说您没有使用CCLK时,您的意思是什么? 它是否对地开路/短路/接地高? 您能否提供ADC周围区域的示意图,或许还能提供SPI控制信号的详细信息? '启动A/D转换周期'一节(第 15)是开始调试过程的好地方。

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

    您好Tom,

    CCLK是打开的,这就是我需要使用内部振荡器的原因。  我没有设计主板,所以我不知道所有设计决策背后的原因,但这是电路。   

    我已经在数据表中通读了该页以及"操作模式","写入操作"和"读取操作"。  在我的Arduino代码中,我先发送0x11,然后发送0x82,以在LN0上进行转换并读取ADC输出寄存器。  听起来是否正确?

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

    您是否在引脚19上看到转换时钟输出? 您看到C9的针脚26/27和C7的针脚28侧的电压电平是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在引脚19上,我看到一个大约2.4MHz的时钟。 针脚26,27和28均为0V。

    我最初以为ADC没有收到任何反馈,但似乎某些读取命令确实会导致芯片的脱模输出。 但结果与我对数据表的期望不符。 例如,当我尝试通过发送0xFA来读取ID (reg32)时,我得到的是0x00而不是0x01,当我尝试通过发送0xC2来读取A/D控制(reg3)时,我得到的是0xFF,这毫无意义。

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

    您好,Andrew,

    好的- CCLK看起来不错,但听起来似乎您没有启用参考-请查看图15 (第 13)。  默认情况下,在开机时,基准和缓冲区都关闭。  ADS7871数据表的参考/振荡器配置寄存器部分第28页提供了有关启用参考和缓冲器的详细信息。  您能否获取SPI通信的屏幕截图并发送该信息?

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

    啊,我不知道这些设备最初是断电的。  我尝试将这些位设置为高,但仍然没有从针脚26,27,28中得到任何信息。

    在我的代码中,我最初尝试通过发送0xE0然后发送0x3C来设置参考/振荡器配置寄存器:

    黄色:CS

    蓝色:CLK

    紫色:相对于ADC的DIN

    绿色:相对于ADC的脱模

    然后,我尝试通过SPI发送0xE2来读回它,但从芯片中没有得到任何反馈:

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

    您好,Kevin:

    如果您在参考/缓冲器引脚上仍看到0V,则您没有启用它。  通过屏幕截图,您似乎处于直接模式(请参阅操作模式,第16页)。  要获取参考寄存器(ADDR7),您需要以b10.0111万 (0x27)开头,然后以b11.11万 (0x3C)开头,处于寄存器模式。  尝试一下,如果您看到引用出现,请告诉我。

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

    我的原始指令没有通过,因为字节被颠倒了。 计时图在您的规格表上绘制的方式,请参阅第19页和第20页的写入和读取操作,使字节顺序看起来应该先是A0,最后是模式位。 这同样适用于进入ADC的附加数据字节或芯片将数据发回的情况。 我认为这是奇怪的,让我们颠倒字节顺序,使指令很难遵循。 但现在,您上述描述的方式是正确的,是创建说明的更直观的方式。

    我能够验证Ref/OSC配置寄存器是否为b11.11万,因此现在我从BUFOUT获得2.5V电压,从Vref和BUFIN获得1.9V电压。

    我确实有新的问题。 当我通读8个模拟输入时,我得到不稳定的读数。 我只对1个输入施加电压,但在其他一些输入上获得最大读数(~1.6383万)。 它不总是相同的输入,数值可能略有不同。 我使用数字万用表检查了其他输入,它们的读数都为0伏。

    这是噪音造成的还是您认为是其他原因?

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

    好消息Andrew!   

    是的,有几个LSB与MSB的第一个示例,其中一个寄存器中有一个用于此的位,因此您可以任意一种方式。  您如何推动您的输入?  如果输入开路,或者如果您直接向ADC输入高阻抗输入而在源和输入之间没有缓冲区,您可能会看到一些奇怪的结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用数字电源驱动输入。 我有10k电阻器将输入连接到GND,但这些电阻与当前测试板上的开路并联。 我可以用我的新测试板再试一次,一旦我拿到了测试板,它将为所有输入线路提供缓冲区。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Andrew,

    您是否有任何更新?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Tom,感谢您的登记入住。

    我还没有其他主板。 这不会持续几个星期。 然后我可以更新您的信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的-没问题Andrew。 现在我将关闭此线程,一旦您获得主板,我们就可以返回到它。