i2c

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

i2c

609 次查看
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 回复数

594 次查看
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 项奖励

585 次查看
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 项奖励

559 次查看
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 项奖励