读芯片信息出错3_BQ40Z50芯片的使用心得(基于STM32F302)

本文作者分享了使用STM32F302通过模拟I2C与BQ40Z50-r1芯片进行SMBus通信的调试经验,详细介绍了从硬件配置、延时函数、时序控制到数据读取的全过程。在调试过程中遇到的挑战包括非标准延时导致的通信问题和时序衔接错误。作者提醒读者注意函数间的时序衔接,以避免通信错误。
摘要由CSDN通过智能技术生成

申明:本人使用的芯片为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

上时序图:

6758ede970874d21fd0012f4963e6a12.png

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

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

代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值