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.

[参考译文] ADS1115BQDGSRQ1

Guru**** 2568565 points
Other Parts Discussed in Thread: ADS1115

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/621509/ads1115bqdgsrq1

在“线程:ADS1115”中讨论的其他部件

尊敬的TI工程师:

我已经成功读取ADC ADS1115中的模拟值4通道,即860 SPS的1.5 MS的延迟时间。

但我想使用16通道(多个ADS1115)。

我尝试从多个ADC (4 IC)扫描I2C地址,每个ADC具有不同的地址(VDD,GND,SCL,SDA)。

我正在使用atmega168扫描i2c设备。 VDD,GND,SDA的结果地址已在我的Atmega上显示(检测到)。但SCL地址(&B1001.011万)无法检测或通信错误。

第21页上的数据表项目ADD.ADC表示它需要特殊处理。您是否可以在9.5 连接到SCL的情况下为我提供读取1.1 的示例。

这是我的子例程I2C扫描仪,带基本编译(Bascom)。

$regfile ="m168pdef.dat"'已使用的芯片
$crystal =使用1600万 '频率
$Baud = 11.52万'波特率


声明Sub I2C_SCAN

DIM B为字节,状态为位


   调用I2C_SCAN
   Waitms 100
循环

结束

subI2C_scan检查I2C总线上的所有设备
打印"扫描开始"
对于B = 0至254,步骤2
'用于所有奇数地址
i2cstart '结束启动
I2cwbyte B '发送地址
如果Err = 0,则'我们得到了一个确认
打印“Slave at :”; B ;“hex :”; Hex (b);“bin :”; Bin (b)
End If (结束条件)
I2cstop
'免费巴士
下一步
打印"结束扫描"
结束子菜单

谢谢你

Mansur。 H

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

    您好,Mansur,

    我将这一职位调到正确的论坛,以获得更好的支持。

    Francis Houde

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


    使用连接到SCL的ADDR引脚的要求是在SCLK线变低后将SDA保持在低电平至少100ns。 这将区分ADDR检测SDA和SCL。

    为了在您的系统上检查这一点,我会使用示波器或逻辑分析仪来测量SDA和SCL,并确保两条线之间的距离为100ns。

    如果您正在寻找编程帮助,我不确定我们能否提供帮助。 我不知道Atmega168 I2C协议是如何实现的,SDA和SCL计时是否有足够的灵活性。 此外,我不知道是否有办法增加一些延迟(可能是电阻上拉或电容更大)。

    请注意,如果没有SDA/SCL分离,您可能会在同一地址检测到两个设备,这可能会导致I2C总线争用。


    吴若瑟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    吴若泽
    感谢您的回答,我的第二个问题是:对于SCL,读取ADDR连接到SDA或ADDR连接到GND后,读取此地址的顺序是什么?
    好的,我将尝试为单个SCL ADDR单独读取i2c,以测试i2c通信。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mansur,


    我不确定我是否完全理解您的问题,但让我尝试解释一下ADDR引脚的工作原理。

    ADDR引脚通过每个I2C事务进行感应。 在I2C总线上有一台状态机以启动条件启动。 当主控制器将I2C地址写入总线时,设备将检测ADDR是否连接到GND,VDD,SDA或SCL。 完成地址字节写入后,状态机将完成并确定连接到哪个引脚ADDR。 如果写入的地址与状态机解码的地址相同,则设备将以ACK响应。 如果地址不匹配,则设备不响应。

    我希望这有助于回答您的问题,如果您需要跟进,请告诉我。


    吴若瑟