NXP Reader Library  v17.1.0.2535
Commands_Custom

Describes the Custom commands of ICode products. More...

Collaboration diagram for Commands_Custom:

Modules

 Defines
 Description of options to be used for Custom command sets.
 

Functions

phStatus_t phalICode_InventoryRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLen, uint8_t bBlockNo, uint8_t bNoOfBlocks, uint8_t *pUid, uint8_t *pUidLen, uint8_t *pData, uint16_t *pDataLen)
 Perform ISO15693 InventoryRead command. More...
 
phStatus_t phalICode_InventoryReadExtended (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLen, uint8_t bExtendedOptions, uint8_t *pCID, uint8_t bBlockNo, uint8_t bNoOfBlocks, uint8_t *pCDIDOut, uint8_t *pUid, uint8_t *pUidLen, uint8_t *pData, uint16_t *pDataLen)
 Perform ISO15693 InventoryReadExtended command. More...
 
phStatus_t phalICode_FastInventoryRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLen, uint8_t bBlockNo, uint8_t bNoOfBlocks, uint8_t *pUid, uint8_t *pUidLen, uint8_t *pData, uint16_t *pDataLen)
 Perform ISO15693 FastInventoryRead command. More...
 
phStatus_t phalICode_FastInventoryReadExtended (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLen, uint8_t bExtendedOptions, uint8_t *pCID, uint8_t bBlockNo, uint8_t bNoOfBlocks, uint8_t *pCDIDOut, uint8_t *pUid, uint8_t *pUidLen, uint8_t *pData, uint16_t *pDataLen)
 Perform ISO15693 FastInventoryReadExtended command. More...
 
phStatus_t phalICode_SetEAS (void *pDataParams, uint8_t bOption)
 This command enables the EAS mode if the EAS mode is not locked. More...
 
phStatus_t phalICode_ResetEAS (void *pDataParams, uint8_t bOption)
 This command disables the EAS mode if the EAS mode is not locked. More...
 
phStatus_t phalICode_LockEAS (void *pDataParams, uint8_t bOption)
 This command locks the current state of the EAS mode and the EAS ID. More...
 
phStatus_t phalICode_EASAlarm (void *pDataParams, uint8_t bOption, uint8_t *pEasIdValue, uint8_t bEasIdMaskLen, uint8_t **ppEas, uint16_t *pEasLen)
 This command returns the EAS sequence if the EAS mode is enabled. More...
 
phStatus_t phalICode_PasswordProtectEAS (void *pDataParams)
 This command enables the password protection for EAS. More...
 
phStatus_t phalICode_PasswordProtectAFI (void *pDataParams)
 This command enables the password protection for AFI. More...
 
phStatus_t phalICode_WriteEASID (void *pDataParams, uint8_t bOption, uint8_t *pEasIdValue)
 With this command, a new EAS identifier is stored in the corresponding configuration memory. More...
 
phStatus_t phalICode_ReadEPC (void *pDataParams, uint8_t **ppEpc, uint16_t *pEpcLen)
 Performs ReadEPC command. More...
 
phStatus_t phalICode_GetNXPSystemInformation (void *pDataParams, uint8_t **ppSystemInfo, uint16_t *pSystemInfoLen)
 Perform GetNXPSystemInformation command. More...
 
phStatus_t phalICode_InventoryPageRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLen, uint8_t bPageNo, uint8_t bNoOfPages, uint8_t **ppUid, uint8_t *pUidLen, uint8_t **ppData, uint16_t *pDataLen)
 Perform InventoryPageRead command. More...
 
phStatus_t phalICode_FastInventoryPageRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLen, uint8_t bPageNo, uint8_t bNoOfPages, uint8_t **ppUid, uint8_t *pUidLen, uint8_t **ppData, uint16_t *pDataLen)
 Perform FastInventoryPageRead command. More...
 
phStatus_t phalICode_GetRandomNumber (void *pDataParams, uint8_t **ppRnd, uint16_t *pRndLen)
 Performs a GetRandomNumber command. More...
 
phStatus_t phalICode_SetPassword (void *pDataParams, uint8_t bOption, uint8_t bPwdIdentifier, uint8_t *pXorPwd)
 Performs SetPassword command. More...
 
phStatus_t phalICode_WritePassword (void *pDataParams, uint8_t bOption, uint8_t bPwdIdentifier, uint8_t *pPwd)
 Performs WritePassword command. More...
 
phStatus_t phalICode_LockPassword (void *pDataParams, uint8_t bOption, uint8_t bPwdIdentifier)
 Performs LockPassword command. More...
 
phStatus_t phalICode_ProtectPage (void *pDataParams, uint8_t bOption, uint8_t bPPAdd_PageNo, uint8_t bProtectionStatus)
 Performs Page protection command. More...
 
phStatus_t phalICode_LockPageProtectionCondition (void *pDataParams, uint8_t bOption, uint8_t bPageNo)
 Perform LockPageProtectionCondition command. More...
 
phStatus_t phalICode_GetMultipleBlockProtectionStatus (void *pDataParams, uint8_t bBlockNo, uint8_t bNoOfBlocks, uint8_t *pProtectionStates, uint16_t *pNumReceivedStates)
 Perform GetMultipleBlockProtectionStatus command. More...
 
