BQ27510模拟IIC读取数据详解
来源:互联网 发布:产品网络销售授权书 编辑:程序博客网 时间:2024/05/22 05:02
关于TI 的BQ系列电池管理芯片详细操作步骤。这款芯片功能还是很强大的,具体的我就不介绍了,查看datasheet。
本文介绍主要是通过模拟IIC读取BQ27510数据。
1、模拟IIC:之所以用模拟IIC是应为比较灵活一点,便于调试。对于模拟IIC可以看IIC通信协议写相关的函数;一般如果在调试IIC时用示波器看数据不稳定,示波器闪屏,一般是延时不够造成的。模拟IIC就不多介绍了,这个程序写起来还是很清晰的,资源也很多。
2、读取BQ27510数据函数编写:首先查看数据手册,COMMUNICATIONS部分,I 2 C INTERFACE。根据这部分时序结合模拟IIC编写对BQ27510内部寄存器进行读写的函数。
3、DATA COMMANDS部分:如下图所示0x08/0x09为读取电压命令(说明:之所以用两个字节的命令是因为电压测量范围为0~6000mV,而一个字节最大为256,两个字节为65535,其他命令原因一样);当2编写的对BQ27510读取函数是incremental read。只需要写入0x08命令后连续读取两个字节的数据,然后将两个字节拼接就可以了,就得到电压值了。也可以一个字节字节的读取,例如写入0X08命令得到一个字节的数据,然后写0X09命令得到一个字节的数据,然后拼接即可。读取其他数据方法一样。再提一句也可以写一个命令读完所有的数据。如写入0X02命令读30个字节数据,就可以读0x02、0x03.....。0x02往后29个字节命令的数据。
4、Extended Data Commands部分:如下图,扩展指令也可以读取所有的数据。SEALED ACCESS和UNSEALED ACCESS主要是设置也在扩展指令里0x61。每个指令的功能看datasheet。
例如要修改design capacity的值,需要直接对Dataflash的寄存器进行操作。操作流程如下:
1. 发送design capacity 寄存器的subcalss 到0x3E/0x3F(根据datasheet的Data Flash Summary的表格,design capacity是subclass,48。需要写入16进制)
W:AA 61 00
W : AA 3E 30 00
2. 发送需要修改的寄存器offset到0x40~0x5F之间,design capacity的offset是10,给0x40+10, 即0x4A,假设为2000mAh
W: AA 4A 07 D0
3.发送checksum到0x60,(需要按照新的0x40~0x5F之间的值进行计算
W:AA 60 new_checksum
源码就不发了,应该已经很清楚了。
- BQ27510模拟IIC读取数据详解
- IIC静默模式下读取数据
- 模拟IIC
- STM32使用模拟IIC实现24C02读取
- STM32F103单片机软件模拟IIC并读取TMP112数字温度传感器
- IIC详解
- IIC详解
- IIC_Recv如何在IIC静默模式下读取IIC总线数据
- arduino中用IIC读取MMA8452三轴加速度模块数据
- IIC读取AT24C256数据出现的问题及解析
- i/o 模拟IIC
- 模拟IIC协议
- C语言模拟IIC
- 模拟IIC移植
- STM32模拟 IIC
- linux模拟iic代码
- STM32软件模拟IIC
- 模拟IIC协议时序
- idea编译module时报attendance.unaligned.apk (拒绝访问。)
- C++-----直接声明对象PK new对象
- 深入分析Android (build/core/*.mk脚本)
- echo "$1"
- 神奇的圆周率
- BQ27510模拟IIC读取数据详解
- 112. Path Sum
- git基本用法
- ThinkPHP实现支付宝接口功能实例
- 怎样用CSS做出3D效果的云
- cshape学习(高级编程)
- Android 最火的快速开发框架XUtils
- [BZOJ1503]郁闷的出纳员 做题笔记
- iOS 图像裁剪圆角的几张方法