bq4050电池调试记录 MCU型号为STM32F407VGT6TR,采用IO模拟时序匹对SMBUS接口时序,对bq4050芯片进行读取,该案例时序可以类比TI公司其他smbus接口、bq芯片的读写操作。接下来,就对调试过程进行说明。: ]; o1 ?* u6 ` 9 s' g# `) B- }4 I 1.1 原理图设计 " c# R w X0 _6 u$ L1 h 连接到MCU IIC3管脚,PC9 PA8,这里可以供软件选择,是否使用MCU片上IIC3,或者使用模拟IO进行模拟时序操作。 IIC管教上拉处理, C# d$ H+ x" W6 @5 h! {. z . H1 Q) T( ^' h) Z6 _, V* S9 h 6 ~: |7 ]( f2 K. ]+ P ; d4 d, V- c# A$ M 好了,原理图就是这样比较简单。 9 ]6 y8 j# W2 u* p& q 1.2 软件调试 软件调试过程比较心累,这里需要记录一下。% D1 t! C1 R& o8 o " W$ R7 @6 N3 z: T- ~. y 第1天2 c, h7 n/ p: R. {$ P 刚开始使用模拟EEPROM的iic时序,做好代码设计,进行调试,结果是SMBUS一直没有从机ACK信号。怀疑地址错误,各种替换地址,结果还是一样。 O! g" j/ R$ k+ P# ^( G6 r, T* ? 第2天-5天 网上疯狂搜索SMBUS接口时序的代码,但是网上的代码质量太差,时序也没有描述清楚,浪费了很多时间尝试,调整了无数次时序,读取电压上来的数据还是不对。 新建工程单独调试SMBUS接口,刚开始都是在自己的项目工程上添加,修改频度次数太多了,不利于版本保存。也是耗费时间精力,搞累了,还没有效果。6 k5 w$ m# C0 a ! y9 W' ^2 D0 c 第6天-第7天8 z3 k; o s! U 问电池厂家借过来EV2300,安装驱动,下载TI提供 Battery Management Studio软件,连接好EV2300进行数据读写 抓取EV2300读取电池的SMBUS接口时序,分析。" {0 S5 }3 ]; m% Y4 ? 修改自己的代码,严格按照上述抓取的时序,再次进行读取,可以了。 6 j \6 n8 j% J 1.3 总结 TI官方文档针对SMBUS时序的细节太少了。网上搜索到的IIC和SMBUS的时序,总体上说smbus比较慢,是IIC时序的低速的表现。这很容易让人误解,从我抓取的SMBUS时序图上看,smbus的时序和IIC的时序差异还是比较大的,主要特点就是慢,真慢,难道慢就可以降低功耗了。。。。。 ' Q6 _3 ~7 p( Q( `8 _7 R& z 软、硬件调试有时候就是这样,费时费心,这也许是设计师不愿意使用没有用过的case。8 N. }5 T$ f' R) d. n ; g+ h( x" G4 m w" g' H 1.4 关键记录, ]. z8 [' e @ 详细记录参考 $ x, {/ c. u- E5 `1 S, N ————————————————. A# G9 F0 A6 \ 版权声明:大牛攻城狮 9 o( W7 N4 P) Y1 f- {9 }) L' p' M |
基于STM32的BootLoader经验分享
基于STM32如何选择 S2-LP 的外部晶体经验分享
基于是STM32的BLE 设备地址经验分享
基于ToF传感器的3D手势识别
NUCLEO-U545RE-Q评测(2)运行环境建立
基于使用 STM32 TT 类型 IO 的注意事项经验分享
基于STM32使用Framebuffer_Analyzer工具调试图像显示
ST安全连接,护航工业物联网一路前行
基于STM32的TouchGFX 4.22解锁新功能经验分享
基于STM32的MPU子区经验分享