基于 NXP LPC804 的电动工具 BMS 方案

       现在电动工具使用时大多摆脱了电源线的束缚,电池包成了电动工具的必备,这时候 BMS 就显得格外重要,没有了它,电池包就是一个随时可以被激活的“炸弹”,所以先给大家简单讲下什么是 BMS!

       BMS(Battery Management System)即电池管理系统,是一种能够对蓄电池进行监控和管理的电子装置,通过对电压、电流、温度以及 SOC 等参数采集、计算,进而控制电池的充放电过程,实现对电池的保护、提升电池的综合性能。为了保障电池包的安全性、耐久性、动力性,我们需要有 BMS,有了它我们才可以更加安全地使用电动工具。因此大联大世平集团推出了基于 NXP LPC804 的电动工具 BMS 方案,LPC804 的基本参数如下:

  • 高效节能的 ARM Cortex®-M0+ 内核
  • 主频最高可达 15 MHz
  • 带有 32 KB Flash(EEPROM Based)、4 KB SRAM
  • 带有开关矩阵,可配置 2 × I2C、2 × UART、1 × SPI、1 × 3 ch PWM
  • 支持 Capacitive Touch、PLU
  • 支持 12 ch 12 bit 480 ksps ADC 和 1 ch 10 bit DAC
  • 最高支持 30 个 GPIO

       LPC804 其程序存储器为 EEPROM 工艺,可以方便地作为数据 EEPROM 使用,用来存储 SOC、SOH、SOF、SOE、累积充放电 Ah 数、故障码和一致性等关键数据。另外 LPC804 还带有电容触控接口,因此它可以应用于低成本的触控方案。由于 LPC804 高性价比和有易于使用和灵活的外设,故其还可以应用于基本电机控制、简单传感器网关、终端节点连接、家庭环境监测设备等领域。

       LPC804 MCU 框图如下:

       关于 LPC804 的参数可以参照“单片大师”写的博文:《三分钟带你认识 LPC800 家族和明星成员 LPC824》,链接给大家送上:https://www.wpgdadatong.com/tw/blog/detail?BID=B0280

硬件设计说明:

       大联大世平集团推出基于 NXP LPC804 的 MCU 评估板,该评估板主要由板载的烧录 MCU LPC11U35、SPI Flash、USB 接口、Arduino 接口、SWD 接口、晶振、LED 灯以及用户按键等部分组成,评估板功能框图如下:

原理图:

       ① LPC11U35 板载调试电路:

       ② LPC804 主控电路:

       ③ Arduino 接口 & 电源:

PCB Layout

       ① Top 层:

       ② Bottom 层:

软件设计说明:

开发环境安装:

       我们使用的是 Keil uVision5(也可使用 NXP 提供的 MCU 开发环境 MCUXpresso),MCUXpresso 下载地址:https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE

软件 SDK:

       SDK 包下载链接:https://mcuxpresso.nxp.com/en/builder

       ① 大联大世平集团可以提供客制化的 API 可以快速上手 ADC、I2C、UART、GPIO 等功能调试。现在用 LPC804 SDK 的 I2C 来进行演示,实现温度检测,例程的路径如下图所示:
       ② 程序如下图所示:

       ③ 引脚配置及初始化,该部分主要是通过开关矩阵去进行配置 I2C 脚:

       ④ 主机发送数据到从机:
       ⑤ 主机接收从机发送的数据:
       这样就可以完成 I2C 主机与从机间的通信,至于如何获取到温度传感器则需要参考温度传感器的手册,通过 I2C 去发送 / 接收相关的数据。

       ⑥ I2C 实现温度检测效果演示,该部分则可以用来检测电池包的温度,当然也可以通过 ADC 来采集热敏电阻电压值来获取温度:

场景应用图

sceneryUrl

产品实体图

imgUrl