phStatus_t phalICode_Destroy (void *pDataParams, uint8_t bOption, uint8_t *pXorPwd)
 Performs Destroy command. More...
 
phStatus_t phalICode_EnablePrivacy (void *pDataParams, uint8_t bOption, uint8_t *pXorPwd)
 Performs EnablePrivacy command. More...
 
phStatus_t phalICode_64BitPasswordProtection (void *pDataParams, uint8_t bOption)
 Perform 64-BitPasswordProtection command. More...
 
phStatus_t phalICode_StayQuietPersistent (void *pDataParams)
 When receiving the STAY QUIET PERSISTENT command, the label IC enters the persistent quiet state and will not send back a response. More...
 
phStatus_t phalICode_ReadSignature (void *pDataParams, uint8_t **ppSign, uint16_t *pSignLen)
 Performs ReadSignature command. More...
 
phStatus_t phalICode_ReadConfig (void *pDataParams, uint8_t bOption, uint8_t bBlockAddr, uint8_t bNoOfBlocks, uint8_t **ppData, uint16_t *pDataLen)
 Reads a multiple 4 byte(s) data from the mentioned configuration block address. More...
 
phStatus_t phalICode_WriteConfig (void *pDataParams, uint8_t bOption, uint8_t bBlockAddr, uint8_t *pData)
 Writes a 4 byte data to the mentioned configuration block address. More...
 
phStatus_t phalICode_PickRandomID (void *pDataParams)
 Enables the random ID generation in the tag. More...
 
phStatus_t phalICode_ReadTT (void *pDataParams, uint8_t bOption, uint8_t **ppResponse, uint16_t *pRspLen)
 Provides the tag tamper status. More...
 
phStatus_t phalICode_ParameterRequest (void *pDataParams, uint8_t *pBitRate, uint8_t *pTiming)
 Performs Parameter Request command. More...
 
phStatus_t phalICode_ParameterSelect (void *pDataParams, uint8_t bBitRate, uint8_t bTiming)
 Performs Parameter Select command. More...
 
phStatus_t phalICode_ReadSRAM (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t bNumBlocks, uint8_t *pData, uint16_t *pDataLen)
 Performs a SRAM Read command. More...
 
phStatus_t phalICode_WriteSRAM (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t bNumBlocks, uint8_t *pData, uint16_t wDataLen)
 Performs a SRAM Write command. More...
 
phStatus_t phalICode_I2CMRead (void *pDataParams, uint8_t bI2CParam, uint16_t wDataLen, uint8_t *pData)
 Performs a I2CM Read command. More...
 
phStatus_t phalICode_I2CMWrite (void *pDataParams, uint8_t bOption, uint8_t *pData, uint16_t wDataLen)
 Performs a I2CM Write command. More...
 
phStatus_t phalICode_IncrCnt (void *pDataParams, uint8_t bOption, uint8_t bCounter, uint16_t wValue)
 Performs an value increment to the usage counter. More...
 
phStatus_t phalICode_ReadCnt (void *pDataParams, uint8_t bCounter, uint16_t *pValue)
 Performs a reading of value from the specified counter. More...
 
phStatus_t phalICode_WriteCnt (void *pDataParams, uint8_t bOption, uint8_t bCounter, uint16_t wValue)
 Performs an value write to the usage counter. More...
 
phStatus_t phalICode_LockCertificate (void *pDataParams, uint8_t bOption, uint8_t bCertNo)
 Performs locking of specified certificate stored in the certificate memory segment against erasing or overwriting. More...
 
phStatus_t phalICode_FastAuthenticateTAM (void *pDataParams, uint16_t wOption, uint8_t bAuthType, uint8_t bKeyID_CertNum, uint8_t *pChallenge, uint16_t wChallengeLen, uint8_t **ppResponse, uint16_t *pRespLen)
 Performs TAM authentication with the tag. More...
 
phStatus_t phalICode_FastReadCertificate (void *pDataParams, uint8_t bCertNo, uint16_t wWordPtr, uint16_t wWordCount, uint8_t **ppCertificate, uint16_t *pCertLen)
 Performs Read Certificate with the tag. More...
 
phStatus_t phalICode_FastReadBuffer (void *pDataParams, uint8_t **ppResponse, uint16_t *pRespLen)
 The purpose of command is to read, using one of supported fast response speeds, the content of the ResponseBuffer under the condition that this content is declared as the valid one by the ResponseBuffer validity response flag set. More...
 

Detailed Description

Describes the Custom commands of ICode products.

Function Documentation

◆ phalICode_InventoryRead()

phStatus_t phalICode_InventoryRead ( void *  pDataParams,
uint8_t  bFlags,
uint8_t  bAfi,
uint8_t pMask,
uint8_t  bMaskBitLen,
uint8_t  bBlockNo,
uint8_t  bNoOfBlocks,
uint8_t pUid,
uint8_t pUidLen,
uint8_t pData,
uint16_t pDataLen 
)

Perform ISO15693 InventoryRead command.

