cancel
Showing results for 
Search instead for 
Did you mean: 

How to execute ENTDAA multiple times

dai82s
Associate II

When executing RSTDAA and ENTDAA once, it succeeds, but when executed more than twice, it does not work properly. Since RSTDAA is being performed, I think there should be no problem, but is it not possible to execute it more than twice?

//1st rstdaa+entdaa

/* Assign dynamic address processus */
if (HAL_I3C_Ctrl_DynAddrAssign_IT(&hi3c1,I3C_RSTDAA_THEN_ENTDAA

) != HAL_OK)
{
/* Error_Handler() function is called when error occurs. */
Error_Handler();
}

// This function is succeed


while (HAL_I3C_GetState(&hi3c1) != HAL_I3C_STATE_READY)
{
}

// This function is succeed

 

//2nd rstdaa +entdaa

/* Assign dynamic address processus */
if (HAL_I3C_Ctrl_DynAddrAssign_IT(&hi3c1,I3C_RSTDAA_THEN_ENTDAA

) != HAL_OK)
{
/* Error_Handler() function is called when error occurs. */
Error_Handler();
}

// This function is succeed

while (HAL_I3C_GetState(&hi3c1) != HAL_I3C_STATE_READY)
{
}

// This function is Failed

0 REPLIES 0