根据公司需要开发了以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. 前端之JavaScript:JS之DOM对象一

    js之DOM对象一 一.什么是HTML  DOM HTML  Document Object Model(文档对象模型) HTML DOM 定义了访问和操作HTML文档的标准方法 HTML DOM 把 ...

  2. 滑块QAbstractSlider

    继承于 QWidget 抽象类-必须子类化 提供的范围内的整数值 QAbstractSlider import sys from PyQt5.QtWidgets import QApplication ...

  3. 简单说说JavaBean的使用

    一:JavaBean定义 JavaBean是一种可重复使用.跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如中的那些可视化图 ...

  4. Java——常用类(StringBuffer)

    [StringBuffer]   <1>java.lang.StringBuffer代表可变的字符序列. <2>StringBuffer和String类似,但是StringBu ...

  5. UOJ418. 【集训队作业2018】三角形

    http://uoj.ac/problem/418 题解 考虑激活每个节点时,它的每个儿子都是放满的. 那每一次的操作我们可以用一个二元组来表示\((w_i-\sum w_{son},\sum w_{ ...

  6. 3D Computer Grapihcs Using OpenGL - 05 EBO

    本节将采用两种方法绘制两个三角形. 先看第一种方法的代码 MyGlWindow.cpp #include <gl\glew.h> #include "MyGlWindow.h&q ...

  7. Zookeeper w3cschool教程

    1.简介 ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题. ZooKeeper允许开发 ...

  8. 大数据笔记(一)——Hadoop的起源与背景知识

    一.大数据的5个特征(IBM提出): Volume(大量) Velocity(高速) Variety(多样) Value(价值) Varacity(真实性) 二.OLTP与OLAP 1.OLTP:联机 ...

  9. postgresql源码编译安装(centos)

    centos6.8安装postgresql-9.6.8 一.环境 centos6.8 postgresql-9.6.8 二.准备工作 虚拟机可以连接外网 三.先安装make,gcc,gcc-c++,r ...

  10. Asynchronous module definition

    Asynchronous module definition Asynchronous module definition (AMD) is a specification for the progr ...