When receiving the INVENTORY READ request, the ICODE IC performs the same as the Anti-Collision sequence, with the difference that instead of the UID and the DSFID, the requested response is defined by additional options.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bFlags[In] Request flags byte. Refer below set of flags
[in]bAfi[In] Application Family Identifier.
[in]pMask[In] UID mask, holding known UID bits.
[in]bMaskBitLen[In] Number of UID bits within pMask.
[in]bBlockNo[In] Block number of first block to read.
[in]bNoOfBlocks[In] Number of blocks to read
[out]pUid[Out] Received UID.
[out]pUidLen[Out] Length of bytes available in pUID buffer.
[out]pData[Out] Received data.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_InventoryReadExtended()

phStatus_t phalICode_InventoryReadExtended ( void *  pDataParams,
uint8_t  bFlags,
uint8_t  bAfi,
uint8_t pMask,
uint8_t  bMaskBitLen,
uint8_t  bExtendedOptions,
uint8_t pCID,
uint8_t  bBlockNo,
uint8_t  bNoOfBlocks,
uint8_t pCDIDOut,
uint8_t pUid,
uint8_t pUidLen,
uint8_t pData,
uint16_t pDataLen 
)

Perform ISO15693 InventoryReadExtended command.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bFlags[In] Request flags byte. Refer below set of flags
[in]bAfi[In] Application Family Identifier.
[in]pMask[In] UID mask, holding known UID bits.
[in]bMaskBitLen[In] Number of UID bits within pMask.
[in]bExtendedOptions[In] Refer Extended Inventory Flags for supported values.
[in]pCID[In] Two byte CID -> if marked in extended options
[in]bBlockNo[In] Block Number from where start reading
[in]bNoOfBlocks[In] Number of blocks to read
[out]pCDIDOut[Out] Received CID.
[out]pUid[Out] Received UID.
[out]pUidLen[Out] Length of bytes available in pUID buffer.
[out]pData[Out] Received Data.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_FastInventoryRead()

phStatus_t phalICode_FastInventoryRead ( void *  pDataParams,
uint8_t  bFlags,
uint8_t  bAfi,
uint8_t pMask,
uint8_t  bMaskBitLen,
uint8_t  bBlockNo,
uint8_t  bNoOfBlocks,
uint8_t pUid,
uint8_t pUidLen,
uint8_t pData,
uint16_t pDataLen 
)

Perform ISO15693 FastInventoryRead command.

When receiving the FAST INVENTORY READ command the ICODE IC behaves the same as the INVENTORY READ command with the following exceptions:

  • The data rate in the direction ICODE Tag to the interrogator is twice that defined in ISO/IEC 15693-3 depending on the Datarate_flag 53 kbit (high data rate) or 13 kbit (low data rate).
  • The data rate from the interrogator to the ICODE Tag and the time between the rising edge of the EOF from the interrogator to the ICODE Tag remain unchanged (stay the same as defined in ISO/IEC 15693-3).
  • In the ICODE Tag to the interrogator direction, only the single sub-carrier mode is supported.
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bFlags[In] Request flags byte. Refer below set of flags
[in]bAfi[In] Application Family Identifier.
[in]pMask[In] UID mask, holding known UID bits.
[in]bMaskBitLen[In] Number of UID bits within pMask.
[in]bBlockNo[In] Block number of first block to read.
[in]bNoOfBlocks[In] Number of blocks to read
[out]pUid[Out] Received UID
[out]pUidLen[Out] Length of bytes available in pUID buffer.
[out]pData[Out] Received data.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_FastInventoryReadExtended()

phStatus_t phalICode_FastInventoryReadExtended ( void *  pDataParams,
uint8_t  bFlags,
uint8_t  bAfi,
uint8_t pMask,
uint8_t  bMaskBitLen,
uint8_t  bExtendedOptions,
uint8_t pCID,
uint8_t  bBlockNo,
uint8_t  bNoOfBlocks,
uint8_t pCDIDOut,
uint8_t pUid,
uint8_t pUidLen,
uint8_t pData,
uint16_t pDataLen 
)

Perform ISO15693 FastInventoryReadExtended command.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bFlags[In] Request flags byte. Refer below set of flags
[in]bAfi[In] Application Family Identifier.
[in]pMask[In] UID mask, holding known UID bits.
[in]bMaskBitLen[In] Number of UID bits within pMask.
[in]bExtendedOptions[In] Refer Extended Inventory Flags for supported values.
[in]pCID[In] Two byte CID -> if marked in extended options
[in]bBlockNo[In] Block Number from where start reading
[in]bNoOfBlocks[In] Number of blocks to read
[out]pCDIDOut[Out] Received CID.
[out]pUid[Out] Received UID.
[out]pUidLen[Out] Length of bytes available in pUID buffer.
[out]pData[Out] Received Data.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_SetEAS()

phStatus_t phalICode_SetEAS ( void *  pDataParams,
uint8_t  bOption 
)

This command enables the EAS mode if the EAS mode is not locked.

If the EAS mode is password protected the EAS password has to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,

◆ phalICode_ResetEAS()

phStatus_t phalICode_ResetEAS ( void *  pDataParams,
uint8_t  bOption 
)

