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.

[参考译文] ADS1115:无法读取16位、只能读取 LSB 中的 MSB 8位、从而获得00或 ff 常量

Guru**** 2553450 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/882811/ads1115-unable-to-read-16-bit-able-to-read-only-msb-8-bit-in-lsb-getting-00-or-ff-constant

器件型号:ADS1115

尊敬的 

您能帮我解决这个问题还是共享您的代码来检查我出错的地方。

SCL=1;
SDA=1;
SDA=0;        //启动条件

B=0x90;        //从地址+WR
ADC_WR ();    //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;
SCL=1;        //9位额外一个时钟脉冲  

B=0x01;       //config REG
ADC_WR ();   //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;
SCL=1;       //9位额外一个时钟脉冲  

B=0xC3;      //os=1、A0 CH、单次触发模式
ADC_WR ();   //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;
SCL=1;        //9位额外一个时钟脉冲  
SCL=0;        //extra SCL=0  
SCL=0;        //extra SCL=0  
SCL=0;        //extra SCL=0  //偶数我跳过这个额外的3次 SCL=0,然后我也会得到相同的 MSB 器件结果

B=0x83;       //默认
ADC_WR ();   //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;
SCL=1;        //9位额外一个时钟脉冲

SCL=0;      
SCL=1;

SDA=0;

SDA=1;       //停止 条件

 //延迟10ms

TH0=0xDC;   
TL0=0x00;
tr0=1;
while (TF0=0);  
tr0=0;
TF0=0;

//////////////////////////////////////////////////////////////////////////////////////////////////

SCL=1;
SDA=1;
SDA=0;      //Start 条件

//读取操作


B=0x90;       //从地址+WR
ADC_WR ();   //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;    
SCL=1;       //9位额外一个时钟脉冲

B=0x00;      //转换寄存器
ADC_WR ();   //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;
SCL=1;       //9位额外一个时钟脉冲

SCL=0;
SCL=1;

SDA=0;   
SDA=1;      //停止 条件

SCL=1;
SDA=1;
SDA=0;        //START 条件

B=0x91;        //从地址+RD
ADC_WR ();    //8位通过使[ SCL=0、(SAD 1或0)、SCL=1]进行发送
SCL=0;
SCL=1;        //9位额外一个时钟脉冲

ADCM();      //一次读取16位[SCL=0、(16BITREG=SDA (将 SDA 值加载到 REG)、SCL=1]
SCL=0;
SCL=1;       //9位额外一个时钟脉冲

SCL=0;
SCL=1;

SDA=0;   
SDA=1;       //停止 条件

 

快速查看

启动

90

01

C383

停下

延迟10ms

启动

90

00

停下

启动

91.

MSB+LSB

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

    Snehal、

    我将关闭此帖子、因为我们已经在这里发布了一个活跃帖子:

    https://e2e.ti.com/support/data-converters/f/73/t/882466

    如果 Josef 确实看到了这篇文章、那么他将能够用自己的帖子进行回复。 但是、他的项目使用 ARM 处理器、其中有用于实现 I2C 的已定义库。 这将与您使用的8051处理器的位拆裂非常不同。

    吴约瑟