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

发布者:快乐兔子最新更新时间:2023-04-26 来源: zhihu关键字:STM32  TI  48V  BMS 手机看文章 扫描二维码
随时随地手机看文章

这是根据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一步到位,省很多麻烦。


关键字:STM32  TI  48V  BMS 引用地址:毕业设计| STM32+TI BQ76940设计48V BMS方案

上一篇:毕业设计| STM32坡道行驶巡线小车制作教程
下一篇:意法半导体STM32全面支持Microsoft Visual Studio Code

推荐阅读最新更新时间:2024-11-06 10:50

示波器分析485波形图
测试设备: 1.MCU:STM32G0 2.485芯片:3peak 3.示波器:普源RIGOL DS1054Z 知识点: 1.A高B低:1 2.B高A低:0 3.起始信号: 由1变0一个bit时间 4.停止信号: 由0变1一个bit时间 5.空闲态: 一直是1(A高B低) 6.发送顺序:先发送低位再发送高位,比如发送0x53(01010011),先发送低四位,再发送高四位,并且低四位发送也是先从低到高发,所以示波器看到的应该是(11001010) 数据格式说明: 1.波特率:4800 2.起始位:1位 3.数据位:8位 4.校验位: 无 5.停止位:1位 测试 1.发送两个字
[单片机]
示波器分析485波形图
stm32学习之复位和时钟
1、复位 STM32F支持三种复位形式,分别为系统复位、电源复位和备份区域复位。 1.1 系统复位 当以下事件中的一件发生时,产生一个系统复位: 1. NRST管脚上的低电平(外部复位) 2. 窗口看门狗计数终止( WWDG复位) 3. 独立看门狗计数终止( IWDG复位) 4. 软件复位( SW复位)(将Cortex-M3中断应用和复位控制寄存器中的SYSRESETREQ位置1, 可实现软件复位。) 5. 低功耗管理复位 可通过查看RCC_CSR控制状态寄存器中的复位状态标志位来确认复位事件来源。 1.2 电源复位(电源复位将复位除了备份区域外的所有寄存器,地址0x0000_0000~
[单片机]
STM32输出比较模式输出不动频率的脉冲
//以下为TIM配置程序 void TIM1_PWM_INIT(void) //TIM1配置PWM输出参数 { u32 temp_fre,temp_duty; TempC = 60; //设置频率初始值 TempD = 4; //设置初始占空比1 / 2 temp_fre = (1000000 / TempC) - 1; temp_duty = ((temp_fre + 1) / TempD); TIM_TimeBaseStructure.TIM_Prescaler = 72; TIM_TimeBaseStructure.TIM_CounterMode
[单片机]
意法推出配备1MB闪存的STM32微控制器
    意法半导体扩大STM32 微控制器产品阵容,增加更多特性和最高1MB的片上闪存。新增闪存容量让STM32开发人员可用存储容量增加一倍以上,可支持未来的产品升级,可提高系统性能,并提供先进的应用特性,如消费电子和工业产品的下一代图形用户界面。     随着STM32 XL高密度产品的发布,意法半导体现有STM32微控制器达99款 ,是业内产品型号最多的ARM Cortex-M3 32位微控制器,提供各种存储密度和操作速度,并集成多种功能特性,以满足各种的应用需求。。所有的STM32产品的引脚和软件都相互兼容,共用同一个外设资源库。这种平台共用性让开发人员只需少量的设计即可升级产品,将相同的知识产权、工具和硬件用于多
[单片机]
STM32 基础系列教程 0 - CubeMX 下载与安装
前言 学习STM32CUBEMX工具的下载与安装,学会从st官网(www.st.com)查找与下载资料。 示例详解 STM32CUBEMX 下载 进入st官网(www.st.com),在官网的网页搜索框中输入STM32cubeMX 在跳转后面网页中,点 Get Software 网页自动跳转到尾部,选选最高版本(如图中5.0.1) 在弹出的界面中点ACCEPT,然后输入用户名及邮箱地址(用于接收下载地址),勾选I have…后点DOWNLOAD 此时网页显示界面如下,登入邮箱,去查收下载地址,在接收到的邮件中直接点击DownLoad Now 网页自动加载,然后自动下载 stm32cub
[单片机]
<font color='red'>STM32</font> 基础系列教程 0 - CubeMX 下载与安装
STM32驱动16位精度A/D转换芯片ADS1120
一.电路连接 原理图中使用了两个通道。 二.相关寄存器 见ADS1120官方手册 三.代码编写顺序实例(官方伪代码) 四.STM32程序 void ADC_1120_AIN1_CONVER() { //********************************************** //ADC初始化 //********************************************** Delay_N_ms(1);//延时 ADC_CS_LOW;//选中ADC芯片 Delay_N_ms(1);//
[单片机]
(一)stm32之CMSIS标准、库目录、GPIO
一、CMSIS标准   ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU。该内核是ARM公司设计的一种处理器体系架构。内核与外设的关系就像PC上的CPU与硬盘、主板、内存等的关系一样。 基于cortex系列的处理器内核都是一样的,区别在于除内核以外的外设的差异,由于这些差异,导致不同处理器移植起来比较麻烦,所以ARM与芯片厂商建立了CMSIS标准,CMSIS架构如下所示:   CMSIS标准中最主要的是CMSIS核心层;内核函数层中的内核函数寄存器以及地址主要由ARM公司提供;设备外设访问层核外外设和中断寄存器地址由芯片生产厂商定义。 二、库目录和文件简介 1、core_cm3.c文件   在Co
[单片机]
(一)<font color='red'>stm32</font>之CMSIS标准、库目录、GPIO
基于TI OMAP3平台的多参数监护仪设计与实现
 引言   在现代医学中,使用多参数监护仪对危重病人进行实时监测,可以及时地了解其心肺功能、血压以及氧合能力等综合因素,对病人的治疗起着非常重要的作用。多参数监护仪已经在病房护理和急救系统中得到了广泛的应用。   基于传统PC平台的多参数监护仪成本高、体积大、操作复杂,使用范围具有局限性。而采用单片机为核心的便携式多参数监护仪运算能力低,功能单一,界面简陋,只能进行简单的信号显示和存储。本文以德州仪器公司(TI)ARM+DSP的双核处理器OMAP3530为核心,扩展参数采集前端、触摸屏、SD卡存储电路和网络接入电路等模块,设计及实现了一个具有实时检测、显示、存储和网络传输等功能的新型多参数监护仪。基于双核芯片的优异性能,系统可
[工业控制]
基于<font color='red'>TI</font> OMAP3平台的多参数监护仪设计与实现
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved