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.

[参考译文] ADS1015:ADS1015转换寄存器 LSB

Guru**** 2518320 points
Other Parts Discussed in Thread: ADS1015

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/713231/ads1015-ads1015-conversion-register-lsb

器件型号:ADS1015

当我读取转换寄存器时、LSB 总是返回一个0xFF 的值

MSB 正确

我已经在存储示波器上验证了这一点、ADS1015的数据线保持高电平

unsigned int ADS_READ_Conversion (空)

unsigned int wData;

TWI_Start ();//开始
TWI_OUT (ADS_ADDRESS_WRITE);//发布器件地址
TWI_OUT (0x00);//地址寄存器= 0、指向转换寄存器
TWI_Stop ();//停止

// Guy -这将始终返回0xFF 的 LSB

TWI_Start ();//开始
TWI_OUT (ADS_ADDRESS_READ);//发出设备地址
wData = TWI_Receive ();//读取数据 MSB
wData <<= 8;//放入 MSB
wData |= TWI_Receive ();//读取数据 LSB
TWI_Stop ();//停止
return (wData);

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

    Guy、

    另一方面、我不知道有什么会导致低字节读取 FF。 我在您的代码中看不到任何内容可能会有问题。 ADS1015是否在第二个字节之前进行 ACK 应答?

    为了帮助进行调试、您能否展示您的 I2C 通信? 我想查看示波器屏幕截图、以及地址、指针寄存器和转换的读取。 我想查看 SDA 和 SCL 的整个事务。 由于这是对转换寄存器的读取、让我知道输入电压和满量程范围也是多少。 我只想确保输入不是一个方便的电压、该电压具有用于最后一个字节读取的 FF。

    您是否仍然能够无问题地从配置寄存器中读取数据? 如果器件的数据输出寄存器有问题、那么读取配置寄存器也会出错。

    吴约瑟

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

    感谢你的答复

    以下是 ADS_READ_Conversion()的捕获  

    ADS_ADDRESS_WRITE = 0x90

    ADS_ADDRESS_READ = 0x91

    unsigned int ADS_READ_Conversion (空)

    unsigned int wData;

    TWI_Start ();//开始
    TWI_OUT (ADS_ADDRESS_WRITE);//发布器件地址
    TWI_OUT (0x00);//地址寄存器= 0、指向转换寄存器
    TWI_Stop ();//停止

    // Guy -这将始终返回0xFF 的 LSB

    TWI_Start ();//开始
    TWI_OUT (ADS_ADDRESS_READ);//发出设备地址
    wData = TWI_Receive ();//读取数据 MSB
    wData <<= 8;//放入 MSB
    wData |= TWI_Receive ();//读取数据 LSB
    TWI_Stop ();//停止
    return (wData);

    转换寄存器 LSB 的低四位应该一直为零、我已经尝试了很多输入电压(包括0V)、并且 AM 在结果的 LSB 中一直得到0xFF。  MSB 正确。

    如果我读取配置寄存器、我还会得到第二个(LS)字节为0xFF。  MSB 正常(本例中为0xC5)。  因此、我似乎对16位值有读取问题。

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

    收到 MSB (第一个字节)后、我的微处理器未发出 ACK。

    感谢你的帮助