ST25DV64KC Memory Organization and I2C Read/Write Issue
Hello,
I have an ST25DV64KC chip and I’m having a problem with I2C read/write. The I2C bus is running at 100 kHz and is functional (communication with another sensor, SHT, on the bus works fine). I am also able to communicate with this NFC chip - I can read registers and read the chip’s UID correctly.
The problem, however, is with reading/writing the user memory over I2C. When I try to write or read, I get NOK and the bus goes to low level and freezes. I have a main question:
Q1. How is the memory actually organized? I know that the user memory has a 7-bit address of 0x53 and the system memory has an address of 0x57. I expected that the UID, which in the datasheet is listed under the System Configuration area, would be available at I2C address 0x57, but in fact it seems to be part of the EEPROM, and the UID is accessible via the user memory at I2C 0x53.
So how does it actually work?? - if via I2C address 0x53 the System Configuration area is accessible at registers addresses 0x0000–0x0023 (datasheet page 18), and at the same time the User Memory (Table – “User memory as seen by RF and by I2C”) is also accessible at 7-bit address 0x53 in the range 0x0000–0x1FFF? That seems like a conflict!
Additionally, if anyone can provide a correct code example for reading/writing, it would be appreciated. The chip is in default configuration, without any initialization. I only verified that write protection is not enabled: the I2CSS register at address 0x000B returns 0x00. I want to write a few bytes to a chosen address (starting from the beginning of the EEPROM - I am using address 0x0000, but I simply want to write to the beginning of the memory that I can see in the ST25 mobile app, where the memory is also displayed starting at address 0x0000.), but as I wrote the communication fails when sending the first data byte (NOK, and the bus goes low)…
Thanks for your help and explanation.