This command disables the EAS mode if the EAS mode is not locked.

If the EAS mode is password protected the EAS password has to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlaying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,

◆ phalICode_LockEAS()

phStatus_t phalICode_LockEAS ( void *  pDataParams,
uint8_t  bOption 
)

This command locks the current state of the EAS mode and the EAS ID.

If the EAS mode is password protected the EAS password has to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,

◆ phalICode_EASAlarm()

phStatus_t phalICode_EASAlarm ( void *  pDataParams,
uint8_t  bOption,
uint8_t pEasIdValue,
uint8_t  bEasIdMaskLen,
uint8_t **  ppEas,
uint16_t pEasLen 
)

This command returns the EAS sequence if the EAS mode is enabled.

  • bOption disabled: bEasIdMaskLength and pEasIdValue are not transmitted, EAS Sequence is returned;
  • bOption enabled and bEasIdMaskLength = 0: EAS ID is returned;
  • bOption enabled and bEasIdMaskLength > 0: EAS Sequence is returned by ICs with matching pEasIdValue;

If the EAS mode is disabled, the label remains silent.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag;
  • PHAL_ICODE_OPTION_OFF
    • EAS ID mask length and EAS ID value shall not be transmitted.
    • If the EAS mode is enabled, the EAS response is returned from the ICODE IC. This configuration is compliant with the EAS command of the ICODE IC
  • PHAL_ICODE_OPTION_ON.
    • Within the command the EAS ID mask length has to be transmitted to identify how many bits of the following EAS ID value are valid (multiple of 8-bits). Only those ICODE ICs will respond with the EAS sequence which have stored the corresponding data in the EAS ID configuration (selective EAS) and if the EAS Mode is set.
    • If the EAS ID mask length is set to 0, the ICODE IC will answer with its EAS ID
[in]pEasIdValue[In] EAS ID; 0, 8 or 16 bits; optional.
[in]bEasIdMaskLen[In] 8 bits; optional.
[out]ppEas[Out] EAS ID (16 bits) or EAS Sequence (256 bits).
[out]pEasLen[Out] Length of bytes available in ppEas buffer.

◆ phalICode_PasswordProtectEAS()

phStatus_t phalICode_PasswordProtectEAS ( void *  pDataParams)

This command enables the password protection for EAS.

The EAS password has to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.

◆ phalICode_PasswordProtectAFI()

phStatus_t phalICode_PasswordProtectAFI ( void *  pDataParams)

This command enables the password protection for AFI.

The AFI password has to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.

◆ phalICode_WriteEASID()

phStatus_t phalICode_WriteEASID ( void *  pDataParams,
uint8_t  bOption,
uint8_t pEasIdValue 
)

With this command, a new EAS identifier is stored in the corresponding configuration memory.

If the EAS mode is password protected the EAS password has to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]pEasIdValue[In] EAS ID; 16 bits.

◆ phalICode_ReadEPC()

phStatus_t phalICode_ReadEPC ( void *  pDataParams,
uint8_t **  ppEpc,
uint16_t pEpcLen 
)

Performs ReadEPC command.

On this command, the label will respond with it's EPC data.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[out]ppEpc[Out] EPC data; 96 bits.
[out]pEpcLen[Out] Length of bytes available in ppEpc buffer.

◆ phalICode_GetNXPSystemInformation()

phStatus_t phalICode_GetNXPSystemInformation ( void *  pDataParams,
uint8_t **  ppSystemInfo,
uint16_t pSystemInfoLen 
)

Perform GetNXPSystemInformation command.

This command allows for retrieving the NXP system information value from the VICC.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[out]ppSystemInfo[Out] The NXP system information of the VICC. Refer specific product data-sheet for more information. Response will contain the below informations.
  • Byte 1: 1 byte of Protection Pointer address
  • Byte 2: 1 byte of Protection Pointer Conditions
  • Byte 3: 1 byte of Lock Bit settings
  • Byte 4: 4 bytes of Supported commands and Features
[out]pSystemInfoLen[Out] Length of bytes available in ppSystemInfo buffer.

◆ phalICode_InventoryPageRead()

phStatus_t phalICode_InventoryPageRead ( void *  pDataParams,
uint8_t  bFlags,
uint8_t  bAfi,
uint8_t pMask,
uint8_t  bMaskBitLen,
uint8_t  bPageNo,
uint8_t  bNoOfPages,
uint8_t **  ppUid,
uint8_t pUidLen,
uint8_t **  ppData,
uint16_t pDataLen 
)

Perform InventoryPageRead command.

When receiving the Inventory Page Read request, the ICODE IC performs the same as in the anti-collision sequence, with the difference that instead of the UID and the DSFID the requested memory content is re-transmitted from the ICODE IC.

If the Option flag is set to 0, N pages of data including page protection status (password protection condition) are re-transmitted. If the option flag is set to 1, N pages (4 blocks = 16 byte) of data including page protection status (password protection condition) and the part of the UID which is not part of the mask are re-transmitted.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bFlags[In] Request flags byte. Refer below set of flags
[in]bAfi[In] Application Family Identifier.
[in]pMask[In] UID mask, holding known UID bits.
[in]bMaskBitLen[In] Number of UID bits within pMask.
[in]bPageNo[In] Block number of first page to read.
[in]bNoOfPages[In] Number of pages to read
[out]ppUid[Out] Received UID
[out]pUidLen[Out] Length of bytes available in ppUid buffer.
[out]ppData[Out] Received data.
[out]pDataLen[Out] Length of bytes available in ppData buffer.

