前两天项目需要实现以下功能:使用单片机读取电池电量信息,电池管理芯片为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芯片的寄存器读写相关推荐

  1. UEFI开发历程2—基于SuperIO芯片的寄存器读写

    一.SuperIO介绍 目前市面上的主流SuperIO芯片有NCT.ITE等厂商的生产的芯片,本文主要针对IT8613E这款芯片的逻辑设备寄存器的读写进行介绍. IT8613E主要用来连接外部低速设备 ...

  2. LPS25HB 寄存器读写程序解读

    文章目录 LPS25HB 寄存器读写程序解读 1.读写功能的统一接口函数 2.设计结构体函数指针来调用统一的读写函数 3.与通信方式无关的寄存器读写抽象函数接口 LPS25HB 寄存器读写程序解读 一 ...

  3. STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码

    STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码 提供配套CUBE工程 STM32H743 SOEM EtherCAT基于STM32H743 ...

  4. 基于交换芯片的五元组的PCL规则过滤功能

    2019独角兽企业重金招聘Python工程师标准>>> 基于交换芯片的五元组的PCL规则过滤功能作者: 韩大卫@吉林师范大学2012.12.10Not Approved by Doc ...

  5. 基于交换芯片的五元组过滤功能

    基于交换芯片的五元组的PCL规则过滤功能作者: 韩大卫@吉林师范大学2012.12.10Not Approved by Document Control Review Copy Only基于Marve ...

  6. 基于STM32F103芯片实现LED灯闪烁

    基于STM32F103芯片实现LED灯闪烁 前言 一,寄存器配置 1,时钟控制 2,GPIO端口设置: 二.实际操作 1.具体代码 2.keil5项目运行 3.硬件的连接 4.链接到 mcuisp 串 ...

  7. 单片机IC卡读取开题报告_基于单片机的ic卡读写系统的实现.doc

    基于单片机的ic卡读写系统的实现 2013届 分类号:TP311 单位代码:10452 毕业设计(论文) 基于单片机的IC卡读写系统的实现 姓 名 学 号 Abstract With the deve ...

  8. 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试

    本节提示:本节所需环境:ubuntu 16 / 18工具:VScode.Cmake.openwrt 交叉编译器 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试 通过前面两章节的操 ...

  9. 基于STC8G芯片的时钟显示系统

    基于STC8G芯片的时钟显示系统 这里写目录标题 基于STC8G芯片的时钟显示系统 一.电路原理图设计 1.1EDA__立创EDA 1.1.1 主要器件BOM--仅供参考 1.1.2主要电路原理图设计 ...

最新文章

  1. K单体型重建算法的研究
  2. python当中pip使用_python
  3. CentOS6.8网络接口配置文件ifcfg-eth0
  4. 例4:写一个把字符串的所有大写字母改为小写的程序。设字符串以0结尾。
  5. 齐博V7仿爱丽图库模板(含齐博图库V1.0模板)
  6. 使用JBehave,Gradle和Jenkins的行为驱动开发(BDD)
  7. 售前工程师的成长---一个老员工的经验之谈(三)
  8. Python 进阶 —— 重访 tuple
  9. 随机森林(Random Forest)通俗教程
  10. Setinterl全面介绍
  11. 什么是Servlet类
  12. 20190216-Java 教程(菜鸟教程)
  13. 基于微信小程序的校园论坛系统开发过程
  14. 由于计算机启动了配置文件,提示由于启动计算机时出现了页面文件配置问题解决方法...
  15. python画xy轴_用python建立两个Y轴的XY曲线图方法
  16. 【排错必看】Windows系统安装mysql时常见问题及解决方法
  17. 租用香港服务器机房机柜,费用由哪些部分组成
  18. python字符串对象所有基本方法简要
  19. Hopcroft–Karp algorithm
  20. 个人日记-纪录片《蓝海防线》观后感-20200921

热门文章

  1. mac下的流氓mackeeper
  2. 多版本npm包共存问题
  3. Android GC机制及一些调试信息
  4. HTML 转 PDF API 接口
  5. 织梦cms java_织梦CMS文件夹目录解释(完整版)
  6. ckeditor使用教程 php,为ckeditor编辑器修改添加一键排版功能
  7. 百炼2964 日历问题
  8. 小厨餐饮加盟有什么优势
  9. 让人烦躁的“机房空调噪音”该怎么解决?
  10. 2022-2028全球水壶包装喷码解决方案行业调研及趋势分析报告