The micro that I am using is an MK22FN256LVQ, there is a 24C16 EEPROM connected to I2C CH0.
A logic analyzer is monitoring the SCL and SDA lines. Attempting to address an EEPROM address
of 0x15B. Issuing the dummy write to load the 10 bit address into the EEPROM shows a byte of
0s before the 10 bit address code, 11110XX. I am using the most recent version of the Processor
Expert I2C component, the I2C_LDD.
Any ideas why the 0s byte? This results in my access being NACked.
Hi
I checked the 24C16 datasheet, during the device select phase, there with below device code:
While the K22 I2C module 10-bit address mode with below description, the 0b11110 is used for first 5 bits of the first address byte.
I don't think it is suitable to use I2C 10-bit address mode when communication with 24C16 EEPROM.
Customer still need to using the 7-bit address, which simulate the 24C16 device select phase, such as:
AD[7:1] = 0b1010XXX
After that using one byte data as low 8-bit address (BYTE ADDR).
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello,
Yes you are correct, the 24C16, cannot be used as a 10 bit address device.
It is a 7 bit device with 8 blocks.
I found this out shortly after my post. Sorry, for the waste of your time.
Regards,
Dick Fox
Firmware Engineer
NATIONAL CONTROLS CORPORATION BUSINESS UNIT
INSTRUMENTATION AND SPECIALTY CONTROLS DIVISION
1725 Western Dr | West Chicago, IL 60185 | http://www.ametekncc.com
Phone: (630)621-3118 | email: Dick Fox@ametek.com