◆ phalICode_FastInventoryPageRead()

phStatus_t phalICode_FastInventoryPageRead ( void *  pDataParams,
uint8_t  bFlags,
uint8_t  bAfi,
uint8_t pMask,
uint8_t  bMaskBitLen,
uint8_t  bPageNo,
uint8_t  bNoOfPages,
uint8_t **  ppUid,
uint8_t pUidLen,
uint8_t **  ppData,
uint16_t pDataLen 
)

Perform FastInventoryPageRead command.

When receiving the FAST INVENTORY PAGE READ command the ICODE IC behaves the same as the INVENTORY PAGE READ command with the following exceptions:

  • The data rate in the direction ICODE Tag to the interrogator is twice that defined in ISO/IEC 15693-3 depending on the Datarate_flag 53 kbit (high data rate) or 13 kbit (low data rate).
  • The data rate from the interrogator to the ICODE Tag and the time between the rising edge of the EOF from the interrogator to the ICODE Tag remain unchanged (stay the same as defined in ISO/IEC 15693-3).
  • In the ICODE Tag to the interrogator direction, only the single sub-carrier mode is supported.
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bFlags[In] Request flags byte. Refer below set of flags
[in]bAfi[In] Application Family Identifier.
[in]pMask[In] UID mask, holding known UID bits.
[in]bMaskBitLen[In] Number of UID bits within pMask.
[in]bPageNo[In] Block number of first page to read.
[in]bNoOfPages[In] Number of pages to read
[out]ppUid[Out] Received UID
[out]pUidLen[Out] Length of bytes available in ppUid buffer.
[out]ppData[Out] Received data.
[out]pDataLen[Out] Length of bytes available in ppData buffer.

◆ phalICode_GetRandomNumber()

phStatus_t phalICode_GetRandomNumber ( void *  pDataParams,
uint8_t **  ppRnd,
uint16_t pRndLen 
)

Performs a GetRandomNumber command.

On this command, the label will respond with a random number. The received random number shall be used to diversify the password for the Set Password command.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[out]ppRnd[Out] Random number; 16 bits.
[out]pRndLen[Out] Number of bytes in ppRnd buffer.

◆ phalICode_SetPassword()

phStatus_t phalICode_SetPassword ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bPwdIdentifier,
uint8_t pXorPwd 
)

Performs SetPassword command.

With this command the different passwords can be transmitted to the label.

This command has to be executed just once for the related passwords if the label is powered.

* [XOR password calculation example]
* pXorPwd[0] = pPassword[0] ^ pRnd[0];
* pXorPwd[1] = pPassword[1] ^ pRnd[1];
* pXorPwd[2] = pPassword[2] ^ pRnd[0];
* pXorPwd[3] = pPassword[3] ^ pRnd[1];
* 

Remark: This command can only be executed in addressed or selected mode except of Privacy Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bPwdIdentifier[In] Password Identifier;
[in]pXorPwd[In] XOR Password; 32 bits.

◆ phalICode_WritePassword()

phStatus_t phalICode_WritePassword ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bPwdIdentifier,
uint8_t pPwd 
)

Performs WritePassword command.

With this command, a new password is written into the related memory. Note that the old password has to be transmitted before with Set Password. The new password takes effect immediately which means that the new password has to be transmitted with Set Password to get access to protected blocks/pages. Remark: This command can only be executed in addressed or selected mode.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bPwdIdentifier[In] Password Identifier;
[in]pPwd[In] Plain Password; 32 bits.

◆ phalICode_LockPassword()

phStatus_t phalICode_LockPassword ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bPwdIdentifier 
)

Performs LockPassword command.

This command locks the addressed password. Note that the addressed password has to be transmitted before with Set Password. A locked password can not be changed any longer.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bPwdIdentifier[In] Password Identifier;

◆ phalICode_ProtectPage()

phStatus_t phalICode_ProtectPage ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bPPAdd_PageNo,
uint8_t  bProtectionStatus 
)

Performs Page protection command.

This command changes the protection status of a page. Note that the related passwords have to be transmitted before with Set Password if the page is not public.

Flag can be set using SetConfig utility interface

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bPPAdd_PageNo[In] Page number to be protected in case of products that do not have pages characterized as high and Low.
Block number to be protected in case of products that have pages characterized as high and Low.
[in]bProtectionStatus[In] Refer description for supported values.

◆ phalICode_LockPageProtectionCondition()

phStatus_t phalICode_LockPageProtectionCondition ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bPageNo 
)

Perform LockPageProtectionCondition command.

This command permanently locks the protection status of a page. Note that the related passwords have to be transmitted before with Set Password if the page is not public.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bPageNo[In] Page number to be protected.

◆ phalICode_GetMultipleBlockProtectionStatus()

