s32k358+MC33774 auto pause issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

s32k358+MC33774 auto pause issue

Jump to solution
1,083 Views
BillWen
Contributor III

Hi :

My platform is S32k358 with MC33774

Project : NXP HVBMS_RD_800V_Bring_up_Example_1_0_2

In the project cmu code, as following function:

HVBMS_Errors Cmu_StartMeas(Bcc_774a_MsrChainType MeasChain, Bcc_774a_MsrMeasurementType MeasType)
{
Std_ReturnType Status = E_OK;
    Bcc_774a_MsrBalPauseType BalPause;
    Bcc_774a_MsrSetModeParamsType SetModeParams;
    BalPause.BalancingPauseTimer = 0;
    BalPause.BalancingAutopauseEn = FALSE;
    SetModeParams.PauseBalancing = FALSE;
    SetModeParams.OpenLoadNum = MC33774_PRMM_APP_CTRL_VCOLNUM_DISABLED_ENUM_VAL;
    uint8 BCC_Device_Addr = 1;
 
/* Start primary measurements */
if(isCmuChainBroken == true)
{
Status |= Bcc_774a_SetMADD(BCC_CHAIN_ADDR,BCC_BROADCAST,true);
Status |= Bcc_774a_MSR_StartMeasurements(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasChain, BalPause, &BmsTDCfg_Tpl3);
Status |= Bcc_774a_SetMADD(BCC_CHAIN_ADDR,BCC_BROADCAST,false);
Status |= Bcc_774a_MSR_StartMeasurements(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasChain, BalPause, &BmsTDCfg_Tpl3);
}
else
{
Status |= Bcc_774a_MSR_StartMeasurements(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasChain, BalPause, &BmsTDCfg_Tpl3);
}
 
if(MeasType == BCC_774A_MSR_TYPE_APPLICATION)
{
if(isCmuChainBroken == true)
{
Status |= Bcc_774a_SetMADD(BCC_CHAIN_ADDR,BCC_BROADCAST,true);
Status |= Bcc_774a_MSR_SetMode(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasType, &SetModeParams, &BmsTDCfg_Tpl3);
 
/* Wait 4ms for measurements to be completed */
    Status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_Tpl3, PHY_TIMER, 4000);
Status |= Bcc_774a_MSR_SetMode(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasType, &SetModeParams, &BmsTDCfg_Tpl3);
 
Status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_Tpl3, PHY_TIMER, 300);
 
/* Insert for the 300 us delay */
    Status |= Bcc_774a_COM_InsertNop(BCC_CHAIN_ADDR, BCC_BROADCAST, &BmsTDCfg_Tpl3);
 
    Status |= Bcc_774a_SetMADD(BCC_CHAIN_ADDR,BCC_BROADCAST,false);
 
Status |= Bcc_774a_MSR_SetMode(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasType, &SetModeParams, &BmsTDCfg_Tpl3);
 
/* Wait 4ms for measurements to be completed */
    Status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_Tpl3, PHY_TIMER, 4000);
 
Status |= Bcc_774a_MSR_SetMode(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasType, &SetModeParams, &BmsTDCfg_Tpl3);
 
Status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_Tpl3, PHY_TIMER, 300);
 
/* Insert for the 300 us delay*/
    Status |= Bcc_774a_COM_InsertNop(BCC_CHAIN_ADDR, BCC_BROADCAST, &BmsTDCfg_Tpl3);
 
}
else
{
Status |= Bcc_774a_MSR_SetMode(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasType, &SetModeParams, &BmsTDCfg_Tpl3);
 
/* Wait 4ms for measurements to be completed */
Status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_Tpl3, PHY_TIMER, 4000);
 
Status |= Bcc_774a_MSR_SetMode(BCC_CHAIN_ADDR, BCC_BROADCAST, MeasType, &SetModeParams, &BmsTDCfg_Tpl3);
 
Status |= Bms_TD_InsertPhyEvent(&BmsTDCfg_Tpl3, PHY_TIMER, 300);
/* Insert for the 300 us delay */
Status |= Bcc_774a_COM_InsertNop(BCC_CHAIN_ADDR, BCC_BROADCAST, &BmsTDCfg_Tpl3);
}
 
}
else if(MeasType == BCC_774A_MSR_TYPE_SYNCHRONOUS)
{
// Reserved for further development
}
else
{
// Avoid MISRA errors
}
 
/* Call Bcc_774a_Send */
Status |= Bms_TD_Send(&BmsTDCfg_Tpl3, &PhyError);
if(Status != E_OK)
{
return ERROR_CMU_START_MEASUREMENT_TD_FILL;
}
 
/* Wait until PHY processes the request */
Td_Wait(&BmsTDCfg_Tpl3);
    if(PhyError != PHY_NO_ERROR)
    {
    return ERROR_CMU_START_MEASUREMENT_TD_SEND;
    }
/* Clear TD after completion */
Status = Bms_TD_Clear(&BmsTDCfg_Tpl3);
 
return NO_ERROR;
}
 
I want to open auto pause function, but after I open it, when start CB and I still get wrong cell voltage. Is there any idea about this?
 
Thanks
BR, BillWen
0 Kudos
Reply
1 Solution
1,030 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi,

I believe this has already been discussed with your colleague Mark and solved in this thread: https://community.nxp.com/t5/Power-Management/MC33774A-Pause-balancing-feature/td-p/2074950

BRs, Tomas

View solution in original post

0 Kudos
Reply
2 Replies
1,031 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi,

I believe this has already been discussed with your colleague Mark and solved in this thread: https://community.nxp.com/t5/Power-Management/MC33774A-Pause-balancing-feature/td-p/2074950

BRs, Tomas

0 Kudos
Reply
959 Views
BillWen
Contributor III
HI Tomas:
Of course I know, I also discuss with him.
But I can't fix this issue by his way, that why I want to know is there any idea or suggestion. I also want to know is this function work on this "NXP HVBMS_RD_800V_Bring_up_Example_1_0_2" project?
Because we use different mcu and different measure flow by 33774A.

Thanks
BR, BillWen
0 Kudos
Reply