Skip to main content
Associate II
September 19, 2024
Question

How to execute ENTDAA multiple times

  • September 19, 2024
  • 0 replies
  • 624 views

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