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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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

2,661 次查看
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,631 次查看
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

May I ask which chip you are using?

BR

Harry

0 项奖励
回复

2,620 次查看
yvan_yan
Contributor III

Hi @Harry_Zhang 

MCXN947

标记 (1)
0 项奖励
回复

2,600 次查看
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,588 次查看
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,545 次查看
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

Sure, the correct wave form is

Harry_Zhang_0-1739412770055.png

BR

Harry

0 项奖励
回复

2,412 次查看
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,366 次查看
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,335 次查看
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,315 次查看
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,310 次查看
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,285 次查看
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,291 次查看
yvan_yan
Contributor III

BTW, can you share the document your picture shows?

we find your spec is more detailed than ours.

0 项奖励
回复

2,357 次查看
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 项奖励
回复