i2c

cancel
Showing results for 
Search instead for 
Did you mean: 

i2c

131 Views
hajianik
Senior Contributor I

Hello,

This is concerning S32K148 and I2C.

I like to reproduce the error that the customer sees on some of our product.

They reported a stuck low condition on SDA line. We know this is a classical flaw in I2C and know how to recover from it. but we can't duplicate it on the bench.

I know in theory how to do it but yet I can not find the status bit that I NEED .

I like at the point when the host(us) receives an ACK, to reconfigure the CLK as output and driver it low, that way SDA line will stay low because there are no clk pulses.

But I can't find a status bit to tell us we received an ACK FROM THE SLAVE.

I'd greatly appreciate your help. 

Thanks,

Koorosh Hajiani

Hello,

This is concerning S32K148 and I2C.

I like to reproduce the error that the customer sees on some of our product.

They reported a stuck low condition on SDA line. We know this is a classical flaw in I2C and know how to recover from it. but we can't duplicate it on the bench.

I know in theory how to do it but yet I can not find the status bit that I NEED .

I like at the point when the host(us) receives an ACK, to reconfigure the CLK as output and driver it low, that way SDA line will stay low because there are no clk pulses.

But I can't find a status bit to tell us we received an ACK FROM THE SLAVE.

I'd greatly appreciate your help. 

Thanks,

Koorosh Hajiani

0 Kudos
3 Replies

116 Views
danielmartynek
NXP TechSupport
NXP TechSupport

Hello Koorosh Hajiani,

There is only MSR[NDF].

Which gets also set when ACK is detected but no expected.

danielmartynek_0-1667897891379.png

danielmartynek_1-1667898050344.png

 

BR, Daniel

 

 

 

0 Kudos

107 Views
hajianik
Senior Contributor I

Hi Daniel,

Thanks for your response,

So for instance if you transmit START bit and follow it by address, how does I2C MODULE KNOW IF AN ACK WS RECIEVED? to be able to proceed with the rest of packets.

I mean you set the command to start and data to the slave address and it gets transmitted but when and how we know it gets there to the slave?

I looked at at the error interrupts to see if one fits this scenario and I couldn't find one.

 

BR,

Koorosh Hajiani

0 Kudos

81 Views
danielmartynek
NXP TechSupport
NXP TechSupport

Hi Koorosh Hajiani,

The LPI2C module is built for non-blocking operations.

The commands are placed in a FIFO, and we get interrupts if something goes wrong like a NACK.

 

Regards,

Daniel

0 Kudos