Coder Social home page Coder Social logo

bldc-bms's Introduction

VESC BMS

Overview

Battery Managment System (BMS) for (but not limited to) an Electronic Speed Controller, specifically for a longboard controller (VESC).

Current battery pack specifications are LiFePO4 (3.2V nominal, ~2.6Ah) in a 6s2p, giving 19.2V with 5Ah (96Wh). Continuous discharge is about 20A (384W) with 30 second pulse discharge of 52A (1kW) and charge current of 5.2A (21.9V), for a 2p configuration.

Scope of the project is to design a BMS to meet the above specifications using off-the-shelf ICs for the battery managment section. A microcontroller circuit would also be incorperated to allow communication between the BMS and controller (SMBus/I2C), contrller and PC (USB-serial) and contrller and VESC (CAN bus).

Texis Instruments (TI) appears to have the most comprehensive set of battery managment systems offerings. These appear to be split up into two main sections: cell monitors and gas gauges. The bq769x0 seires will be used for the cell monitoring, offering bq76920, bq76930 and bq76940 based on the pack size. Currently the top candidats for the gas gauge are bq78350-R1 and bq34z100-R1 but more research is needed to determine which one is better suited.

BMS

  • Cell Monitor
    • Measure cell voltages and pack current (Coulomb Counter)
    • Cell and temperature measurment
    • Charge Limit (over-voltage and over-amperage)
    • Discharge Limit (under-Voltage and over-amperage)
    • Balancing circuitry and autobalancing mode
  • 'Gas Gauge' and Battery Managment Controller
    • Estimate pack State of Charge (SoC)
    • Estimate pack State of Health (SoH)
    • Estimate time-to-empty
    • Lifetime datalogging
    • Aging compensation (optional)
    • Self-discharge compensation (optional)

Cell Monitor

bq76930

  • 6-19 cells, various chemistries
  • 0x08 I2C Address (7-bit), 2.5V LDO, No CRC, 30-TSSOP (PW)
  • PN bq7693000DBT

Gas Gauge

bq78350-R1 - Gas Gauge via CEDV

See Technical Reference Sections:

  • 9.1.11 - EDV Age Fator - Compensate for cell aging
  • 9.1.12 - Self Discharge - estimate self-discharge

bq34z100-R1 - Gas Gauge via Impedance Track

'Impedance Track' module from TI give aging compensation and self-discharge compensation -> not true, bq78350 also has this. This module does not interface with cell monitor and reads only pack volage, how does it konw self-discharge issues?

Microcontroller

The MCU provides a communiciton bridge between the gas gauge and PC (serial via USB) and gas gauge and VESC (CAN bus). The MCU does not need to be powered when either of these functions are not used, thus power to operate the MCU should come from either one of these communiciton ports. (or have MCU sleep when USB-serial timeout or CAN timeout? Wake-up via interrupt on button or USB-serial or CAN? Seems complicated.)

Firware updates done via SWD or Device firmware update via USB DFU.

STM32F072C8T6TR CAN, HDMI-CEC, I²C (SMBus), IrDA, LIN, SPI, UART/USART, USB IC MCU 32BIT 64KB FLASH 48LQFP ARM® Cortex®-M0 STM32F0 Microcontroller IC 32-Bit 48MHz 64KB (64K x 8) FLASH 48-LQFP (7x7)

Reference Projects

  • TI Reference Design - TIDA-00449
  • TI Reference Design - TIDA-00792
  • TI Reference Disign - TIDA-00255
  • LibreSolar
    • Also using bq769x0 for cell monitor but no gas gauge, that function is done by the MCU (STM32F072)

TODO

  • Determine pack size and output - see intro
  • Determine cell monitor - bq76930
  • Determine gas gauge - bq78350-R1 or bq34z100-R1
  • Determine MCU - STM32F072 (USB-to-serial, USB bootloader, I2C, CAN)
  • 100% - Schematic capture
    • Add pre-charge circuit
    • Change balancing circuit from PNP to NPN
    • Change power-stange layout to POS rail on top of sheet
    • Setup for 6s? or have populated bypass for this layout
    • Press button to show SoC LED display with gas-gauge?
    • Jumper for MCU to be powered by pack
  • 100% - BoM and footprint selection for PCB
  • 1000% - Determine PCB footprint size constraights (multiple of 26650 cell size)
  • 100% - PCB capture
  • 0% - write driver for gas gauge on MCU
  • 0% - write interface module for MCU to PC
  • 100% - Order PCB and components
  • 100% - Assemble components on PCB
  • 100% - Hardware validation testing
  • TI SMBus to PC moudule is very expensive, looking for something similar to view BMS status

PCB_2019-06 TOFIX

  • Swap I2C's on STM32F0 as I2C1 only support SMBus for bq78350-r1
  • Mirror STM32F0 debug conn pinout
  • Assemble and test PCB

bldc-bms's People

Contributors

mpater avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.