phStatus_t phalICode_GetMultipleBlockProtectionStatus ( void *  pDataParams,
uint8_t  bBlockNo,
uint8_t  bNoOfBlocks,
uint8_t pProtectionStates,
uint16_t pNumReceivedStates 
)

Perform GetMultipleBlockProtectionStatus command.

This instructs the label to return the block protection status of the requested blocks.

Remark: If bBlockNo + bNoOfBlocks exceeds the total available number of user blocks, the number of received status bytes is less than the requested number. This means that the last returned status byte corresponds to the highest available user block.

Flag can be set using SetConfig utility interface Note: The memory should be created and sent to the ProtectionStates buffer.

Each byte of the response will contain the below information.

Bit Name Value Description
b1 (LSB) Lock bit (WAC) 0 Block is not locked
1 Block is locked (Lock Block command)
b2 Read password protected 0 Disabled
1 Enabled
b3 Write password protected 0 Disabled
1 Enabled
b4 Page protection lock 0 Not Locked
1 Locked
b5 - b8 (MSB) 0
WAC - Write AccessCondition
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • If bNoOfBlocks is zero.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bBlockNo[In] First Block number.
[in]bNoOfBlocks[In] First Block number.
[out]pProtectionStates[Out] Protection states of requested blocks. Response will be repeated based on bNoOfBlocks information.
[out]pNumReceivedStates[Out] Length of bytes available in pProtectionStates buffer.

◆ phalICode_Destroy()

phStatus_t phalICode_Destroy ( void *  pDataParams,
uint8_t  bOption,
uint8_t pXorPwd 
)

Performs Destroy command.

This command permanently destroys the label.

The Destroy password has to be transmitted before with Set Password.
Remark:

  • This command is irreversible and the label will never respond to any command again.
  • This command can only be executed in addressed or selected mode.

Note: This command is not valid for iCode DNA product as the Destroy feature is part of Mutual Authentication command (refer phalICode_AuthenticateMAM).

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]pXorPwd[In] XOR Password; 32 bits. Pass the password for the ICODE products that supports and NULL for the products that do not support.

◆ phalICode_EnablePrivacy()

phStatus_t phalICode_EnablePrivacy ( void *  pDataParams,
uint8_t  bOption,
uint8_t pXorPwd 
)

Performs EnablePrivacy command.

This command instructs the label to enter privacy mode.

In privacy mode, the label will only respond to Challenge and Set Password commands. To get out of the privacy mode, the Privacy password has to be transmitted before with Set Password.

Note: This command is not valid for iCode DNA product as the privacy enabling disabling feature is part of Mutual Authentication command (refer Authenticate MAM).

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]pXorPwd[In] XOR Password; 32 bits. Pass the password for the iCode products that supports and NULL for the products that do not support.

◆ phalICode_64BitPasswordProtection()

phStatus_t phalICode_64BitPasswordProtection ( void *  pDataParams,
uint8_t  bOption 
)

Perform 64-BitPasswordProtection command.

This instructs the label that both of the Read and Write passwords are required for protected access.

Note that both the Read and Write passwords have to be transmitted before with Set Password.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,

◆ phalICode_StayQuietPersistent()

phStatus_t phalICode_StayQuietPersistent ( void *  pDataParams)

When receiving the STAY QUIET PERSISTENT command, the label IC enters the persistent quiet state and will not send back a response.

Remark: The STAY QUIET PERSISTENT command provides the same behavior as the mandatory STAY QUIET command with the only difference at a reset (power off). The label IC will turn to the ready state, if the power off time is exceeding the persistent time.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.

◆ phalICode_ReadSignature()

phStatus_t phalICode_ReadSignature ( void *  pDataParams,
uint8_t **  ppSign,
uint16_t pSignLen 
)

Performs ReadSignature command.

On this command, the label will respond with the signature value.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[out]ppSign[Out] The originality signature returned by the VICC.
[out]pSignLen[Out] Length of originality signature buffer.

◆ phalICode_ReadConfig()

phStatus_t phalICode_ReadConfig ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockAddr,
uint8_t  bNoOfBlocks,
uint8_t **  ppData,
uint16_t pDataLen 
)

Reads a multiple 4 byte(s) data from the mentioned configuration block address.

Here the starting address of the configuration block should be given in the parameter wBlockAddr and the number of blocks to read from the starting block should be given in the parameter bNoOfBlocks.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bBlockAddr[In] Configuration block address.
[in]bNoOfBlocks[In] The n block(s) to read the configuration data.
[out]ppData[Out] Multiple of 4 (4 * No Of Blocks) byte(s) of data read from the mentioned configuration block address.
[out]pDataLen[Out] Number of received configuration data bytes.

◆ phalICode_WriteConfig()

phStatus_t phalICode_WriteConfig ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockAddr,
uint8_t pData 
)

Writes a 4 byte data to the mentioned configuration block address.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bBlockAddr[In] Configuration block address.
[in]pData[In] A 4 byte data to be written to the mentioned configuration block address.

◆ phalICode_PickRandomID()

phStatus_t phalICode_PickRandomID ( void *  pDataParams)

Enables the random ID generation in the tag.

