TI中文支持网
TI专业的中文技术问题搜集分享网站

bq27220 通过i2c读取DEVICE_NUMBER失败

我希望验证下I2C跟bq27220芯片通信是否OK(此I2C与其他芯片通信试过是正常的)。按照文档sluubd4.pdf描述,通过control()接口可以读取DEVICE_NUMBER等信息。

文档描述操作如下:

代码中实现:

step 1、先初始化i2c地址为0x55(对应写地址就是0xAA,读地址就是0xAB)

step 2、往0x00 寄存器写0x01,往0x01寄存器写0x00

step 3、读0x3e寄存器,读四个字节。返回值格式应该是前两个字节表示发送的cmd,后两个字节表示device_number。

    //I2C read bq27220 chip id
    I2C_Init(0x55);  // write add:0xAA
    delay();

    //read  DEVICE_NUMBER
    I2C_WriteData(0x00,0x01);
    I2C_WriteData(0x01,0x00);
    I2C_ReadNData(0x3e, ReadBuf, 4);

结果读出来ReadBuf四个字节如下分别是0x01  0x00  空格 0x02:

同理 ,我读取FW_VERSION也是这样的结果

 //read  FW_VERSION
    I2C_WriteData(0x00,0x02;
    I2C_WriteData(0x01,0x00);
    I2C_ReadNData(0x3e, ReadBuf, 4);

即使我不做write 动作直接去read 0x3e,读出来也是这样。能帮忙支持下,哪里有问题?

Star Xu:

www.ti.com.cn/…/slua467b.pdf
请参考上面的文档

赞(0)
未经允许不得转载:TI中文支持网 » bq27220 通过i2c读取DEVICE_NUMBER失败
分享到: 更多 (0)