基于BQ40Z50芯片的寄存器读写
前两天项目需要实现以下功能:使用单片机读取电池电量信息,电池管理芯片为TI的BQ40Z50,当时lian连续调试了3天才完成,各种原因无法一一诉说,今天闲来无事总结下,供自己以后查阅。
单片机使用的STM32F207,使用模拟I2C读取BQ40Z50芯片寄存器。
单独使用此模拟I2C时序读取AT24C02,光模块均可正常工作,但是读取BQ40Z50就不可以。
(1)查芯片手册如下
尝试对0x16寄存器的0x44写入0x21 0x00,使用示波器观察发现0x44无应答,然后更改为0x00等均无应答,不知道什么原因;
(2)查SMB时序与I2C时序的不同,发现其速率为10K-100K,不可过低或者过高,更改模拟I2C代码,固定时序为40K左右,发现寄存器地址有应答,但是读取的数值不对一直为0xff;
(3)尝试读取操作0x16 0x0D,得到电池电量,一直没有进展;
(4)使用开发板飞线,用单片机自身i2c CORE生成的时序访问BQ40Z50,发现竟然可以成功读取;
(5)确认为模拟I2C问题,使用示波器抓取波形分析,发现单片机自身I2C波形和模拟I2C波形在写完读时序后的状态不一致,更改模拟I2C波形与自身I2C波形一致后问题解决。
总结:不要随便造时序,因为你不知道其通用性到底如何。
基于BQ40Z50芯片的寄存器读写相关推荐
- UEFI开发历程2—基于SuperIO芯片的寄存器读写
一.SuperIO介绍 目前市面上的主流SuperIO芯片有NCT.ITE等厂商的生产的芯片,本文主要针对IT8613E这款芯片的逻辑设备寄存器的读写进行介绍. IT8613E主要用来连接外部低速设备 ...
- LPS25HB 寄存器读写程序解读
文章目录 LPS25HB 寄存器读写程序解读 1.读写功能的统一接口函数 2.设计结构体函数指针来调用统一的读写函数 3.与通信方式无关的寄存器读写抽象函数接口 LPS25HB 寄存器读写程序解读 一 ...
- STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码
STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码 提供配套CUBE工程 STM32H743 SOEM EtherCAT基于STM32H743 ...
- 基于交换芯片的五元组的PCL规则过滤功能
2019独角兽企业重金招聘Python工程师标准>>> 基于交换芯片的五元组的PCL规则过滤功能作者: 韩大卫@吉林师范大学2012.12.10Not Approved by Doc ...
- 基于交换芯片的五元组过滤功能
基于交换芯片的五元组的PCL规则过滤功能作者: 韩大卫@吉林师范大学2012.12.10Not Approved by Document Control Review Copy Only基于Marve ...
- 基于STM32F103芯片实现LED灯闪烁
基于STM32F103芯片实现LED灯闪烁 前言 一,寄存器配置 1,时钟控制 2,GPIO端口设置: 二.实际操作 1.具体代码 2.keil5项目运行 3.硬件的连接 4.链接到 mcuisp 串 ...
- 单片机IC卡读取开题报告_基于单片机的ic卡读写系统的实现.doc
基于单片机的ic卡读写系统的实现 2013届 分类号:TP311 单位代码:10452 毕业设计(论文) 基于单片机的IC卡读写系统的实现 姓 名 学 号 Abstract With the deve ...
- 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试
本节提示:本节所需环境:ubuntu 16 / 18工具:VScode.Cmake.openwrt 交叉编译器 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试 通过前面两章节的操 ...
- 基于STC8G芯片的时钟显示系统
基于STC8G芯片的时钟显示系统 这里写目录标题 基于STC8G芯片的时钟显示系统 一.电路原理图设计 1.1EDA__立创EDA 1.1.1 主要器件BOM--仅供参考 1.1.2主要电路原理图设计 ...
最新文章
- K单体型重建算法的研究
- python当中pip使用_python
- CentOS6.8网络接口配置文件ifcfg-eth0
- 例4:写一个把字符串的所有大写字母改为小写的程序。设字符串以0结尾。
- 齐博V7仿爱丽图库模板(含齐博图库V1.0模板)
- 使用JBehave,Gradle和Jenkins的行为驱动开发(BDD)
- 售前工程师的成长---一个老员工的经验之谈(三)
- Python 进阶 —— 重访 tuple
- 随机森林(Random Forest)通俗教程
- Setinterl全面介绍
- 什么是Servlet类
- 20190216-Java 教程(菜鸟教程)
- 基于微信小程序的校园论坛系统开发过程
- 由于计算机启动了配置文件,提示由于启动计算机时出现了页面文件配置问题解决方法...
- python画xy轴_用python建立两个Y轴的XY曲线图方法
- 【排错必看】Windows系统安装mysql时常见问题及解决方法
- 租用香港服务器机房机柜,费用由哪些部分组成
- python字符串对象所有基本方法简要
- Hopcroft–Karp algorithm
- 个人日记-纪录片《蓝海防线》观后感-20200921