How can I get IBI (In-Band Interrupt requests) with payload

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How can I get IBI (In-Band Interrupt requests) with payload

2,655件の閲覧回数
yvan_yan
Contributor III

Hi

How can I config if we want get ibi mandatory Data + payload in master.

At present, the master can get the ibi interrupt, but mandatory Data seems recognized as another ibi slave address by master.

I can't find any case in example code, could you help me?

 

Thanks.

タグ(1)
0 件の賞賛
返信
13 返答(返信)

2,625件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

May I ask which chip you are using?

BR

Harry

0 件の賞賛
返信

2,614件の閲覧回数
yvan_yan
Contributor III

Hi @Harry_Zhang 

MCXN947

タグ(1)
0 件の賞賛
返信

2,594件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

You can refer to the i3c_interrupt_b2b_transfer demo.

 

Snipaste_2025-02-10_15-07-29.png

Master:

Snipaste_2025-02-10_15-09-00.png

Slave:

 

Snipaste_2025-02-10_15-10-15.png

BR

Harry

 

0 件の賞賛
返信

2,582件の閲覧回数
yvan_yan
Contributor III

Hi @Harry_Zhang 

We refer to i3c_interrupt_b2b_transfer_master, slave use our own device.

ibiHasPayload is already true, but payload still recognized as ibi address.

Could you show me the correct wave form?

タグ(1)
0 件の賞賛
返信

2,539件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

Sure, the correct wave form is

Harry_Zhang_0-1739412770055.png

BR

Harry

0 件の賞賛
返信

2,406件の閲覧回数
yvan_yan
Contributor III

Hi @Harry_Zhang 

Our waveform is as follows, md byte is address clock.

I notice MIBIRULES register is 0x40000036, seems correct.

Is there anything else I should be aware of?

yvan_yan_1-1739846165234.png

 

BR

0 件の賞賛
返信

2,360件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

"I notice MIBIRULES register is 0x40000036, seems correct."

I have reviewed the definition of the MIBIRULES register.

 
 

Snipaste_2025-02-20_11-37-46.png

If you want to ibi with payload. this bit should be set to 0.

But your 0x40000036 register is set to 1.

BR

Harry

 

0 件の賞賛
返信

2,329件の閲覧回数
yvan_yan
Contributor III
 

Hi @Harry_Zhang 

At present, slave sends 10 bytes payload, but master can only get 8 bytes.

How can I config if we want to get more than 8 bytes in master? 

By the way, I can't upload picture, It says "Image upload failed. Try uploading a different image or from some other source."

 

BR

 

 

 

 

 

 

0 件の賞賛
返信

2,309件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

 

I3C target supports up to seven bytes of Extended IBI Data following a Mandatory Data byte.

Snipaste_2025-02-21_10-08-40.png

May I ask why you did not receive the correct payload before?

BR

Harry

 

0 件の賞賛
返信

2,304件の閲覧回数
yvan_yan
Contributor III

Hi @Harry_Zhang 

I3C target means I3C slave? Slave limits 8 bytes outputs, but we use our own slave, It can up more than 8 bytes.

1. Can I3C master receive more than 8 bytes? 

We notice master has fifo buffer, If can, how can we config?

2. The reason we can't receive the correct payload is we add debug code in ibi callback. It may cause time delay.

BR

タグ(1)
0 件の賞賛
返信

2,279件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

About the IBI Payload, there are only two register (Extended IBI Data 1 (IBIEXT1) and Extended IBI Data 2 (IBIEXT2) registers.) to store the Payload Byte, not fifo.

I am referring to LPC553x Reference Manual.

You can  refer to the Chapter 42.

BR

Harry

0 件の賞賛
返信

2,285件の閲覧回数
yvan_yan
Contributor III

BTW, can you share the document your picture shows?

we find your spec is more detailed than ours.

0 件の賞賛
返信

2,351件の閲覧回数
yvan_yan
Contributor III

Hi @Harry_Zhang 

The definition of the MIBIRULES register is from bit0 to bit31.

Bit31 of 0x40000036 is 0. If it sets to 1, the value seems 0xc0000036.

 

BR

0 件の賞賛
返信