cancel
Showing results for 
Search instead for 
Did you mean: 

I3C:direct RSTACT not working as expected

HalloWelt
Visitor

Setup: NUCLEO-H503RB with X-NUCLEO-IKS4A1, using STM32CubeIDE.

To familiarize myself with I3C, I am playing around in this setup and have some source code which causes I3C interaction between the controller (Nucleo board) and two targets (daughter board). I have a logic analyzer attached.

What I cannot get to work is the "direct RSTACT", i.e. configuring one of the two targets to reset itself. After everything has come up, I expect the targets' default reset action to be "1", i.e. I3C peripheral reset. After successful dynamic address assignment to both targets, I send a direct RSTACT (CCC 0x9A) to one target, configuring the reset action to be "0" (no reset), followed by the reset pattern. I would expect the other target to lose its dynamically assigned address and respond to a subsequent ENTDAA. But no one responds.

Note that in my screenshots, the decoder is set to I2C rather than I3C (not supported) but it's still helpful.

Tell target with dynamic address 70 to not reset when the pattern comes, followed by the pattern:

HalloWelt_0-1747216563898.png

Next ENTDAA - no one responds.

HalloWelt_1-1747216662128.png

 

Absolutely identical behavior when I set the defining byte to "1" rather than "0".

 

Now I change the code to tell target 70 to perform a full chip reset, i.e. defining byte is "2":

HalloWelt_2-1747217051642.png

Strangely, both targets have now lost their address and respond to ENTDAA:

HalloWelt_3-1747217098762.png

(The I2C decoding is confusing here, but you get the point - I get two 64bit responses to ENTDAA.)

 

What am I doing wrong?

1 REPLY 1
Billy OWEN
ST Employee

Hi @HalloWelt 

 

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

 

Regards,

Billy