单片机
返回首页

毕业设计| STM32+TI BQ76940设计48V BMS方案

2023-04-26 来源:zhihu

这是根据TI官方那个方案改:精确监测和 50μA 待机电流、13S、48V 锂离子电池组参考设计TIDA-010030,链接如下:ti.com.cn/tool/cn/TIDA-原方案里的MCU用的是TI自家的MSP430,由于没用过,我自己改成了STM32F103C8T6。


除了电量计这块没有进行充放电学习过程外,基本实现要求功能,自定义的过流,短路,过放,过温都行。可以自动识别充放电,充电过程进行电池均衡(这里设置了一节),防充电器倒冲(程序存在BUG我最后只做到了10V,如果一上来就低于10V就不管用了),CAN总线传输数据也整上了。BQ7718我买错型号了,所以这个冗余保护部分就没测试过,不过这部分所在的第二块儿PCB很简单,直接改官方的PCB也行,我就是这么干的。


具体方案

原理框图:

总览原理图:

STM32我是用Cubmx进行的快速开发,配置起来很方便,具体流程我也是根据网上各种Cubemx教程一点一点来的,在此之前完全没用过,软件一直在吃灰。

注意事项

1)电流采样部分的PCB布线

这块儿很重要,硬件不行直接影响后面的软件程序设计。电流采用回路没设计好直接导致采集回来的电流老飘,然后误动作,因此我重打了一块板子,唉。


这里分享一个ADI的设计方法,可以借鉴学习:analog.com/en/analog-di

第一次给这种板子布线,傻傻的,光顾连线了,额。程序开发到一半发现电流怎么都归不了零,明明什么负载都没接,它却处于一个较高的波动,极其蛋疼。没法设计自动识别充放电了。于是第二次我参照官方的PCB进行了以下改进,做出来终于正常了。


所以布线要认真,我这一共弄了三版,第一版直接封装搞错好几个。。。。。。

2)与BQ76940的IIC通讯

Cubemx的硬件IIC下,我用的BQ7694003的IIC地址是0X08,实际上要写0X10。

由于我用的是Cubemx的硬件IIC,所以玩过这个硬件IIC的想必都碰过坑,我还行,做足了前期准备。幸运的是我参考了这篇博文:STM32F103硬件IIC在HAL库下入坑指南 blog.csdn.net/niushijia


同时我还在网上搜刮到了BQ76940和BQ34Z100-G1的相关程序。


在刚开始测试与BQ76940进行IIC通讯时,发生了无法通讯的问题,其根源在于BQ76940使用的是7位IIC地址:0X08。而STM32的硬件IIC是取8位地址中的前7位(从左往右数),然后直接将其最低位强制改为0(表示写操作)或1(表示读操作),最后最高位补0。这样导致我输入的从机地址是0X08,实际上发送出去的是0X40,BQ76940根本不响应,通过逻辑分析仪才看出来。


之后通过将从机地址手动左移一位后变为了0X10,这一次终于正确了,发送出的是0X08。可是,IIC读操作回来的数据仍然对不上。经过逻辑分析仪比对,人工CRC计算,发现CRC校验没过。校验时需要用到从机地址。虽然逻辑分析仪中显示的发送地址是0X08,但从机计算时采用的却是0X10加上读操作1(即0X11)。因此主机在进行CRC计算时就需要手动在原从机地址上+1处理,修改后读操作就能成功通过CRC校验。(PS:读操作即使不进行CRC计算流程也行,不过嘛,带CRC更保险)具体原因可以看BQ76940的官方CRC通讯手册。




补一张读操作时的图片,用下面的工具选择CRC-8,然后输入“11 FF”即可计算出从机BQ76940返回的CRC值:“B1”。

3)与BQ34Z100-G1的IIC通讯

BQ34Z100-G1这款电量计是阻抗跟踪的,比较准,不过对于新手来说也坑,它得预先配置文件,我是咸鱼专门买了个自制的EV2400然后用BqStudio配置的,要不真的很难整。


好在网上程序也好找,直接搬然后改一改就行。我只搬了后续的读取部分,初始化有些麻烦,还是老老实实用BqStudio配置吧。


还有它的IIC地址,搞得我很方,在Cubemx的硬件IIC上你写0XAA它实际输出的是0X55,就能用了,和之前那个BQ7694003的0X08你得手动左移一位不一样。

不过,芯片调试这里TI官方可是给了现成的调试软件,BQ76940有专门的上位机程序,BQ34Z100-G1有BqStudio,建议咸鱼卖个便宜的EV2400一步到位,省很多麻烦。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章