S32K148 LPI2C Master Mode Communication with Slave EEPROM M24M01

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

S32K148 LPI2C Master Mode Communication with Slave EEPROM M24M01

1,582 次查看
kasirajan_chellaiah
Contributor I

I try to receive the data from EEPROM M24M01.With out stop or without breakpoint. It's working properly. When a stop a  LPI2C_DRV_MasterQueueCmd(baseAddr, master, LPI2C_MASTER_COMMAND_RECEIVE, (uint8_t)(rxSize - 1U)); API, My SDA Line went low . After that It's never back high again. Even I reset the Micro controller that lines always low. May I know the reason ? If I do the same for slave device like accelerometer ADX345. It's not like EEPROM. The SDA Lines becomes high. For EEPROM only  the SDA Lines are low why ?

Here I attach the Snapshot details from CRO. Please verify it.

 

 

Thanks

kasirajan

0 项奖励
回复
3 回复数

1,568 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@kasirajan_chellaiah

      When I was investigating this problem, I checked the data sheet of M23M01 and found the possible reasons as follows.

 

refers to :"M24M01-R M24M01-DF"

4.4 Acknowledge bit (ACK)
The acknowledge bit is used to indicate a successful byte transfer. The bus transmitter,
whether it be bus master or slave device, releases Serial Data (SDA) after sending eight bits
of data. During the 9th clock pulse period, the receiver pulls Serial Data (SDA) low to
acknowledge the receipt of the eight data bits.

 

This is the same as the description of the screenshot, maybe this is the possible reason.

 

BR!

      Jim,

0 项奖励
回复

1,559 次查看
kasirajan_chellaiah
Contributor I

I understand your response message. My doubt is Master should release the SDA Line high, this is not there my case. Here I done more analyzing. I try to reproduce same negative cases below method. 

1. Write a data 0x01 to eeprom . Address.0x0001 

Read a data from eeprom address 0x0001 ----- Screen shot DS0022

2. Write a data 0x80 to eeprom. Address. 0x0001

Read a data from eeprom address 0001----- Screen shot  DS0025 

In my first case SDA Lines always low.    ???????  Even  I reset the Micro 

Second case back to normal   ------- Here I able to continue next operation

Whenever I doing  start . I  am able to see Total 10 pulses.  May I know the reason behind ? this is happened because any values are added in the LPIC driver ?  

 

Thanks

kasirajan

 

 

0 项奖励
回复

1,549 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@kasirajan_chellaiah

I may reply to you later due to time zone, please don't mind.


I don't have an M24M01 module, so I can't do some tests, I can only refer to the data sheet.
I think this has nothing to do with the LPIC driver. The possible reason is the usage of the M24M01 module.


Because the Master terminal on the SDA bus should always be pulled up, if the SDA bus is pulled low, the possible cause is that the slave pulls the bus low.

Why is the SDA bus still pulled low after Mic reset? This may be because the M24M01 module is not reset. 

 

Senlent_0-1632389051210.png

please refers to 4.1 Start condition and 4.2 Stop condition

 

BR!

     Jim,

0 项奖励
回复