i2c

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

i2c

642件の閲覧回数
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 件の賞賛
3 返答(返信)

627件の閲覧回数
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 件の賞賛

618件の閲覧回数
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 件の賞賛

592件の閲覧回数
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 件の賞賛