This interfaces is used to instruct the tag to generate a random number in privacy mode.

Flag can be set using SetConfig utility interface

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.

◆ phalICode_ReadTT()

phStatus_t phalICode_ReadTT ( void *  pDataParams,
uint8_t  bOption,
uint8_t **  ppResponse,
uint16_t pRspLen 
)

Provides the tag tamper status.

Flag can be set using SetConfig utility interface

Response will contain the below information.

  • Byte1: TagTamper Current State
  • Byte2: TagTamper Stored State
    TT Current State TT Stored State
    O: Open O: Open
    C: Closed C: Closed
    I: Invalid E: Electrical Error
    E: Electrical Error Z: Backup Management Error - Invalid Data
    0: Feature not active or info not provided 0: Feature not active or info not provided
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf any of the DataParams are null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option flag as per ISO15693
[out]ppResponse[Out] Two bytes of Tag Tamper status.
[out]pRspLen[Out] Length of bytes available in ppResponse buffer.

◆ phalICode_ParameterRequest()

phStatus_t phalICode_ParameterRequest ( void *  pDataParams,
uint8_t pBitRate,
uint8_t pTiming 
)

Performs Parameter Request command.

When receiving VICC PARAMETER REQUEST, NTAG5 returns all supported bit rates and timing information.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[out]pBitRate[Out] One byte buffer containing the supported BitRates.
[out]pTiming[Out] One byte buffer containing the supported timing information.

◆ phalICode_ParameterSelect()

phStatus_t phalICode_ParameterSelect ( void *  pDataParams,
uint8_t  bBitRate,
uint8_t  bTiming 
)

Performs Parameter Select command.

PARAMETER SELECT command is used to activate one bit rate combination and the T1 timing indicated in PARAMETER REQUEST response. Only one option in each direction shall be chosen. After the response to PARAMETER SELECT command, new parameters are valid.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bBitRate[In] One byte buffer containing the supported BitRates.
[in]bTiming[In] One byte buffer containing the supported timing information.

◆ phalICode_ReadSRAM()

phStatus_t phalICode_ReadSRAM ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo,
uint8_t  bNumBlocks,
uint8_t pData,
uint16_t pDataLen 
)

Performs a SRAM Read command.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • If bNoOfBlocks is zero.
  • If bNoOfBlocks + bBlockNo is greater than 3Fh.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag. Supported values are,
[in]bBlockNo[In] Block number from where the data to be read.
[in]bNumBlocks[In] Total number of block to read.
[out]pData[Out] Information received from VICC
  • If PHAL_ICODE_OPTION_OFF, Block Security Status information is not available. Only block data is available. Format will be 4 byte data 1, 4 byte data 2, ... 4 byte data N
  • If PHAL_ICODE_OPTION_ON, both Block Security Status information and Block Data is available. Format of the response will be Status 1 + 4 byte data 1, Status 2 + 4 byte data 2, ... Status N + 4 byte data N, Where 1, 2 ... N is the block number.
[out]pDataLen[Out] Length of bytes available in pData buffer.

◆ phalICode_WriteSRAM()

phStatus_t phalICode_WriteSRAM ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bBlockNo,
uint8_t  bNumBlocks,
uint8_t pData,
uint16_t  wDataLen 
)

Performs a SRAM Write command.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • If bNoOfBlocks is zero.
  • If bNoOfBlocks + bBlockNo is greater than 3Fh.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bBlockNo[In] Block number from where the data should be written.
[in]bNumBlocks[In] Total number of block to be written.
[in]pData[In] Information to be written to VICC.
[in]wDataLen[In] Length of bytes available in pData buffer.

◆ phalICode_I2CMRead()

phStatus_t phalICode_I2CMRead ( void *  pDataParams,
uint8_t  bI2CParam,
uint16_t  wDataLen,
uint8_t pData 
)

Performs a I2CM Read command.

This command is used to read from any I2C slave connected to NTAG5 I2C Host.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
PH_ERR_PARAMETER_SIZEIf the value of wDataLen is higher than 256.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bI2CParam[In] I2C Slave address from which the data should be read and the information to set the Stop bit. Bits 0 - 6: 7-bit I2C slave address of connected slave Bit 7 : Disable STOP condition 0b: STOP condition will be generated at the end of transaction 1b: STOP condition will be omitted at the end of transaction
[in]wDataLen[In] Total Number of data bytes to be read. If 1 byte has to be read then the length will be 1.
[out]pData[Out] Information read from the VICC.

◆ phalICode_I2CMWrite()

phStatus_t phalICode_I2CMWrite ( void *  pDataParams,
uint8_t  bOption,
uint8_t pData,
uint16_t  wDataLen 
)

Performs a I2CM Write command.

This command is used to write to any I2C slave connected to NTAG5 I2C Host.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
PH_ERR_PARAMETER_SIZEIf the value of wDataLen is higher than 256.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the write operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]pData[In] Information to be written to the VICC.
[in]wDataLen[In] Total Number of data bytes to be written. If 1 byte has to be written then the length will be 1.

◆ phalICode_IncrCnt()

phStatus_t phalICode_IncrCnt ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bCounter,
uint16_t  wValue 
)

