[求助] ADS1115用IIc配置完寄存器,指向寄存器。然后读出来的值全是1,也就是65535

Forever_092   2014-5-11 15:29 楼主


又没有人知道为什么,是不是是我把输入弄错了,还是没配置对,把那个程序弄出来,大家看看 void ADS1115Config_A(u8 LCMD,u8 HCMD)//配置寄存器 { u8 i=0; u8 Initdata[4]; Initdata[0] = WR_REG; // μ??·0x90 ?÷?tADR?óμ? D′??′??÷ Initdata[1] = CONF_REG;// μ??·0x01 ???ò??????′??÷ Initdata[2] = HCMD; // μ??·0x64 ????×???×??ú Initdata[3] = LCMD; // μ??·0xf0 ????×?μí×??ú SCL_A1; I2CStart_A(); for(i=0;i<4;i++) { I2CWriteByte_A(Initdata); ADS1115_delay(10); } I2CStop_A(); } /******************************************************************* 读和指向寄存器 ********************************************************************/ u16 ReadAD_A(void) { u16 Data[2]={0,0}; SCL_A1; I2CStart_A(); I2CWriteByte_A(WR_REG);//指向指向寄存器 I2CWriteByte_A(DATA_REG); I2CStop_A(); SCL_A0; SCL_A1; I2CStart_A(); I2CWriteByte_A(RE_REG);//读 Data[0] = I2CReadByte_A(); Data[1] = I2CReadByte_A(); I2CStop_A(); Data[0] = Data[0]<<8 | Data[1]; return (Data[0]);//&0x7fff } 在主函数中初始化时候 ADS1115Config_A(0xf0,0x64); AINP = AIN3 and AINN = GND这个实在芯片手册中弄出来的,不知道什么意思 本帖最后由 dontium 于 2015-1-23 11:08 编辑
  • ads1115电路

回复评论 (14)

1看配置,2查延时            
点赞  2014-5-11 19:33
引用: ltbytyn 发表于 2014-5-11 19:33
1看配置,2查延时

调通了,可是现在怎么将寄存器的值,转化成那个电压值呀
点赞  2014-5-14 08:50
量化一下。比如外加1V时AD值时999,3V时是3000,那么AD值是2000是电压是多少啊?
点赞  2014-5-14 19:23
这个好像说就是已经就是明文规定了的,就是寄存器的值*量程除以65535,不过怎么来的也不是很清楚
点赞  2014-5-14 19:33
AD芯片肯定有测量范围,假如一片8位AD,假如最大测量范围o ~5V。实际电压=(AD/255)*5
点赞  2014-5-15 21:33
也搞定了,他是内部基准的芯片,16位的嘛,然后就是转换就是4.096*2/65535,其中要不要多去几次平均滤波呀
点赞  2014-5-16 10:05
能告诉我怎么调通的么 ,我也遇到了这个问题了
点赞  2014-11-26 09:33
关键是你要把那个IIC信号给对,那样以后你就可以直接从那个数据寄存器里面读数据了
点赞  2014-12-5 19:15
引用: 游离的查克拉 发表于 2014-11-26 09:33
能告诉我怎么调通的么 ,我也遇到了这个问题了

请教您一个问题,跟你遇到的问题一样,如果只按手册上的配置输出的是7ffff啊,不知道怎么做了,后来你怎么做的?
点赞  2015-4-27 12:16
引用: Forever_092 发表于 2014-12-5 19:15
关键是你要把那个IIC信号给对,那样以后你就可以直接从那个数据寄存器里面读数据了

请教您一个问题,跟你遇到的问题一样,如果只按手册上的配置输出的是7ffff啊,不知道怎么做了,后来你怎么做的?
点赞  2015-4-27 12:16
引用: powered 发表于 2015-4-27 12:16
请教您一个问题,跟你遇到的问题一样,如果只按手册上的配置输出的是7ffff啊,不知道怎么做了,后来你怎么做的?

iic 出了问题。解决了
点赞  2015-6-8 17:01
引用: Forever_092 发表于 2014-12-5 19:15
关键是你要把那个IIC信号给对,那样以后你就可以直接从那个数据寄存器里面读数据了

能否分享一下程序我调了好几天就是不好使
点赞  2015-8-8 11:27
引用: 游离的查克拉 发表于 2015-6-8 17:01
iic 出了问题。解决了

请问你是怎么解决的我也是全部都是1
点赞  2015-8-8 12:16
这个芯片 不难,你看看 寄存器 是不是配置错误了,然后再看看代码是不是错误。  网上有现成的程序,比对一下那里出现了问题
点赞  2015-8-8 13:23
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复