根据公司需要开发了以ML5238电池管理芯片+STM8S为核心的电池管理系统。由于前期对BMS系统还是了解甚少,开发起来也遇到了不少困难。再开发管理系统的同时,我也开发了管理系统的上位机,上位机用C#开发我也是第一次。经过自己一个月我开发,终于把管理系统和上位机开发完成了。今天特写篇文章来写下心得以记录自己的成果。

开发环境:window10系统

开发软件:IAR for STM8S;visual studio 2017;

开发工具:电脑一台;ST_link V2烧录器一个;

ML5238介绍:

ML5283是16节锂电池组二次保护系统的模拟前端IC. ML5283提供电池电压监控, 充放电电流监控功能,并且可以检测每个电池单元充电/放电的过充/过放情况。 ML5238具有短路电流检测功能, 可以主动关断充电/放电的MOS_FET,而无需外部MCU。

上位机介绍:

为了配合电池包的使用,开发的一套上位机对电池包的监控和设置,上位机分两个页面,一个是电池包状态显示页面,另一部分是电池包参数设置页面。http://buy.42iot.com

电池包状态显示页面:

上图中可以显示没个单元的电池电压,电池均衡状态以及其它的状态。

电池包参数设置界面:

这个页面可以根据需求修改电池包的参数以满足自身需求。

电池保护板源码设计:

电池保护板的MCU IC采用的是STM8S105K4T6,ST公司的产品性价比还是很高的,此产品价格比51低性能比51强不少。

MCU与ML5238芯片的通信是采用4线SPI(模式0),MCU与上位机的通信方式是串口(波特率为9600)。

程序流程图:

在程序设计上,读取和保存EEPROM代码如下:

在main函数上加上看门狗防止异常,看门狗代码如下:

在代码设计均衡算法时,要特别注意ML5238使用手册上的说明,我把那部分翻译并截取过来;

欢迎大家关注。

至此,我就介绍到这里

ML5238电池管理芯片笔记的更多相关文章

  1. exynos 4412 电源管理芯片PMIC 的配置及使用方法

    /** ****************************************************************************** * @author    Maox ...

  2. BQ24296充电管理芯片使用过程中的注意事项

    BQ24296遇到的一点问题 概述:BQ24296是TI出品的具有窄范围VDC控制.基于I2C通讯的最大支持3A充电电流的开关式电源路径管理芯片.可以轻松实现2A以上的大电流充电,能量转换效率达到90 ...

  3. C++内存管理学习笔记(5)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  4. C++内存管理学习笔记(6)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  5. C++内存管理学习笔记(7)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  6. Docker Image管理学习笔记,ZT

    Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391

  7. 浪潮各机型管理芯片BMC IP(智能平台管理接口)设置

    NF5240m3/NF5140m3/NF5280m3/SA5212H2/NP5540M3NF5270M3/NF5170M3/NF8420m3 IPMI主板集成管理芯片BMC IP 设置开机按DEL键进 ...

  8. Android4.4电池管理

    一.概述 Android4.4的电池管理功能用于管理电池的充.放电功能. 整个电池管理的部分包含Linux电池驱动.Android电池服务.电池属性和參数.电池曲线优化四个部分. Linux电池驱动用 ...

  9. 三节锂电池充电管理芯片,IC电路图如何设计

    关于三节锂电池供电的产品,在三节锂电池上,需要三个电路系统: 1,三节锂电池保护电路, 2,三节锂电池充电电路, 3,三节锂电池输出电路. 1.三节锂电池保护电路,芯片电路图 控制三节锂电池池的充电电 ...

随机推荐

  1. <转> thinkPHP的常用配置项2

    'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符'TMPL_L_DELIM'=>'<{', //修改左定界符'TMPL_R_DELIM'=>'}> ...

  2. CSP2019 题解

    CSP2019 题解 D1T1 格雷码(code) 题目传送门 https://loj.ac/problem/3208 题解 按照题意模拟就可以了. 对于第 \(i\) 位,如果 \(k \geq 2 ...

  3. HTML加载过程

    在地址栏输入url,返回html后,浏览器开始顺序加载并渲染DOM Body标签 当浏览器遇到body标签才算真正开始加载并渲染DOM,此时会有以下几种情况: DOM元素 浏览器遇到dom元素时,正常 ...

  4. SpringBoot整合MyBatis-Plus代码自动生成类

    在springboot的test测试类下创建 MpGenerator.java   配置  MpGenerator.java public class MpGenerator { @Test publ ...

  5. 【leetcode】494. Target Sum

    题目如下: 解题思路:这题可以用动态规划来做.记dp[i][j] = x,表示使用nums的第0个到第i个之间的所有元素得到数值j有x种方法,那么很容易得到递推关系式,dp[i][j] = dp[i- ...

  6. 【leetcode】299. Bulls and Cows

    题目如下: 解题思路:本题难度不太大,对时间复杂度也没有很高的要求.我的做法是用一个字典来保存每个字符出现的次数,用正数1记录标记secret中出现的字符,用负数1记录guess中出现的字符,这样每出 ...

  7. SQL server int 转char类型

    CONVERT(CHAR,c.battery_board_id) CONVERT(VARCHAR,c.battery_board_id)

  8. ijkplayer阅读学习笔记之从代码上看播放流程

    http://blog.csdn.net/i_do_can/article/details/51374732

  9. C++编译-链接错误集合

    1,无法解析的外部符号,链接错误,原因:没找到某个符号(变量或函数)的定义体,一般是对应函数没实现,或第三方库没有添加到工程设置中 2,重复链接链接错误,一个定义体(实现体)被多个CPPP文件包含,导 ...

  10. Denali NAND FLASH控制器的验证

    NAND FLASH的结构如图所示: Denali NAND FLASH控制器模块提供了从AHB总线到外部NAND FLASH存储器芯片IO管脚的访问功能.主要技术特性包括: 1.标准32位AHB总线 ...