Issue of MC3377XB_BALANCING_MBDT_BLOCK

cancel
Showing results for 
Search instead for 
Did you mean: 

Issue of MC3377XB_BALANCING_MBDT_BLOCK

Jump to solution
170 Views
NPXLONG
Contributor III

Dear @mariuslucianand 

I have a question regarding the balancing blockset from the Simulink MBDT. I am currently testing to enable the balancing features for the actual 14 battery cell setup using MC33771TPL.

I can monitor the 14 cells using daisy chain configuration. Note that, I was replacing the actual 14- battery cells instead of 14 battery emulator.

I am intentionally to replace the "Cellvoltage[7]" and "Cellvoltage[8]" to be a low voltage cell at (3.99V) and let another 12 cell to be high voltage around 4.06. In order to further investigate whether the balancing blocksets can perform the balancing function or not.

NPXLONG_0-1613792543786.png

NPXLONG_0-1613801912348.png

 

The first method that I tried to configure is using the BC set individual MBDT block. I was using the Freemaster to check whether the configure status of PTD16 LED GREEN is ON and CB_ONOFF= 0. which the BCC status -  no error and configure properly.  NPXLONG_0-1613793022633.png

 

Second method, I was trying to use MC3377XB Cell balancing MBDT and selected the CB:"enable". However, config result showed CB_ONOFFMAIN = 0 and no error which supposed to be working. But I tested the FRDM33771TPL EVK for more than 5 or 8 hours+, all the battery cell still cannot be performed the cell balancing. So far, only BC set individual can working properly. I was wondering what's the setting can be

 

NPXLONG_3-1613792654673.png

I am curious that if I have 14 cells setup. Do I need to place the multiple 14 set of BC individual MBDT set to balance 14 cells? How was the timer settings, are they allow trigger at the same times?

Can you provide a support for this question? Thanks Marius.

1 Solution
94 Views
mariuslucianand
NXP Employee
NXP Employee

Hello @NPXLONG,

MBDT provides three blocks related to the Cell Balancing process. I will try to explain their functionality based on which bits are set or cleared inside the MC3377xB peripheral. A good idea would be to get the full datasheet you can find here MC33771B Full DataSheet 

  1. MC3377xB_CB_Disable_Enable simply sets or clears the CB_DRVEN bit from the SYS_CFG register. In order to balance any of the cells, this bit must be 1. Basically, when you send a balancing command for one cell, the driver will look at this bit CB_DRVEN, and if it is set on 1, it proceeds to the balancing act.
  2. MC3377xB_CB_Set_Individual populates the CBx_CFG register. It sets the CBx_EN bit with the Enable/Disable entry and sets the timer in minutes (If you set the timer to 3, it will keep the balancing activated for 3 minutes, 0 for 30 seconds). As an action, this only turns on the MOSFET connected to the balancing resistor, connecting the balancing resistor to the cell. Now, in terms of the balancing logic approach, there are two methods that you can use in your algorithm:
    1. You know the value of the balancing Resistor in your application, the current cell voltage and the desired cell voltage. So your BMS algorithm can compute the timer value for each cell, based on the mentioned values, that would take to get to the desired voltage. After the timer has elapsed, the measurements can be performed.
    2. You set the timers for a small amount of time and measure the new cell values after each time until you get to the desired voltage.
  3. MC3366xB_CB_Pause This block handles the CB_MANUAL_PAUSE bit from the SYS_CFG1. Basically using this block, you can pause the balancing while you measure the cells voltages. It is not recommended to measure cells while the balancing is active.

For pausing the balancing switches when a measurement is performed, there is a second option: CB_AUTO_PAUSE. This will automatically pause the balancing switches when a measurement is performed. This option is already enabled in the MBDT configuration.

Last but not least, I would like to explain a bit how to change the initial configuration that is sent during the initialization to the BCC. This configuration enables the  CB_AUTO_PAUSE bit of the MC33771B. Even if this default configuration is not visible in the BCC Config block, you can change it to the one that suits your application. For that, you have to edit the file bcc_initial_configuration.h available on the  mbdtbx_s32k\src\BCC_SDK_SW\SDK_SW_Driver\bcc_s32k location. This file is copied every time you press the code generation button so you need to change it only once. (Please backup this file first!). If you want to disable the CB_AUTO_PAUSE, simply replace it with BCC_CB_AUTO_PAUSE_DISABLED.

mariuslucianand_0-1613985269302.jpeg

Hope this helps,

Marius

 

View solution in original post

5 Replies
95 Views
mariuslucianand
NXP Employee
NXP Employee

Hello @NPXLONG,

