1、注意设备地址
转自原文:https://blog.youkuaiyun.com/lijing198997/article/details/80226460
由于之前使用的eeprom,bmp085,axp209都是使用器件地址作为写地址,器件地址加1后作为读地址,导致使用bq25892后,看了bq5892手册后依然这样操作,导致写设备地址一直无法收到应答信号。困惑了很久,一直认为是自己时序有问题,后来
我与TI工程师交流 才意识到自己对手册的理解有问题。
正确的理解是设备地址为0x6Bh,但是设备地址是取七位,那么二进制应该是0x1101011B,当需要写设备地址时,
写设备地址应该是0xD6h(0x11010110B+0x00000000B),
读设备地址是0xD7h(0x11010110B+0x00000001B)。
当我们需要读取电池电压时,需要先使能REG02寄存器(0x02h)第7位为1,然后再读REG0E寄存器(0x0Eh),不然,读出来的总是0x00。因为默认ADC转换是关闭的。
bq25895的地址是6AH 1101 010+r/w
所以写地址是:1101 0100 = d4H
读地址是:1101 0101 = d5h
2、每次读电压时都要先开ADC,即在读0Eh之前先写02H,测试的如果只在初始化时写一次02h指令写入bdh,在后续读02h时又变成了默认值3dh,而且0EH的值虽然不是0但是一直不变。所以还是每次读之前都要写02h开ADC。
本文详细解析了bq25892的设备地址配置及正确读取电池电压的方法。强调了设备地址的正确设置(写地址0xD6h,读地址0xD7h),并指出每次读取电压前需先开启ADC,确保REG02寄存器第7位置1,避免读数始终为0x00。
3276

被折叠的 条评论
为什么被折叠?



