cancel
Showing results for 
Search instead for 
Did you mean: 

stm32H503RB Determination of I3C IBI payload size

Hexu
Associate II

Hi,

I am using the nucleo-H503RB I3C (Controller mode) with this example to connect to an I3C standard chip. The sensor transmits IBI with 5 bits of payload but I noticed that the STM32 receives only 4 bits, and then it stops receiving the fifth bit.

Is there any method I can define the receive IBI payload size on the controller side? Any kind of help is appreciated. 🙂

 

1 ACCEPTED SOLUTION

Accepted Solutions

The maximum IBI payload data is 4 bytes.

I3C maximum read length register (I3C_MAXRLR) : 
IBIP[2:0]: IBI payload data maximum size, in bytes (when I3C acts as target)
000: null payload data size (only allowed when BCR2 = 0 in the IC3_BCR register)
001: 1 byte (mandatory data byte MDB[7:0]
010: 2 bytes (including first MDB[7:0])
011: 3 bytes (including first MDB[7:0])
100: 4 bytes (including first MDB[7:0])
others: same as 100

Foued

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

3 REPLIES 3
Foued_KH
ST Employee

Hello @Hexu , 

The maximum (static) payload data size is given by IBIP[2:0] in the I3C_MAXRLR register. it can be 1, 2, 3 or 4 bytes.

Br,
Foued

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hexu
Associate II

Hi @Foued_KH 

Thanks for your kind reply, please forgive me that I am a beginner using the STM series. Just want to ask a dumb question: How can I modify I3C_MAXRLR register? I tried to modify those definitions and I still received 4 bytes of IBI payload.

Hexu_0-1712137063613.png

 

The maximum IBI payload data is 4 bytes.

I3C maximum read length register (I3C_MAXRLR) : 
IBIP[2:0]: IBI payload data maximum size, in bytes (when I3C acts as target)
000: null payload data size (only allowed when BCR2 = 0 in the IC3_BCR register)
001: 1 byte (mandatory data byte MDB[7:0]
010: 2 bytes (including first MDB[7:0])
011: 3 bytes (including first MDB[7:0])
100: 4 bytes (including first MDB[7:0])
others: same as 100

Foued

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.