cancel
Showing results for 
Search instead for 
Did you mean: 

Communication protocols for stm32 to stm32 for a BMS

La246
Associate II

I’m after some recommendations for a communication protocol between two stm32’s. One will be on a BMS board controlling a battery monitor IC and reading a fuel gauge and another will be on a seperate board with a charger and a power supply. The communication will mainly be the BMS stm32 sending battery statistics to the other board but there could be some two way communication. My plan is to make the BMS board standalone so it may not always be communicating with another stm32. I was originally thinking just UART but a quick google shows that CAN or SMBus may also be popular. I’m not sure of the advantages or disadvantages of going with different protocols. I haven’t used CAN or SMBus before but I could definitely look into it if that’s a better way to go. There might also be a possibility in the future for me to stack multiple BMS boards together to get more power output if that sways the decision on the communication protocol. 

4 REPLIES 4
Andrew Neil
Super User

By "BMS" I guess you mean Battery Monitoring System - rather than Building Monitoring System, or anything else?

Please also give more context:

  • what sort & size of battery
  • application environment - is this a car, or what?

 

That you're using an STM32 would make (virtually) no difference to the choice.


A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

Yes it’s a battery management system that will have probably 7s Li-ion batteries. At the moment I’m planning on making a portable light, just at a hobby project level I guess you’d probably say. I was mainly wondering if there is kind of a standard way of communicating to try and keep things standard if I ever did decide to use it for another project. 

Between two boards, with low bandwidth data, UART is simplest and best.

If you feel a post has answered your question, please click "Accept as Solution".

@La246 wrote:

 I was mainly wondering if there is kind of a standard way of communicating to try and keep things standard if I ever did decide to use it for another project. 


IF there was such a standard, it would have to be independent of what microcontroller you used - not specific to STM32.

 

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.