NXP / i3c-slave-design

MIPI I3C Basic v1.0 communication Slave source code in Verilog with BSD license to support use in sensors and other devices.
Other
104 stars 33 forks source link

The function of HJ? thank you very much #31

Open owen-yang0726 opened 3 years ago

owen-yang0726 commented 3 years ago

Hi dear, Does free version of i3c_slave_design provide the function of HJ?

I try to modify the parameter of ENA_IBI_MR_HJ to 5'b01000, ENA_TIMEC to 6'd0(due to we do not have design of time control).

My test flow is set 1'b1 to address of 0x4 for bit[0] SLVENA, then trigger my master VIP write data to slave by I2C protocol with static address.

Next, I try to set 2'b11 to address of 0xc for bit[1:0] EVENT after my master VIP write data finish and pull stop.

But I found the SDR_hold will pull 1'b1 when I set 2'b11 to address of 0xc for bit[1:0] EVENT, and I can't no see slave design try to issue start.

In my point, I think slave determines that the Bus is idle it may request a start by pulling SDA low after I set 2'b11 to address of 0xc for bit[1:0] EVENT and then issue address of 7'h02 to request a DAA process. In the end turn to master VIP to choose ack/nack the slave request?

Can you please tell me what's wrong with my setting flow? Does anything I misunderstanding? or the free version does not support HJ? Attachment as my waveform shown that time 17164ns issue STOP and Time 22760ns set 2'b11 to address of 0xc for bit[1:0] EVENT, and then SDR_hold pull up, and then never seen slave design try to issue stop...

Thank you very much. many thanks.

b

pkimelman-nxp commented 3 years ago

Just start the Hot-Join before you slave-enable. You cannot Hot-join after as it thinks it is already on the bus.