2022-05-02 04:33 AM
Hi ST,
We are currently adapting ST code into a Linux device driver and we have some issues with the Gen2 Select option: We are able to:
After selecting the tag, we can call gen2AccessTag
function and we are able to retrieve the tag handle 100% of time, but when trying to read data from memory banks just after that, we succeed only 5% of time (95% of time we get a ERR -33 (chip no response), or a ERR -35 (err chip preamble)).
More details about the code:
For each tag we want to select, we set the selParams
global variable accordingly:
selParams[0].mode = STUHFL_D_GEN2_SELECT_MODE_CLEAR_AND_ADD;
selParams[0].target = STUHFL_D_GEN2_TARGET_SL;
selParams[0].action = 0;
selParams[0].memoryBank = STUHFL_D_GEN2_MEMORY_BANK_EPC;
memcpy(selParams[0].mask, tag->epc.data, tag_size);
selParams[0].maskBitPointer = 32; // CRC + PC = 32 bits, EPC starts at 33rd, so index 32
selParams[0].maskBitLength = 8 * tag_size;
selParams[0].truncation = 0;
numSelects = 1;
Then, we follow the commands done in ST Gen2_Read
function:
Can you guide us towards a solution ?
Thanks,
Thomas
Solved! Go to Solution.
2022-05-06 01:05 AM
Hello ST,
I found my problem, I was doing a single inventory round after Selection, but the Q value was too high. Since I wanted to select only one tag each time, I put Q to 0 and it works like a charm!
Regards,
Thomas
2022-05-06 01:05 AM
Hello ST,
I found my problem, I was doing a single inventory round after Selection, but the Q value was too high. Since I wanted to select only one tag each time, I put Q to 0 and it works like a charm!
Regards,
Thomas