cancel
Showing results for 
Search instead for 
Did you mean: 

M24LR64 Multi-Bank Problem

jay-die
Associate
Posted on November 27, 2015 at 16:56

Hello, 

I have a problem with writing to the memory via I2C.

Background info:

1.I can read and write via NFC with the CR95HF Board from/to the memory. 

2. If I want to get the system info of the M24LR64 it says: ''8013000F041FF177132C02E0B000FF07032CFFFF03  03 -> CRC HS (expected=965C)'' and doesn't give any answer. (I don't know if it it important for my problem)

The Problem:

If I communicate via I2C I get the ACK bit of the slave, that it received the data. But the data is not stored correctly (I can see it if I read out the memory via NFC). The data is stored at the right place, but not correct.

For example the memory 0000 is 00 00 00 00 and I write FF FF FF FF to it. Then I read it out via NFC and there is 800800FFFFFFFFFFFF03 instead of FF FF FF FF. 

If the memory 0000 is FF FF FF FF and I write FF FF FF FF there is no problem. 

I hope someone can help me out. 

best regards and sorry for my english

 

#m24lr64 #i2c
1 ACCEPTED SOLUTION

Accepted Solutions
Posted on December 08, 2015 at 17:02

Hello,

first an explanation about ''....03 -> CRC HS'' : when the CR95HF receive the RF answer from the tag (herer M24LR) the answer is checked then the CR95HF delivers the RF answer with protocol informations byte at the end of the answer (as explained in the datasheet ; sendreceive command iso15693). The cr95HF calculate the CRC of the recived data and check the CRC value received. If there is no problem (crc calculated on data = CRC), the information byte is 00. If the CRC is not correct that means that ther is a collision issue and the byte is 03.

byte ''03'' at the end of RF answer is IMPORTANT : that means that RF transmission is bad. the reason why is that you are using M24LR multibank (this could appear if you used 2 M24LR with 2 antennas). In ISO15693 protocol, if you perform a RF Read Block command (same for any commands), all tags in the field will answer and there will appear collision and crong data decoded by the CR95HF.

To be able to read only 1 M24LR amount the 2 or 4  of your multi bank, you need to commmunicate in ADDRESSED or SELECTED mode to be sure that only one M24LR will answer. It willl be the same when you will send RF Write command, if you send a Write command, all the M24LR will be programmed with the same data. To be able to write only one M24R, you will need to send write command in ADDRESSED or SELECTED mode.

Concerning I2C : on Multi Bank boards, to be sure that the M24LR you have programmed is the same reading by I2C or RF, you will need to manage UID and Address (E0, E1 bits) of Device select. You can see Application note on M24LR Multibank for more informations

http://www.st.com/web/en/resource/technical/document/application_note/CD00280653.pdf

Best regards

ST NFC support team

View solution in original post

1 REPLY 1
Posted on December 08, 2015 at 17:02

Hello,

first an explanation about ''....03 -> CRC HS'' : when the CR95HF receive the RF answer from the tag (herer M24LR) the answer is checked then the CR95HF delivers the RF answer with protocol informations byte at the end of the answer (as explained in the datasheet ; sendreceive command iso15693). The cr95HF calculate the CRC of the recived data and check the CRC value received. If there is no problem (crc calculated on data = CRC), the information byte is 00. If the CRC is not correct that means that ther is a collision issue and the byte is 03.

byte ''03'' at the end of RF answer is IMPORTANT : that means that RF transmission is bad. the reason why is that you are using M24LR multibank (this could appear if you used 2 M24LR with 2 antennas). In ISO15693 protocol, if you perform a RF Read Block command (same for any commands), all tags in the field will answer and there will appear collision and crong data decoded by the CR95HF.

To be able to read only 1 M24LR amount the 2 or 4  of your multi bank, you need to commmunicate in ADDRESSED or SELECTED mode to be sure that only one M24LR will answer. It willl be the same when you will send RF Write command, if you send a Write command, all the M24LR will be programmed with the same data. To be able to write only one M24R, you will need to send write command in ADDRESSED or SELECTED mode.

Concerning I2C : on Multi Bank boards, to be sure that the M24LR you have programmed is the same reading by I2C or RF, you will need to manage UID and Address (E0, E1 bits) of Device select. You can see Application note on M24LR Multibank for more informations

http://www.st.com/web/en/resource/technical/document/application_note/CD00280653.pdf

Best regards

ST NFC support team