Hello,
We are developing an RFID Reader/Writer for HITAG S 256, utilizing the HTRC110. The schematic for the Reader/Writer can be found in the attached files. We have successfully read the HITAG S 256 in TTF mode. However, we are encountering difficulties in reading the HITAG S 256 UID. We have been following the sequence below but have not achieved success:
1- Init HTRC 110 config pages
// SET_CONFIG_PAGE page=3 data=0x0 (DISLP1=0, DISSMARTCOMP=0, FSEL=00[4MHz osc])
// SET_CONFIG_PAGE page=0 data=0xB (GAIN=10[500], FILTERH=1[160Hz], FILTERL=1[6Hz])
// SET_CONFIG_PAGE page=1 data=0x0 (PD_MODE=0[active], PD=0[active], HYSTERESIS=0[off], TXDIS=0[coil driver on])
2- Run General Settling Sequence
// SET_CONFIG_PAGE page=2 data=0xB (THRESET=1, ACQAMP=0, FREEZE=11)
// DELAY(5ms)
// SET_CONFIG_PAGE page=2 data=0x8 (THRESET=1, ACQAMP=0, FREEZE=00)
// DELAY(2ms)
// SET_CONFIG_PAGE page=2 data=0xB (THRESET=0, ACQAMP=0, FREEZE=00)
3- Check Antenna status
// READ_CONFIG_PAGE page=2 and check ANTFAIL
4- SET THE SAMPLING TIME
word t_ant = (word) htrcReadPhase(); // Read phase using command 0 0 0 0 1 0 0 0
t_ant <<= 1; // Multiply by 2
t_ant += 0x3F; // Add the Offset Compensation value
t_ant &= 0x3f;
htrcSetSamplingTime((byte)t_ant); // Set sampling time using command 1 0 D5 D4 D3 D2 D1 D0 (D5…D0 = t_ant )
// Check if sampling time is applied
response = htrcGetSamplingTime(); // GET_SAMPLING_TIME
if (response != t_ant)
{
// Error - the sampling time value was not accepted for some reason
Serial.println("SAMPLING_TIME_FAILED");
return false;
}
5- Run Fast Settling Sequence with UID REQUEST COMMAND
// SET_CONFIG_PAGE page=2 data=0x9 (THRESET=1, ACQAMP=0, FREEZE=01)
// Enter Write mode by sending WRITE_TAG_N command
// WRITE_TAG_N Command with N=7 (Tg=7T0) => Command =0x17
// Send UID REQUEST Std (00110)
// To send UID request We send rising edge of DIN, wait 160µs for 0 or wait 224µs for 1
// After 00110 is send, we send an EOF (rising edge of DIN then wait for 304µs)
// End Write mode (SLK Rising Edge)
// Delay(200µS)
// SET_CONFIG_PAGE page=2 data=0xB (THRESET=1, ACQAMP=0, FREEZE=11)
// Delay(250µS)
// SET_CONFIG_PAGE page=2 data=0x0 (THRESET=0, ACQAMP=0, FREEZE=00[normal operation])
// Enter read mode by sending 111 Command
// Listen to DOUT
After executing this sequence and monitoring DOUT for a minimum of 100ms while the tag is within the field, we do not receive any response. We anticipate receiving the 32-bit UID encoded in Anti-collision coding at a speed of 2kbit/s.