cancel
Showing results for 
Search instead for 
Did you mean: 

AN5879 (I3C) for NUCLEO-H563ZI and XNUCLEO-IKS4A1

DanLumi
Associate

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.

0 REPLIES 0