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