Dear All,
I have an issue regarding ISO 15693 Write Command. Using Address Flag (0x22) command works fine and also getting success response, but as I am sending frame with Option flag with tag UID (0x62) data get written into tag memory successfully but response I am getting is not success(instead of 0x0000 it gives 0x4f01). Here is our customised code for Write Single Block :
uint8_t TxBuflength=0;
phhalRf_RxParams_t sRxParams;
uint16_t Status=0xFFFF;
Status = phhalRf_FieldOn();
Status = phhalRf_LoadProtocol_Initiator(E_PHHAL_RF_LP_I_TX_15693_100, E_PHHAL_RF_LP_I_RX_15693_26);
PH_RETURN_ON_FAILURE(Status)
phhalRf_SetConfig(PHHAL_RF_CONFIG_TXWAIT_US, 1200);
phhalRf_SetConfig(PHHAL_RF_CONFIG_RXWAIT_US, 10);
phhalRf_PCD_SetExchgFdt(20000);
if((Flag & ISO15K_ADDRESS_FLAG)==ISO15K_ADDRESS_FLAG) // Check Valid Flag 0x02
{
phhalRf_PCD_SetExchgFdt(20000);
Flag |=ISO15K_DATA_RATE_FLAG;
TxBuffer[TxBuflength++] = Flag;
TxBuffer[TxBuflength++] = Cmd;
memcpy(&TxBuffer[TxBuflength],UID,8);
TxBuflength+=8;
}
else
{
Flag |=ISO15K_DATA_RATE_FLAG;
TxBuffer[TxBuflength++] = Flag;
TxBuffer[TxBuflength++] = Cmd;
}
if((Flag & ISO15K_OPTION_FLAG)==ISO15K_OPTION_FLAG)
{
Status = phhalRf_PCD_Exchg_TxOnlyEOF(RxBuffer,&sRxParams);
__NOP();
}
TxBuffer[TxBuflength++] = BlockAddress;
memcpy(&TxBuffer[TxBuflength],(uint8_t *)BlockData,4);
TxBuflength +=4;
Status = phhalRf_PCD_Exchg(TxBuffer,RxBuffer,TxBuflength,&sRxParams); // Exchange function
return Status;
Is anything wrong or missing in above code? Please guide us for the same
Thanks in Advance
regards,
Amol
Dear Amol Borase,
what ISO 15693 tag are you using and what reader as well ?
my recommendation would be that you base your code in our NFC reader library first in order to avoid any issue, there is an example available in the NFC reader library for ISO 15693.
NFC Reader Library | NXP
please let me know which products from NXP are you using and whether you are using our library as a base.
Have a great day !
BR
Jonathan