Performs an value increment to the usage counter.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the increment operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bCounter[In] The counter to be used for incrementing the value.
[in]wValue[In] The value to be incremented.

◆ phalICode_ReadCnt()

phStatus_t phalICode_ReadCnt ( void *  pDataParams,
uint8_t  bCounter,
uint16_t pValue 
)

Performs a reading of value from the specified counter.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the response pointer is null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bCounter[In] The counter to be used for reading the value.
[in]pValue[In] The value read from the specified counter.

◆ phalICode_WriteCnt()

phStatus_t phalICode_WriteCnt ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bCounter,
uint16_t  wValue 
)

Performs an value write to the usage counter.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the increment operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bCounter[In] The counter to be used for writing the value.
[in]wValue[In] The value to be written.

◆ phalICode_LockCertificate()

phStatus_t phalICode_LockCertificate ( void *  pDataParams,
uint8_t  bOption,
uint8_t  bCertNo 
)

Performs locking of specified certificate stored in the certificate memory segment against erasing or overwriting.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERFor the option values that are not supported.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layers parameter structure.
[in]bOption[In] Option flag, Supported values are,
  • If PHAL_ICODE_OPTION_OFF, the VICC shall return its response when it has completed the lock operation starting after t1nom [4352/fc (320,9 us)] + a multiple of 4096/fc (302 us) with a total tolerance of ±32/fc and latest after 20 ms upon detection of the rising edge of the EOF of the VCD request.
  • If PHAL_ICODE_OPTION_ON, the VICC shall wait for the reception of an EOF from the VCD and upon such reception shall return its response.
[in]bCertNo[In] Certificate record number to use for locking the certificate.

◆ phalICode_FastAuthenticateTAM()

phStatus_t phalICode_FastAuthenticateTAM ( void *  pDataParams,
uint16_t  wOption,
uint8_t  bAuthType,
uint8_t  bKeyID_CertNum,
uint8_t pChallenge,
uint16_t  wChallengeLen,
uint8_t **  ppResponse,
uint16_t pRespLen 
)

Performs TAM authentication with the tag.

Support various authentication schemes of TAM authentication. Refer description of bAuthType parameter for more information. The purpose of FAST_AUTH command is,

  • To provide interrogator challenge to trigger generation of cryptographic response (authentication result) using the private key corresponding to the public key within the default certificate (C0) specified.
  • Responding in one of supported fast response speeds

Flag can be set using SetConfig utility interface.

Note
:
Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If bAuthType parameter is invalid.
  • If the buffers are null.
  • For the option values that are not supported.
PH_ERR_PROTOCOL_ERRORFor invalid response format.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]wOption[In] For Future use.
[in]bAuthType[In] Type of Authenticate. One of the below mentioned values,
[in]bKeyID_CertNum[In] KeyID or Certificate number available in the tag.
[in]pChallenge[In] Challenge information to be exchanged with tag. Will be one of the following.
[in]wChallengeLen[In] Length of bytes available in pChallenge buffer.
[out]ppResponse[Out] Response received from the Tag. Will be based on bAuthType parameter information.
[out]pRespLen[Out] Length of available bytes in ppResponse buffer.

◆ phalICode_FastReadCertificate()

phStatus_t phalICode_FastReadCertificate ( void *  pDataParams,
uint8_t  bCertNo,
uint16_t  wWordPtr,
uint16_t  wWordCount,
uint8_t **  ppCertificate,
uint16_t pCertLen 
)

Performs Read Certificate with the tag.

The purpose of FAST_READ_CERT command is to read specified ECC certificate using one of supported fast response speeds.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETER
  • If the buffers are null.
  • For the option values that are not supported.
XXXX
  • Depending on status codes return by Tag.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bCertNo[In] Certificate record number to use for writing the certificate.
[in]wWordPtr[In] Starting Block number from which the data should be read. Currently 0000h should be used.
[in]wWordCount[In] A 16-bit value indicating the number of double words to be read from the certificate record starting from the position indicated by WordPtr. The value of 0000h shall be used to indicate the full contents of the certificate record starting from the position indicated by WordPtr; i.e. memory shall be read from WordPtr until the end of the current certificate record. Currently 0000h should be used.
[out]ppCertificate[Out] Certificate information read from the tag based on wWordPtr and wWordCount information.
[out]pCertLen[Out] Length of byte available in pCertificate buffer.

◆ phalICode_FastReadBuffer()

phStatus_t phalICode_FastReadBuffer ( void *  pDataParams,
uint8_t **  ppResponse,
uint16_t pRespLen 
)

The purpose of command is to read, using one of supported fast response speeds, the content of the ResponseBuffer under the condition that this content is declared as the valid one by the ResponseBuffer validity response flag set.

Flag can be set using SetConfig utility interface.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
PH_ERR_INVALID_DATA_PARAMSIf DataParams is null.
PH_ERR_INVALID_PARAMETERIf the buffers are null.
XXXX
  • Depending on status codes return by PICC.
  • Other Depending on implementation and underlying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[out]ppResponse[Out] Response received from the tag.
[out]pRespLen[Out] Length of available bytes in ppResponse buffer.