STM32F767--LTC4015--SMBUS通信
STM32F767–LTC4015–SMBUS通信
LTC4015是具数字遥测系统的多化学组成降压型电池充电器控制器。数据手册详见官方文档:https://www.analog.com/media/en/technical-documentation/data-sheets/4015fb.pdf。
SMBus时序图
注意事项
1、分清I2C与SMBus的差异。
2、主控芯片与LTC4015通讯,需严格按照LTC4015时序。
调试过程中踩到的坑
- 被所谓的SMBus代码误导
这之前了解过BQ4050,且BQ4050也声称为SMBus通讯方式,并且网上众多的STM32F主控芯片驱动BQ4050的文章,都声称是以SMBus通讯方式驱动的。
因此,本人想当然地以这些示例为参考编写自己的驱动。
编写过程中发现,很多代码是完成以I2C方式来驱动BQ4050的,却坚称自己用的是SMBus方式。
当时虽有疑惑,但人家说自己驱动成功了。于是把心里的疑惑略过,也采用相同方式编写LTC4015的驱动。
结果:虽能找到LTC4015地址对应的外设,却无法与之通讯读取任何数据。浪费了大概1.5个工作日。 - 教训
勿盲目相信所谓的成功代码。
LTC4015 SMBus通讯正解
发现踩到坑后,果断重新仔细阅读读数据手册,严格按LTC4015的SMBus通讯时序编写程序。
再次测试,数据读写完全正常。
由于项目原因,只将头文件部分代码贴出:
如有疑问进一步讨论,请加qq34621589。