Hello,
I'm using the TRF7960A for reading and writing TI tags.
Reading the Inventory and/or reading all the blocks doesn't make any problem.
But I'm not able to write to any block of the tag using the "Write single block" command.
My register settings of the TRF7960 is as follows:
Register 00H: value 29H
01H: 06H
02H: 00H
03H: 00H
04H: c2H
05H: 00H
06H: 00H
07H: 0eH
08H: 1fH
09H: 30H
0aH: 40H
0bH: 02H
As mentioned above the "Inventory" command works fine using the following pseudo-code:
1. SSN Start condition
2. Transferring the following byte stream:
buf[0] = 8fH (Reset Fifo)
buf[1] = 91H (Send with CRC)
buf[2] = 3dH (Write Continous from register 1dH)
buf[3] = 00H (length part 1)
buf[4] = 30H (length part 2, 3 Bytes)
buf[5] = 27H (Request flags: double subcarrier, high data rate, inventory flag, 1 slot)
buf[6] = 01H (Inventory command)
buf[7] = 00H (Mask)
3. SSN Stop condition
Also the "Read Multiple Blocks" command works fine:
1. SSN Start condition
2. Transferring the following byte stream:
buf[0] = 8fH (Reset Fifo)
buf[1] = 91H (Send with CRC)
buf[2] = 3dH (Write Continous from register 1dH)
buf[3] = 00H (length part 1)
buf[4] = 40H (length part 2, 4 Bytes)
buf[5] = 03H (Request flags: double subcarrier, high data rate)
buf[6] = 23H (Read Multiple Blocks command)
buf[7] = 00H (First block to read)
buf[8] = 3fH (Amount of blocks)
3. SSN Stop condition
BUT the "Write Single Block" command doesn't work. The content of the block on the
tag never changes. Here is the preudo-code I use to write to a block:
1. SSN Start condition
2. Transferring the following byte stream:
buf[0] = 8fH (Reset Fifo)
buf[1] = 91H (Send with CRC)
buf[2] = 3dH (Write Continous from register 1dH)
buf[3] = 00H (length part 1)
buf[4] = 70H (length part 2, 7 Bytes)
buf[5] = 43H (Request flags: double subcarrier, high data rate, option flag)
buf[6] = 21H (Write Single Block command)
buf[7] = 00H (Block number)
buf[8] = 04H (Data)
buf[9] = 03H (Data)
buf[10] = 02H (Data)
buf[11] = 01H (Data)
3. SSN Stop condition
4. The IRQ TxReady occurs, I Reset the Fifo again (send 8fH), wait 13ms, then I
send 94H (EOF).
What am I doing wrong?
Thanks a lot for anybody's help.