Skip to main content
Associate
June 12, 2026
Solved

M24LR16E-R RF Read/Write issue

  • June 12, 2026
  • 16 replies
  • 278 views

Hello Team,

I am facing RF read and write issues with the M24LR16E‑R EEPROM.

The exact problem is as follows:

  • When I take a new EEPROM and write data to it using an RF NFC reader for the first time, the operation is successful.
  • However, during subsequent attempts to read and write:
    • In some EEPROMs, RF read works but write fails but I2C read/Write working.
    • In some devices, both read and write operations fail but I2C read/Write working.
    • A few EEPROMs work correctly without any issues.

In our application, we are using Sector 2 and Sector 3 for user data storage.

When I read data from the problematic EEPROMs through St25 mobile application, I observe the following:

  • Sector 0 and Sector 1 Security Status is 0x00. And the data read and write is working in these 2 sectors.
  • Sector 2 to Sector 15 Security status:
    • Current Security Status: 0x09
    • New Security Status: 0x09

Additionally, I receive the warning:

“Sector locked. Security Status can only be changed through I2C.”

I am not sure why the security status has changed or why the sectors are locked.

Could you please provide clarification on the following points?

  1. Is it possible to unlock the EEPROM once it is locked?
  2. Can the EEPROM be unlocked via RF (NFC reader), or is I2C the only method?
  3. What could be the possible causes for the EEPROM sectors getting locked in this scenario?

 

Thanks,

Naveen 

 

This topic has been closed for replies.
Best answer by JL. Lebon

Hello, 

It is all explained in the datasheet, but let me describe a few important points.

The M24LR16E is using the ISO15693 protocol to communicate over RF.

In ISO15693, the EEPROM is seen as a memory addressed in blocks of 4 bytes. Block address 0 corresponds to EEPROM addresses 0 to 3, block address 1 corresponds to EEPROM addresses 4 to 7, etc. On top of ISO15693 block addressing, the M24LR16E defines sectors that can be protected individually, as you already experimented.

The ISO15693 defines commands to read and write the memory:

  • READ SINGLE BLOCK to read on block of 4 bytes in the EEPROM
  • READ MULTIPLE BLOCKS to read several blocks in EEPROM in one command
  • WRITE SINGLE BLOCK to write a block of 4 bytes in the EEPROM

The M24LR16E-R as READ SINGLE BLOCK, READ MUTLIPLE BLOCKS and WRITE SINGLE BLOCK commands that are not fully compliant with the ISO15693 standard (this is because the M24LR16E-R has been released before the ISO15693 specification support memory size larger than 8Kbits). Thos 3 commands require that Protocol_extension flag is set to 1 in the Request_flag byte of the command, and also require that the block address is coded on 2 Bytes (instead of 1 in the standard). That’s the main caveat for the M24LR16E-R

If you don’t know the ISO15693 protocol, you can read the chapter 16 to 26 of the datasheet that explains it.

Best regards.

16 replies

JL. Lebon
JL. LebonBest answer
ST Employee
July 3, 2026

Hello, 

It is all explained in the datasheet, but let me describe a few important points.

The M24LR16E is using the ISO15693 protocol to communicate over RF.

In ISO15693, the EEPROM is seen as a memory addressed in blocks of 4 bytes. Block address 0 corresponds to EEPROM addresses 0 to 3, block address 1 corresponds to EEPROM addresses 4 to 7, etc. On top of ISO15693 block addressing, the M24LR16E defines sectors that can be protected individually, as you already experimented.

The ISO15693 defines commands to read and write the memory:

  • READ SINGLE BLOCK to read on block of 4 bytes in the EEPROM
  • READ MULTIPLE BLOCKS to read several blocks in EEPROM in one command
  • WRITE SINGLE BLOCK to write a block of 4 bytes in the EEPROM

The M24LR16E-R as READ SINGLE BLOCK, READ MUTLIPLE BLOCKS and WRITE SINGLE BLOCK commands that are not fully compliant with the ISO15693 standard (this is because the M24LR16E-R has been released before the ISO15693 specification support memory size larger than 8Kbits). Thos 3 commands require that Protocol_extension flag is set to 1 in the Request_flag byte of the command, and also require that the block address is coded on 2 Bytes (instead of 1 in the standard). That’s the main caveat for the M24LR16E-R

If you don’t know the ISO15693 protocol, you can read the chapter 16 to 26 of the datasheet that explains it.

Best regards.

Associate
July 4, 2026

Hello,

Thank you for the explanation and the detailed information. It is very helpful and gives us a clear understanding of the communication protocol and command structure.

Thanks for your support.

Thanks.

JL. Lebon
ST Employee
July 6, 2026

My pleasure. Thank you for using ST products 😀