MCXN947 I3C IBI payload issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCXN947 I3C IBI payload issue

1,922 Views
JackieZhu
Contributor I

Hi,

I met a few issues about I3C receive IBI payload issue. Hope you can help. Appreciate.

When I used NXP974 as I3C master, how many payload data include MDB can we received? In my test, it seems the maximum is 8 bytes. (one MDB and seven payload data). But from the spec, it indicates that support 9 bytes include MDB. Can you help to confirm?

Spec : The controller automatically stops IBI data after 9 bytes (including the mandatory data byte).

 

Another issue I met is when I set the payload to 8 bytes, I do received the 8 bytes from fifo but it will enter IBI again and caused system stuck even if we didn't send new IBI from i3c target. When the payload size is less than 8 bytes, it works well. 

I checked the RX FIFO count from SDATACTRL, it is 8. I think it is correct. And the status of irq seems correct, it is same as normal case (0x2e00). So I guess it is correct too.

Then, I tried to capture the waveform by LA. I found some different between correct and incorrect case. 

In normal case (payload < 7) the whole clock period of last T-bit is low, then generate a Stop. 

In the wrong case, the SDA will be high in the rising edge of the T-bit clock. Then, resend clock (open-drain).

Do you know what happened on the NXP? Why there are different behaviors when the payload size is different? 

 

 

Labels (1)
Tags (1)
0 Kudos
Reply
2 Replies

1,200 Views
martingcavallo
Contributor III
Hi Jackie!

We have also faced this problem in the past and reported it to NXP. We got the confirmation that this is a bug in the NXP I3C IP block. The IBI Payload Length cannot be greater than 8 bytes, and additionally, the I3C Target SHALL use the T-Bit to indicate the End Of Data (T-Bit LOW) in the last byte. The I3C IP Block, when acting as the controller, cannot emit the STOP condition if the T-Bit is HIGH.
0 Kudos
Reply

1,797 Views
Harry_Zhang
NXP Employee
NXP Employee

Hi @JackieZhu 

Yes, you are right. I3C target supports up to seven bytes of Extended IBI Data following a Mandatory Data byte.

Harry_Zhang_0-1742541579662.png

So  include MDB, the maximum is 8 bytes. (one MDB and seven payload data).

BR

Harry

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2056231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMCXN947%20I3C%20IBI%20payload%20issue%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2056231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3EI%20met%20a%20few%20issues%20about%20I3C%20receive%20IBI%20payload%20issue.%20Hope%20you%20can%20help.%20Appreciate.%3C%2FP%3E%3CP%3EWhen%20I%20used%20NXP974%20as%20I3C%20master%2C%20how%20many%20payload%20data%20include%20MDB%20can%20we%20received%3F%20In%20my%20test%2C%20it%20seems%20the%20maximum%20is%208%20bytes.%20(one%20MDB%20and%20seven%20payload%20data).%20But%20from%20the%20spec%2C%20it%20indicates%20that%20support%209%20bytes%20include%20MDB.%20Can%20you%20help%20to%20confirm%3F%3C%2FP%3E%3CP%3ESpec%20%3A%26nbsp%3BThe%20controller%20automatically%20stops%20IBI%20data%20after%209%20bytes%20(including%20the%20mandatory%20data%20byte).%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EAnother%20issue%20I%20met%20is%20when%20I%20set%20the%20payload%20to%208%20bytes%2C%20I%20do%20received%20the%208%20bytes%20from%20fifo%20but%20it%20will%20enter%20IBI%20again%20and%20caused%20system%20stuck%20even%20if%20we%20didn't%20send%20new%20IBI%20from%20i3c%20target.%20When%20the%20payload%20size%20is%20less%20than%208%20bytes%2C%20it%20works%20well.%26nbsp%3B%3C%2FP%3E%3CP%3EI%20checked%20the%20RX%20FIFO%20count%20from%20SDATACTRL%2C%20it%20is%208.%20I%20think%20it%20is%20correct.%20And%20the%20status%20of%20irq%20seems%20correct%2C%20it%20is%20same%20as%20normal%20case%20(0x2e00).%20So%20I%20guess%20it%20is%20correct%20too.%3C%2FP%3E%3CP%3EThen%2C%20I%20tried%20to%20capture%20the%20waveform%20by%20LA.%20I%20found%20some%20different%20between%20correct%20and%20incorrect%20case.%26nbsp%3B%3C%2FP%3E%3CP%3EIn%20normal%20case%20(payload%20%26lt%3B%207)%20the%20whole%20clock%20period%20of%20last%20T-bit%20is%20low%2C%20then%20generate%20a%20Stop.%26nbsp%3B%3C%2FP%3E%3CP%3EIn%20the%20wrong%20case%2C%20the%20SDA%20will%20be%20high%20in%20the%20rising%20edge%20of%20the%20T-bit%20clock.%20Then%2C%20resend%20clock%20(open-drain).%3C%2FP%3E%3CP%3EDo%20you%20know%20what%20happened%20on%20the%20NXP%3F%20Why%20there%20are%20different%20behaviors%20when%20the%20payload%20size%20is%20different%3F%26nbsp%3B%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2056231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EMCXN%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2269284%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCXN947%20I3C%20IBI%20payload%20issue%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2269284%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EHi%20Jackie!%3CBR%20%2F%3E%3CBR%20%2F%3EWe%20have%20also%20faced%20this%20problem%20in%20the%20past%20and%20reported%20it%20to%20NXP.%20We%20got%20the%20confirmation%20that%20this%20is%20a%20bug%20in%20the%20NXP%20I3C%20IP%20block.%20The%20IBI%20Payload%20Length%20cannot%20be%20greater%20than%208%20bytes%2C%20and%20additionally%2C%20the%20I3C%20Target%20SHALL%20use%20the%20T-Bit%20to%20indicate%20the%20End%20Of%20Data%20(T-Bit%20LOW)%20in%20the%20last%20byte.%20The%20I3C%20IP%20Block%2C%20when%20acting%20as%20the%20controller%2C%20cannot%20emit%20the%20STOP%20condition%20if%20the%20T-Bit%20is%20HIGH.%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2066087%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20MCXN947%20I3C%20IBI%20payload%20issue%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2066087%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F247624%22%20target%3D%22_blank%22%3E%40JackieZhu%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EYes%2C%20you%20are%20right.%20I3C%20target%20supports%20up%20to%20seven%20bytes%20of%20Extended%20IBI%20Data%20following%20a%20Mandatory%20Data%20byte.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Harry_Zhang_0-1742541579662.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Harry_Zhang_0-1742541579662.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329210i055232CF13D6FFA8%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Harry_Zhang_0-1742541579662.png%22%20alt%3D%22Harry_Zhang_0-1742541579662.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ESo%26nbsp%3B%26nbsp%3B%3CSPAN%3Einclude%20MDB%2C%26nbsp%3Bthe%20maximum%20is%208%20bytes.%20(one%20MDB%20and%20seven%20payload%20data).%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBR%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EHarry%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E