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.

bq28550-r1相关问题

bq28550具有监测和保护功能,保护功能是不是不需要软件干预,硬件就可以完成啊?

我的板子焊完了,还没有编程,想先通电测试一下保护部分,可以吗?

  • 常规的锂电池安全保护都是基于硬件的,可以没有编程的情况下测试这个板子的锂电池常规保护的部分。

  • 请问,图片中的例子Subclass ID (576) + Offset (13)是怎么得出来的。

    编程时,低电压阈值写入的是一个范围还是一个数值?

  • 这个很简单的,你在TRM上找到对应的需要修改值的Row Location, Hex Address: 0x0112 ,因为0x01YY这个SBS  data中只有YY后两位才是表示row号码的,所以根据16进制可以知道 此时的row号码为18,那么乘以每个row中的32列 即可以得到18*32=576 ,这里注意因为offset是从subclass那个行的第一位为基准来算偏移量,所以在TRM中查到的bit offset要减1,即得到13。所以实际uv条件存放的位置就是576+13=589.

     

    低电压阀值是一个确定的值,根据你的电池特性选择,一般锂电池选择3V.

  • 0x0112中的后两位12表示的是18row,offset 13在编程时好像没用到是吗?

    例子的作用是写低电压阈值,写数据顺序是什么?

    0x2f指令的作用是什么?

  • 0x12=16*1+2=18 ,offset13是用来找到UV条件在18行的哪一列,是有用的。

    先找到对应的行,将行的数据读出来以后修改对应offset的值,再将修改过的行写入。见TRM的page 58。

    0x2f的作用就是block的读,可以用这个命令来多多个字节的数据,而不是单个字节。因为Smbus没有i2c的Multe-byte read和write,所以是用block write和read来实现对多个数据访问的。在调用这个函数时,除了给command,还要给byte counter设置操作的byte数,比如示列中的32.

  • 如果我想改变欠压阈值,编程思想是:

    S(开始) 从地址+写 A(应答) 0x00(命令码) A   0x112(行地址)   A

    S(开始) 从地址+读 A(应答) 0x2F(命令码) A   S(开始) 从地址+写 A(应答) Data Byte(长度32)

    改变对应偏移量的值

    S(开始) 从地址+写 A(应答) 0x00(命令码) A   0x112(行地址)   A    修改过后的Data Byte(每发送一个字节产生一次应答)