2025-03-04 4:48 PM - edited 2025-03-04 4:50 PM
Hello ST Team,
I'm trying to bring up I3C using a NUCLEO-H563ZI with XNUCLEO-IKS4A1 to boards stress I3C, and I'm using AN5879, which was thought for NUCLEO-H503RB and X-NUCLEO-IKS01A3 boards.
Regardless of the above, I still believe we should be able to work with these boards as they are I3C compatible, and the XNUCLEO-IKS4A1 is marked as the new alternative for the X-NUCLEO-IKS01A3 board.
I'm following AN5879 to introduce myself to I3C (and the entire STM32CubeIDE ecosystem), and I have found issues adding the extra code stated on page 31 (software settings for dynamic addressing).
Where precisely should these lines be introduced? For the four code blocks, I can identify the second and the fourth ones belonging to the main.c file. What about the first and third blocks? For the first, it seems I should create a new header file stm32_i3c_desc_target1.h, but even when creating this file and adding a reference in main.h the compiler struggles to find "TargetDesc_Typedef". My best guess is to include the third block at the last part of the MX_I3C1_Init function described in main.c.
Returning to the fourth block:
void HAL_I3C_TgtReqDynamicAddrCallback(I3C_HandleTypeDef *hi3c, uint64_t targetPayload)
{
TargetDesc1.TARGET_BCR_DCR_PID = targetPayload;
HAL_I3C_Ctrl_SetDynAddr(hi3c, TargetDesc1.DYNAMIC_ADDR);
}
void HAL_I3C_CtrlDAACpltCallback(I3C_HandleTypeDef *hi3c)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
}
Could you please give me a hand checking if this GPIO reference to pin 5 and GPIOA is still valid for the NUCLEO-H563ZI board?
Thank you, D.