cancel
Showing results for 
Search instead for 
Did you mean: 

Pending a transfer on an I3C controller and target to happen after an IBI

Dave_H
Associate

I am using two STM32H503 boards.  One is programmed as an I3C controller, the other as an I3C target.  My goal is to have the target send an IBI on the bus and the controller will receive the IBI and then immediately issue a pended read -- there will be no stop condition on the bus after receipt of the MDB of the IBI, the controller will issue a repeated start and then perform the read.  The target will issue the IBI and then be ready to immediately respond with the data to transmit.  So, I'm assuming I will need to pend the write on the target before issuing the IBI.

I am looking at the controller diagram for IBI on figure 670 on page 2175 of RM0481 Rev 2.  There is the following note with 2 asterisks :

Repeated start (Sr) if there is a pending transfer to execute and if I3C_DEVRi.SUSP = 0, else stop (P) in push-pull

 

Is there any information or example on how to pend an I3C read to happen immediately after the IBI with no stop -- just a restart?

 

Also, on the target side I will need to pend a write transfer to happen when the controller goes to read the data after the IBI.

I tried calling LL_I3C_ControllerHandleMessage() on the controller to write the control register to pend the read, but the read happened on the bus as soon as the control register was written.

2 REPLIES 2
Joe WILLIAMS
ST Employee

Hi Dave_H

 

This post has been escalated to the ST Online Support Team for additional assistance.  We'll contact you directly.

 

Regards

Joe

STMicro Support

JRAUL.1
ST Employee

Hello

If my understanding is correct, you need to send some additional data link to your IBI.
If it is correct, to manage that point you can use the example I3C_Target_InBandInterrupt_IT, which demonstrate the usage of the IBI with additional sent during the IBI communication.

In this example the addional data is the content of ubPayloadBuffer, with only one byte, but you can increase it to 4  bytes supported on STM32H5 products.

Keep in touch if it not answer to your needs

Regards