AnsweredAssumed Answered

ISO15693 Write Command Response Issue

Question asked by Amol Borase on Oct 21, 2019
Latest reply on Nov 5, 2019 by Amol Borase

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 

 

Outcomes