MBDT provides three blocks related to the Cell Balancing process. I will try to explain their functionality based on which bits are set or cleared inside the MC3377xB peripheral. A good idea would be to get the full datasheet you can find here MC33771B Full DataSheet 

  1. MC3377xB_CB_Disable_Enable simply sets or clears the CB_DRVEN bit from the SYS_CFG register. In order to balance any of the cells, this bit must be 1. Basically, when you send a balancing command for one cell, the driver will look at this bit CB_DRVEN, and if it is set on 1, it proceeds to the balancing act.
  2. MC3377xB_CB_Set_Individual populates the CBx_CFG register. It sets the CBx_EN bit with the Enable/Disable entry and sets the timer in minutes (If you set the timer to 3, it will keep the balancing activated for 3 minutes, 0 for 30 seconds). As an action, this only turns on the MOSFET connected to the balancing resistor, connecting the balancing resistor to the cell. Now, in terms of the balancing logic approach, there are two methods that you can use in your algorithm:
    1. You know the value of the balancing Resistor in your application, the current cell voltage and the desired cell voltage. So your BMS algorithm can compute the timer value for each cell, based on the mentioned values, that would take to get to the desired voltage. After the timer has elapsed, the measurements can be performed.
    2. You set the timers for a small amount of time and measure the new cell values after each time until you get to the desired voltage.
  3. MC3366xB_CB_Pause This block handles the CB_MANUAL_PAUSE bit from the SYS_CFG1. Basically using this block, you can pause the balancing while you measure the cells voltages. It is not recommended to measure cells while the balancing is active.

For pausing the balancing switches when a measurement is performed, there is a second option: CB_AUTO_PAUSE. This will automatically pause the balancing switches when a measurement is performed. This option is already enabled in the MBDT configuration.

Last but not least, I would like to explain a bit how to change the initial configuration that is sent during the initialization to the BCC. This configuration enables the  CB_AUTO_PAUSE bit of the MC33771B. Even if this default configuration is not visible in the BCC Config block, you can change it to the one that suits your application. For that, you have to edit the file bcc_initial_configuration.h available on the  mbdtbx_s32k\src\BCC_SDK_SW\SDK_SW_Driver\bcc_s32k location. This file is copied every time you press the code generation button so you need to change it only once. (Please backup this file first!). If you want to disable the CB_AUTO_PAUSE, simply replace it with BCC_CB_AUTO_PAUSE_DISABLED.

mariuslucianand_0-1613985269302.jpeg

Hope this helps,

Marius

 

View solution in original post

67 Views
NPXLONG
Contributor III

Hi Marius,

Thanks for your details explanation and providing the good approach how to enhance the BMS during the balancing and monitoring the cell performances. 

1. Yes, now I understand the BC individual set is based on the switch on/off action to ensure the desired balancing voltage is satisfied. I have a concept in my mind now. Thanks for this advise.

2. I would like to double confirm regarding the timer. If the timer set "0" and the enable is set "true". so the balancing switch is activated for 30 sec. However, if the enable still hold on "true" state so that the next cycle will keep on running for 30sec? Unless, I set the disable to false state then the balancing switch only will be deactivated after 30 sec right? just want to confirm this statement

3. The initialization of the BCC configuration, I will need to try it out after I done the above testing and will come back to you again if I have any question.

Thanks for your great support. Marius.

0 Kudos
116 Views
NPXLONG
Contributor III

Hi Marius,

1. Update some of the progress. I tried the BC set individual can make the particular cell to follow the lower value of cell voltage. so BC blockset working properly as expected. But this blockset cannot control the balancing set point which may caused the particular set cell voltage over drop.
I saw there's a MBDT blockset called "Balancing pause/unpause", I was thinking that the pause/unpause action is required using an additional custom code with condition loop to decide the balancing action. In this case, I need to calculate the delta cellvoltage and trigger them when the balancing voltage reach the set point then only active the "balancing pause" MBDT.

2. I have a question regarding the timer set for the BC individual blockset. "Zero value" represent the 30 seconds. May you explain more in details how does this timer works or are they enable after 30 seconds to balance or any other meaning of that 

Thanks.

Regards,

0 Kudos
92 Views
mariuslucianand
NXP Employee
NXP Employee

Hello @NPXLONG ,

Let's take them point by point:

1. The balancing process is not performed automatically by the MC33771B. You can only turn the switches on or off. Only your algorithm decides when to open the switches. Typically you set a time for which the switches to be on. I've explained in the previous response. The balancing pause/unpause will only suspend the switches states while you perform a voltage measurement. But the timer set on each cell is still running. It is not recommended to perform any cell measurement when cell balancing switches
are activated.

2.I think I've already explained that in my previous response. By balancing for 30 seconds, the cell is connected to the balancing resistor, which on the EVB is 39Ohms, for 30 seconds.

Hope this helps,

Marius

0 Kudos
66 Views
NPXLONG
Contributor III

Hi Marius,

Thanks for your details explanation and providing the good approach how to enhance the BMS during the balancing and monitoring the cell performances. 

1. Yes, now I understand the BC individual set is based on the switch on/off action to ensure the desired balancing voltage is satisfied. I have a concept in my mind now. Thanks for this advise.

2. I would like to double confirm regarding the timer. If the timer set "0" and the enable is set "true". so the balancing switch is activated for 30 sec. However, if the enable still hold on "true" state so that the next cycle will keep on running for 30sec? Unless, I set the disable to false state then the balancing switch only will be deactivated after 30 sec right? just want to confirm this statement

3. The initialization of the BCC configuration, I will need to try it out after I done the above testing and will come back to you again if I have any question.

Thanks for your great support. Marius.

0 Kudos