最近调试了一款电量计芯片,LTC2943。关于其数据读取过程,进行如下分析,这部分不太了解的朋友可以参考,都是个人的一些理解,有不到位的地方欢迎指出。
首先看到,芯片手册中关于寄存器的定义和描述如下:
本文主要用到的是02h和08h这两个寄存器,02寄存器中存储的是电荷量,08寄存器中存储的是电压值。
电量支持应该是使用给这两个寄存器,手册中所说的C、D寄存器。但是在手册中没有看出这两个寄存器有什么区别,驱动中也是只使用了MSB这个。
获取寄存器数据的函数返回值就是读取到的数据。
这个是驱动中获取电荷的函数,用到了上面读出的寄存器的值。然后用到了一个convert_bin_to_uAh的函数。函数原型如下: