微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI电源管理交流 > BQ27621 I2C访问

BQ27621 I2C访问

时间:10-02 整理:3721RD 点击:

请问有BQ27621 的sample code可以参考下吗? 

我读了下DEVICE_TYPE ,不是0621, I2C 验证过没问题,估计是读的命令不对。

先发送的Control 命令: 0x00 0x01

然后发送的Device TYPE sub command: 0x0001

各位高手帮忙看看问题在什么地方,谢谢!

你是用什么发的?

可以把你发命令的时序贴上来看看吗?

我是用的STM32L152作为MCU,  采用PB6和PB7作为SCL和SDA,没有用硬件IIC,采用的是模拟I2C,这个模拟I2C读写程序,我已经在STM32F103ZET6上成功读写EEPROM (24L02),现在移植过来的,单步调试 每次等不到BQ76930的ACK而跳出

if(!iic_start())
{
return 0;
}
send_one_byte(I2C2_SLAVE_ADDRESS7);             //I2C2_SLAVE_ADDRESS7 = 0x18

if(!wait_ack())
{
iic_stop();
return 0;
}
send_one_byte(writeaddr);

wait_ack();

while(writelen--)
{
send_one_byte(*data);

iic_delay(20);

wait_ack();

data++;
}
iic_stop();

iic_delay(DELAY_TIME);

return 1;

不好意思,我回帖回错了,我以为是我自己的帖子,我也在IIC通讯这卡住了,见谅哈!

发命令是调用的MCU的I2C 函数,验证过了是没问题的,可以访问其它的I2C 芯片。

手册上读Device Type的描述:

code:

1. I2C Write 0x00, 0x01    //control command

2. I2C Write 0x00, 0x01    // device type sub command 

3. I2C read 2 byte.            //read device type

请问一下以上时序对吗?谢谢!

参考bq27621-G1 Technical Reference (http://www.ti.com/lit/ug/sluuad4b/sluuad4b.pdf)第11页Application Examples,里面介绍命令怎么组合。

此外,I2C write address is 0xAA, read address is 0xAB.

TI提供了用MSP430 MCU I2C读写Gauge的示例代码,你参考下:http://www.ti.com.cn/analog/cn/docs/litabsmultiplefilelist.tsp?literatureNumber=slva413a&docCategoryId=1&familyId=412

Hi Mingwu,

之前的命令写错了,终于可以了!

谢谢!

朋友,你方便把你的发送格式发一遍吗?还有怎么配置的。。

我现在用BQ27621-G1EVM I2C操作,现在读取的寄存器值都是0xFF ,

例如:R 0x04 LSB MSB   读取寄存器0x04的返回值,都是0xFF

W 0x00 0x00,0x00  0x00 寄存器分配置使用的是默认值。望解答!3Q

读0x04寄存器是这样读的,怀疑是I2C driver的问题,

可以看下能不能访问其它I2C的器件。

我也在调这个电池管理芯片,发送地址能收到应答,但后面发送的都收不到应答。能分享一下发送的指令序列吗

老师你好,我读出来的也是FF,请问你解决这个问题了吗,如何办到的。谢谢

你读出来了吗?问题解决了吗?联系我 QQ1213168043

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top