BQ40Z50芯片的使用心得(基于STM32F302)

申明:本人使用的芯片为BQ40Z50-r1,主控模块为STM32F302,参考代码为野火通讯的模拟I2c部分。


1、众所周知,BQ芯片的这个SMBus协议与I2c协议大同小异,区别在于SM它的通信频率相对没有IC那么高。那么问题来了,如何通过非硬件♂I2c来控制频率以实现SMBus通信,之前在网上我也找过相关电量芯片读取资料,似乎大部分的前辈都是通过硬件I2c来实现的。于是乎鄙人不信邪,就想调一个软件I2c出来玩玩。

2、下面为操作过程:

1、首先需要硬件工程师搭配好环境。

2、你需要配置好属于你的(32单片机)的延时函数(us&ms级别)//很重要。

3、开整。ctrl+c ctrl+v


接下来就是根据时序图“敲”代码啦(通假字 敲 通->抄)。

一步配置:将我们单片机的SCL&SDA接口配置好,SDA输入模式设置为上拉,输出模式则设置为推挽即可。SCL则不讲究那么多,直接推挽输出就完事儿。

二步开始:时钟线为高时,数据线出现下降沿表示起始信号

第三步:就要开始我们的数据发送了,BQ40Z50的设备地址默认为0x16。

第四步:等待应答,把数据线释放(给高电平),时钟线拉高然后读取SDA输入信号,为0是应答,1为非应答。

第五步:在有应答之后我们执行第五步,发送寄存器地址,也就是所谓的命令参数,鄙人做的是读取电压(0x09)以及电量百分比(0x0D),和发送设备地址一样,需等待应答后执行下一步。

第六步:在寄存器地址成功获得应答后,需重新开始我们的start函数,emm,为了保险起见在 start之前我还stop了一下。防止后面数据不完整,至于为什么我后面会贴链接。

前戏过后,终于可以轮到我们的读取部分了

 第七步:那么接下来就是我们的在成功应答后,发送设备地址 | 读取操作,即(0x16 | 0x01)。再次等待应答...

八:终于终于可以读数据啦:在777过后接收到应答,我们兴致冲冲的开始read,电压为16位,读取时需要进行移位合并操作。电量百分比则不需要。

九:发送应答,将数据线持续拉高(一个时钟周期)

十:读高位即再次调用read函数

十一:回复无应答

十二:调用stop函数就 完事儿了。

我为什么要分享这么一份代码:作为一个新手,我调试这部分代码花费了大概10天的时间,没错!我就是这么的菜。最后多亏了同事陈某某 弄了个示波器协助调试才调好。在SMBus通信中,我使用的延时为40us,emm但这个值不是准确的,我还偶尔会出现发送设备地址无应答的情况,这个原因咱也不懂,还在调查中,找不到原因就作一个无应答数据的无效处理即可。

容易出错的地方就是两个函数之间的时序衔接,容易出现一些幺蛾子,细心的朋友可以再细点。

按照一般情况,电压以及电量百分比存放在一个16位比利(变量)那。对其有效位进行控制,电压&0x7fff,电流&0x7f,这样获得的值才是最香的(正确)。

本内容转载于网络,侵删!
#学习路径#
全部评论
🤣芯片 太强了
点赞 回复 分享
发布于 2022-02-16 19:02
我的毕业设计就是这个芯片,哈哈哈哈
点赞 回复 分享
发布于 2022-02-14 14:37

相关推荐

04-10 11:02
已编辑
北方民族大学 全栈开发
“无名小卒,还是名扬天下?”我知道很多人都不觉得我能走到今天这一步,当然,也包括我自己。在我的人生里,有两部作品刻下了最深的烙印:《斗破苍穹》与《龙族》。它们总被人拿来对照:一边是萧炎的桀骜轻狂,一边是路明非的怯懦衰颓。有人说,天蚕土豆没见过魂天帝,但江南见过真凯撒。我时常觉得,自己就是那个衰小孩路明非。可路明非可以开挂,我不可以;我也无数次幻想过,能拥有萧炎那般年少轻狂的人生,可我没有他与生俱来的逆天天赋。我只是个平庸的普通人,一个看过《斗破苍穹》却开不了挂的路明非,只能一步一步往上爬。从我下定决心找实习的那一刻起,我就给自己定下了目标:“我一定要为字节跳动卖命.jpg”。萧炎有他的三年之约,我有我的两年半之约(其实是一年半)。2024.11.20,科大讯飞的第一封实习offer落进邮箱,我迈出了这场奔赴的第一步。2025.8.18,放弃百度转正的安稳机会,转身走进前路未卜的不确定里。我很感谢我在百度的mentor,是她从茫茫人海选中了我,给了我大厂实习的机会。即便有段时间我状态差、产出不理想,她依旧愿意认可我、希望我留下转正。2025.11.14,我选择走进字节跳动,以实习生的身份重新出发。2026.3.25 - 3.31,一周速通上海飞书,幸遇赏识我的伯乐,斩获Special Offer。被告知面试通过的那一刻,我的内心无比平静,就像这个offer本就该属于我。不是侥幸,是应得的。这一路,有人看轻过我的出身,不相信我能走到这里;也有人在我看不见前路的时候,替我举过灯。没有他们的鼓励与支撑,就没有今天站在这里的我。我看到了自强不息的激荡,那是一个双非的伟大乐章!我是雨夜迈巴赫,我要开启属于我的新篇章了。
在看牛客的本杰明很勇...:真心祝贺l总 我永远的偶像 我滴神
春招至今,你收到几个面试...
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务