Balancing Logic of MC33771 Blocks in MBDT

cancel
Showing results for 
Search instead for 
Did you mean: 

Balancing Logic of MC33771 Blocks in MBDT

270 Views
Contributor III

Hi @mariuslucianand and everyone,

This is Ozan and I am using MC33771 board with S32K144 and try to develop BMS algorithms with Matlab 2020a and mbdt v4.2.

I want to learn more about the balancing blocks and the logic behind these blocks. I reviewed the help section of these blocks in Matlab but I could not find certain information. 

There are three main blocks for balancing; first one is balance disable/enable, second is balance pause and the third is set individual balance. I want to learn more about these blocks and details about following topics;

  • What will be the balancing current? Is it the max balance current (300mA) that stated in the manual?
  • Is the balancing current will be constant through the balancing? To be more clear, the balance current is constant and lets say it is 100 mA. Whenever we enable a balancing block this current flow though either all cells or certain cell (in case of individual setting) until the balancing block is disabled. Is this scenario true or are there any other details?
  • Is there any way to control the balancing current?
  • What is the resistance value of the balancing resistors? And if the current is constant the voltage drop will be constant between enabling and disabling the block?
  • When we enable two different individual blocks( for example for cell 2 and cell 10) are the status outputs of these two block will be same or different? Lets say we start to balance cell 2 and 10, then a CRC error pop out in cell 2 while there is not any problem in cell 10 balance. Are we going to observe status as 5 for both of these blocks or the status output will be 5 for cell 2 and 0 for cell 10.

I hope that the points that I need help are clear.

Thanks in advance.

0 Kudos
5 Replies

75 Views
Contributor I

Thanks for the information 

0 Kudos

141 Views
Contributor I

Hi @Phil_Perruchoud 

I am bit confused here. I thought resistor is added to the board. Can you confirm if we need to connect an external resistor between the cell and board?

0 Kudos

131 Views
NXP Employee
NXP Employee

Hello @parveez,

You're correct, in the FRDM33771BSPIEVB board, the cell balance resistors are connected to the IC CB pins. The value is 39 Ohm.

So, you just have to connect the cells to the board and the activatiion the CB switches inside the IC for a particular cell will turn on the cell balancing operation for this cell through its external resistor.

The detailed schematics of the EVB can be downloaded from nxp.com on the FRDM33771BSPIEVB webpage:

https://www.nxp.com/products/power-management/battery-management/battery-cell-controllers/evaluation...

Regarding your question on algorithm for CB, it will greatly depend on the cell chemistry and the amount of computing power that you are willing to put into it. But basically your BMS solftware should be able to determine the SOC for each of the cells based on their accurate cell voltage measurement over time. Based on this SOC estimation, your algorithm should be able to determine the amount of charge (or current over time) to be removed from each cells so that they all align to the least charged cell. This eventually translates into a cell balancing time that you can program inside the IC to get each cell to the desired amount of charge.

Best regards,

Philippe

0 Kudos

239 Views
Contributor III

Hi @Phil_Perruchoud ,

First of all thanks a lot for the detailed answer and your effort, I learned a lot appreciated.

I forgot to mention in my question but I am using FRDM33771BSPIEVB board with MC33772. My intention was asked these questions based on this board but I only mentioned the BCC IC sorry for that. Could you please add specific information regarding FRDM33771BSPIEVB board to your answers? Especially balancing current and resistor values important for me. 

Please correct me if I am wrong, but I understand that there are fixed CB resistors and the balancing current is simply equal to (Cell Voltage)/(CB Resistor) and the current decreases slightly as the voltage level of the cell decreases. We can control the CB by turning on and off the resistor via a switch (Mosfet) but we can only set time and enable/disable CB but can not control the current (except HW updates or PWM)? 

Also could you please share more detail about two main algorithm options for CB? How we can calculate the required amount of time that CB should be activated for each cells? It will be great if you could provide an example with cell voltage levels (for example Cell1:3700 mV, Cell2:3600 mV, Cell3: 3650 mV) what will be the balancing current for these cells and what should be the time for these cells?

In last question, I meant the status output of balancing blocks in mbdt. As you know each balance block has a status output (I insert a ss for the block) and there are explanations for faults in help section. What I want to learn is that if we insert two of these blocks for two different cells will their status output will be different or should I check FAULTH 2 register for balancing faults.

Thanks in advance.

0 Kudos

254 Views
NXP Employee
NXP Employee

Hello @oeren5 ,

  • What will be the balancing current? Is it the max balance current (300mA) that stated in the manual?
    • The balancing current depends mainly on the external resistor and the cell voltage (I=U/R). The MC33771 (BCC) is only opening or closing a switch (around 0.5 Ohm typ.). The 300 mA max cell balancing current comes from the limitation of the IC itself, due to maximum power dissipation on the IC package when all the 14 channels are doing cell balancing simultaneously. Of course, there is also another power dissipation at PCB level when all the CB resistors are on which can lead to close to 20W...
  • Is the balancing current will be constant through the balancing? To be more clear, the balance current is constant and lets say it is 100 mA. Whenever we enable a balancing block this current flow though either all cells or certain cell (in case of individual setting) until the balancing block is disabled. Is this scenario true or are there any other details? 
    • Cell balancing can be controlled individually for all cells. Since each cell has its own switch in series with the CB resistor, they are fully independent and the discharge current will only depend on the cell voltage (provided all the CB resistors are the same). Note that the IC is not controlling the CB current which is set only by the resistor value and cell voltage. So typically, during the cell balancing operation, the current may drop a little as the cell voltage goes down. There typically two main algorithm options: the first one is for the MCU to calculate the amount of time that CB should be activated for each cells - this timing is send to the BCC which will turn-on CB and then turn it off automatically once the timing set for each cell it complete. During the whole CB operation, the MCU can be turned-off. The second option will require more MCU management: the MCU will continuously measure the cell voltage and turn-off the CB when the desired cell voltage is met. Note that cell measurement is not recommended during CB operation due to inaccuracies coming from the wiring parasitic resistance. A CB pause of a few ms is needed before performing an accurate cell voltage measurement.
  • Is there any way to control the balancing current?
    • Except by HW design with the CB resistor choice, PWM would also be an option, but probably demanding too much MCU micro-management.
  • What is the resistance value of the balancing resistors? And if the current is constant the voltage drop will be constant between enabling and disabling the block?
    • The value of the external resistor will depend on the CB current that you need. For example if you need a 100mA max when the cell voltage is max at 4.2V, you will end up with a 42 Ohm resistor.
  • When we enable two different individual blocks( for example for cell 2 and cell 10) are the status outputs of these two block will be same or different? Lets say we start to balance cell 2 and 10, then a CRC error pop out in cell 2 while there is not any problem in cell 10 balance. Are we going to observe status as 5 for both of these blocks or the status output will be 5 for cell 2 and 0 for cell 10.
    • I am not sure what you mean by “status as 5”. Typically CRC will detect if there is communication error between the MCU and the BCC and this has nothing to do with cell balancing status. Now, the IC is able to detect an open or a short situation for cell balancing pins. If at least one the 14 cells has a short or an open issue, then the FAULT2 register will have one flag raised. Reading dedicated registers CB_OPEN_FLT or CB_SHORT_FLT will allow the user to know which of the cells has the CB issue.

I hope this answers the question that you had.

Best regards,

Philippe