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.

[参考译文] ADS122C04:ADS122C04 (ADC 24位) I2C 困难

Guru**** 2390825 points
Other Parts Discussed in Thread: ADS122C04

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/709419/ads122c04-ads122c04-adc-24---bit-i2c-difficulty

器件型号:ADS122C04

大家好、

我尝试 通过 I2C 和 Raspberry Pi 3型号与 ADS122C04进行通信。  

我的电路按如下方式进行接线、I2C 线路上具有1k 上拉电阻、滤波电容器和 AVDD、电压为+5V 而不是3.3V。

该芯片在使用 i2cdetect 的预期地址上可见、但我无法对其进行写入、获取:错误:写入失败。

当尝试写入不存在的芯片地址时、也会出现同样的错误。

我能够使用相同的总线和技术写入其他 I2C 器件。

我尝试使用两 种不同的 Raspberry Pi 和两种不同的 ADS122C04芯片。

有什么想法或建议说明为什么这可能不起作用?  

提前感谢、

Matt  

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

    您好、Matt、

    欢迎来到 E2E 论坛!  如果 RESET 引脚为低电平、或缺少电源之一(AVDD 和 DVDD 都必须处于标称电压)、则器件将不会进行通信。  但是、由于 i2cdetect 正在查找器件、ADS122C04应该能够进行通信。

    您能否向我发送您尝试执行的操作(写入寄存器、读取寄存器等)?  根据所示的命令、您正在尝试向器件(0x40)写入不存在的命令(0x00)、这将提供一个 NACK。  命令列表位于数据表的第38页的表16中。  例如、如果要将内容 为0xE0的寄存器(0x40命令)写入寄存 器0、则需要将命令和数据发送到地址0x40 0xE0。 因此、以下命令应该起作用:

    i2cset -y 1 0x40 0x40 0xE0

    和读取寄存器内容:

    i2cset -y 1 0x40 0x20  

    i2cget -y 1 0x40

    我认为以上内容有助于读取寄存器内容、但我无法验证操作、也无法在 Linux 环境中使用这些命令。  我想您会发现这些简单的命令将会受到限制。  写入命令/数据应适用于写入和读取寄存 器、但由于通信是基于命令的、因此执行多字节读取可能更复杂、例如使用 RDATA 命令读取数据、因为这需要读取三个字节。

    此致、

    Bob B

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

    噢、是的、是的、我尝试使用0x00而不是0x40写入寄存器0x00。 我显然没有正确读取数据表的该部分内容。 现在、我已使其按预期工作。

    非常感谢您的及时帮助!

    此致、

    Matt