This is the block diagram I have planned, organized in phases of implementation
As phase 2 and 3 come later I prefer to star talking only about phase 1.
For the battery monitor and protecto I have thought about BQ76952. The highlights of this components are:
- 3 to 16 cells so it can be used in 12v, 24v or 48v systems.
- Voltage measurement. I don't need to use voltage dividers to measure with wil the MCU.
- Current measurement using a shunt. Same story.
- Temperature sensor input.
- Coulomb counting. Very useful for me as I do not need to do it manually in the MCU.
- LDO outputs to supply the rest of the devices.
- Voltage (high/low), current and temperature protection.
- Integrated charge pump to use high side n-mosfets as switch.
- Individual control of these n-mosfets for direction selection. (let's not discuss about this)
- I2C and spi comunication to configure the device and read voltage, current, temperature and coulomb counting.
- Passive balancing. I am not planning to use it but it is there.
- Unit Price: $3.68.
The advantadge of this component is that I can have all the protections done by hardware and avoid firmware bugs and so on. I think this chip is awesome for the cost.
For the MCU I am planning to go with a STM32 Cortex-M. I have not decided which one but all of the are the same. It only chages clock speed, memory, peripherals.....
The function of this MCU is to coordinate the whole BMS. In phase 1, it will read the measurements form the Battery monitor and transmit them. It will also receive new configurations from and reprogram the battery monitor.
For comunication I thing it is not necessary to be decided now. I could use Bluetooth, wifi.... whatever wired or wireless.
Something interesting I did in a previous project is having an USB input. Using a USB stick with a propperly formated TXT file with the configuration, you can connect it and reprogram it.
For the shunt I was planning using a shunt. Provably a 4 terms one for accuracy.
For the switch I will use an array of n-mosfets.
Another question you might ask is why 3 MCU in total. They are cheap, around $3 and it will provide bug and process isolation. In terms of complexity, STM32 are quite easy to work with, they only requiere few VDDs and ground and no external components. Only the comunication chip will need crystal so I can run then crystaless.
What do you think about this?