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.

[参考译文] ADC101C027:ADC

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/838866/adc101c027-adc

器件型号:ADC101C027

我使用图24f 系列作为 I2C 主设备、I2C 从设备为 adc101c027、SCL 为400kHz、ADC101C027的地址引脚悬空、因此根据其数据表、其地址为50h。 我想读取转换寄存器中的数据、其 addr 为00h、我正在使用的 IDE 是 MPLAB v8.53 (c30编译器)。 首先、我发送 addr 50h、然后在重复起始之后发送 addr 00h、然后在读取位被置位的情况下再次发送50h。 这种方法是否正确?

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

    您好!

    您是否仍然无法与设备通信?

    如果未预设地址指针、则您的流量看起来通常是正确的。

    首先 是起始地址、然后是从器件地址、写入位、

    地址指针、一个重复起始位(如果合适)、从器件地址和一个读取位

    数据表中的图27 有助于进一步了解这一点

    此致

    Cynthia

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

    在数据表第24页中,给出了两种读取操作方法,我不理解如何预设地址指针。 我按照图27进行编码。

    starti2c-设置起始位

    写入从机地址(50h)、包括读取位、它变为 A0、然后我发送 conv reg add 00 (WRITE bit set)、然后重复起始、再次发送具有读取位 set (A1)的地址、这样我就读取了 PIC24F 中 I2C rcv 寄存器中的值。 它返回0b、根据数据表、读取我发送的第二个字节、我这样做了、然后再次调用读取函数。 但这次我也得到0b。 由于 ADC 转换寄存器为16位、我必须获得2字节数据、因为转换后的数据仍然是寄存器的 d[11:2]。 pic 的 I2C rcv reg 是8位。 我现在很困惑。 请帮助确定这种情况

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

    您好!

    图27是一个很好的示例、展示了如何写入指针、然后读取。 要读取转换结果、我建议 在输入端使用已知的直流值、这样您就知道输出端应该达到的期望值。

    您 正在执行的第一个帧是正确的、使用写位发送地址。

    在这之后、第二个帧、您需要设置指针寄存器、如下所示。 要读取转换结果、您需要将最后三个位设置为0、因此命令将为0h。

    在第三个帧中、主器件 将执行重复启动。  然后再次发送帧1中的地址字节、但读取位被置位、这意味着它将为:A1h

    最后两个帧将是转换结果。  请注意、转换结果来自位2-11。 转换结果寄存器如下所示