NXP NFC Reader Library v4.040.05.011646

Modules | Functions
Discovery Loop
Activity Layer

Discovery loop component as per NFC Forum Activity Specification 1.1 and EMVCo Digital 2.5 specification. More...

Collaboration diagram for Discovery Loop:

## Modules
| Component : Software

## Functions
phStatus_t | phacDiscLoop_Run (void *pDataParams, uint8_t bEntryPoint)
| Starts the discovery loop in poll mode or listen mode. More...
phStatus_t | phacDiscLoop_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
| Set discovery loop configuration value. More...
phStatus_t | phacDiscLoop_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
| Get discovery loop configuration value. More...
phStatus_t | phacDiscLoop_ActivateCard (void *pDataParams, uint8_t bTagType, uint8_t bTagIndex)
| Activates the given tag type with given index. More...

## Configuration Types
These options shall be used along with phacDiscLoop_SetConfig and phacDiscLoop_GetConfig to set/get discovery loop configurations.
#define | PHAC_DISCLOOP_CONFIG_GTA_VALUE_US 0x00U
| Set/Get the guard time for Type A technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GTB_VALUE_US 0x01U
| Set/Get the guard time for Type B technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US 0x02U
| Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type B is preceded by polling for Type F. More...
#define | PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US 0x03U
| Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type F is preceded by polling for Type B. More...
#define | PHAC_DISCLOOP_CONFIG_GTV_VALUE_US 0x04U
| Set/Get the guard time for Type V technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US 0x05U
| Set/Get the guard time for 18000P3M3 technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US 0x06U
| Set/Get the guard time for Active poll mode in microseconds. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT 0x10U
| Set/Get the number of Type A devices/tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT 0x11U
| Set/Get the number of Type B devices/tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT 0x12U
| Set/Get the number of Type F devices/tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT 0x13U
| Set/Get the number of Type V tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT 0x14U
| Set/Get the number of 18000P3M3 tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_TAGS_FOUND 0x20U
| Returns the number of Type A devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_TAGS_FOUND 0x21U
| Returns the number of Type B devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_TAGS_FOUND 0x22U
| Returns the number of Type F devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEV_TAGS_FOUND 0x23U
| Returns the number of Type V tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_18000P3M3_TAGS_FOUND 0x24U
| Returns the number of 18000P3M3 tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_SUPPORT_TYPE4B 0x25U
| Returns if the activated Type B device/tag is compliant with ISO/IEC 14443-4 or not. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_AFI_REQ 0x30U
| Set/Get Application Family Identifier (AFI) to be used for Type B in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_EXTATQB 0x31U
| Enable or disable (PH_ON or PH_OFF) extended ATQB (Answer to Request B) option for Type B during passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_FSDI 0x32U
| Sets the Frame Size Device Integer (FSDI) value for the Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_CID 0x33U
| Sets the Card Identifier (CID) value for the Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_NAD 0x34U
| Sets the Node ADdress (NAD) value for the Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_DRI 0x35U
| Sets the Divisor Receive Integer (DRI) for Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_DSI 0x36U
| Sets the Divisor Send Integer (DSI) for Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_FSDI 0x40U
| Sets the Frame Size Device Integer (FSDI) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_CID 0x41U
| Sets the Card Identifier (CID) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_NAD 0x42U
| Sets the Node ADdress (NAD) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DRI 0x43U
| Sets the Divisor Receive Integer (DRI) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DSI 0x44U
| Sets the Divisor Send Integer (DSI) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_DID 0x45U
| Sets the Device Identifier (DID) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_LRI 0x46U
| Sets the Initiator Length Reduction field (LRI) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD_ENABLE 0x47U
| Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD 0x48U
| Sets the Node Address (NAD) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_GI_LEN 0x49U
| Sets the length of the general bytes for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_ATR_RES_LEN 0x50U
| Get ATR response length from Type A P2P devices in passive poll mode.
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_DID 0x51U
| Sets the Device Identifier (DID) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_LRI 0x52U
| Sets the Initiator Length Reduction field (LRI) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD_ENABLE 0x53U
| Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD 0x54U
| Sets the Node Address (NAD) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_GI_LEN 0x55U
| Sets the length of the general bytes for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_ATR_RES_LEN 0x56U
| Get ATR response length from Type A P2P devices in passive poll mode.
#define | PHAC_DISCLOOP_CONFIG_TYPEF_CUR_BAUD 0x57U
| Set/Get the baud rate of Felica in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEV_RX_DATA_RATE 0x60U
| Configure ISO 15693 for high/low RX data rate. More...
#define | PHAC_DISCLOOP_CONFIG_I18000P3M3_MODULATION 0x70U
| Configure ISO 18000p3m3 modulation/sub-carrier. More...
#define | PHAC_DISCLOOP_CONFIG_I18000P3M3_FREQUENCY 0x71U
| Configure ISO 18000p3m3 link frequency. More...
#define | PHAC_DISCLOOP_CONFIG_ENABLE_LPCD 0x80U
| Enable/Disable Low Power Card Detection (LPCD) in passive poll mode (PH_ON or PH_OFF). More...
#define | PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND 0x81U
| Returns the number of devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_ANTI_COLL 0x88U
| Enable/Disable anti-collision support for Type A technology (PH_ON or PH_OFF). More...
#define | PHAC_DISCLOOP_CONFIG_ADDITIONAL_INFO 0x85U
| Get the actual error code from lower layer when discovery loop returns PHAC_DISCLOOP_FAILURE.
#define | PHAC_DISCLOOP_CONFIG_OPE_MODE 0x82U
| Configure operation mode of discovery loop. More...
#define | PHAC_DISCLOOP_CONFIG_COLLISION_PENDING 0x83U
| Get collision pending status of polled technologies. More...
#define | PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE 0x84U
| Set the discovery loop state to start with while in poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_BAIL_OUT 0x86U
| Set/Get the bail out option for various technologies in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TECH_DETECTED 0x87U
| Returns the technologies that were detected during poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG 0x89U
| Configure technologies to listen for in active listen mode. More...
#define | PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG 0x8AU
| Configure technologies to be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG 0x8BU
| Configure technologies to listen for in passive listen mode. More...
#define | PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG 0x8CU
| Configure technologies to be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION 0x8DU
| Configure NFC activity version. More...
#define | PHAC_DISCLOOP_CONFIG_TARGET_RETRY_COUNT 0x90U
| Configure AUTOCOLL retry count in listen mode. More...

## Detailed Description

Discovery loop component as per NFC Forum Activity Specification 1.1 and EMVCo Digital 2.5 specification.

Discovery loop implements poll mode based on NFC Activity Specification 1.1 (backward compatibility with version 1.0) and EMVCo Specification 2.5. Listen mode is implemented based on NFC Activity Specification 1.1. Support for Type V (ISO 15693) polling is included based on NFC Forum draft specification. ISO 18000-3 Mode 3 (EPC Gen2) is supported as a proprietary technology in poll mode.

Poll_Mode This scenario depicts sequence for Poll_Mode.

Listen_Mode This scenario depicts sequence for Listen_Mode.

## Macro Definition Documentation

## § PHAC_DISCLOOP_CONFIG_GTA_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTA_VALUE_US 0x00U

Set/Get the guard time for Type A technology in microseconds for passive poll mode.

Default guard time is set to 5200 microseconds for Type A.

## § PHAC_DISCLOOP_CONFIG_GTB_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTB_VALUE_US 0x01U

Set/Get the guard time for Type B technology in microseconds for passive poll mode.

Default guard time is set to 5200 microseconds for Type B.

## § PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US 0x02U

Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type B is preceded by polling for Type F.

Default guard time is set to 20400 microseconds for Type F.

## § PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US 0x03U

Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type F is preceded by polling for Type B.

Default guard time is set to 15300 microseconds for Type F.

## § PHAC_DISCLOOP_CONFIG_GTV_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTV_VALUE_US 0x04U

Set/Get the guard time for Type V technology in microseconds for passive poll mode.

Default guard time is set to 5200 microseconds for Type V.

## § PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US 0x05U

Set/Get the guard time for 18000P3M3 technology in microseconds for passive poll mode.

Default guard time is set to 10000 microseconds for 18000P3M3.

## § PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US

#define PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US 0x06U

Set/Get the guard time for Active poll mode in microseconds.

Default guard time is set to 5100 microseconds.

## § PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT 0x10U

Set/Get the number of Type A devices/tags that can be detected in passive poll mode.

Default device limit is 1 for Type A. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

## § PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT 0x11U

Set/Get the number of Type B devices/tags that can be detected in passive poll mode.

Default device limit is 1 for Type B. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

## § PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT 0x12U

Set/Get the number of Type F devices/tags that can be detected in passive poll mode.

Default device limit is 1 for Type F. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

## § PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT 0x13U

Set/Get the number of Type V tags that can be detected in passive poll mode.

Default device limit is 1 for Type V. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

## § PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT 0x14U

Set/Get the number of 18000P3M3 tags that can be detected in passive poll mode.

Default device limit is 1 for 18000P3M3. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

## § PHAC_DISCLOOP_CONFIG_TYPEA_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEA_TAGS_FOUND 0x20U

Returns the number of Type A devices/tags found in passive poll mode.

This gives the number of Type A devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

## § PHAC_DISCLOOP_CONFIG_TYPEB_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEB_TAGS_FOUND 0x21U

Returns the number of Type B devices/tags found in passive poll mode.

This gives the number of Type B devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

## § PHAC_DISCLOOP_CONFIG_TYPEF_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEF_TAGS_FOUND 0x22U

Returns the number of Type F devices/tags found in passive poll mode.

This gives the number of Type F devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

## § PHAC_DISCLOOP_CONFIG_TYPEV_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEV_TAGS_FOUND 0x23U

Returns the number of Type V tags found in passive poll mode.

This gives the number of Type V tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

## § PHAC_DISCLOOP_CONFIG_18000P3M3_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_18000P3M3_TAGS_FOUND 0x24U

Returns the number of 18000P3M3 tags found in passive poll mode.

This gives the number of 18000P3M3 tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

## § PHAC_DISCLOOP_CONFIG_TYPEB_SUPPORT_TYPE4B

#define PHAC_DISCLOOP_CONFIG_TYPEB_SUPPORT_TYPE4B 0x25U

Returns if the activated Type B device/tag is compliant with ISO/IEC 14443-4 or not.

In ISO mode this is used to take decision if tag is compliant with ISO/IEC 14443-4.

## § PHAC_DISCLOOP_CONFIG_TYPEB_AFI_REQ

#define PHAC_DISCLOOP_CONFIG_TYPEB_AFI_REQ 0x30U

Set/Get Application Family Identifier (AFI) to be used for Type B in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEB_EXTATQB

#define PHAC_DISCLOOP_CONFIG_TYPEB_EXTATQB 0x31U

Enable or disable (PH_ON or PH_OFF) extended ATQB (Answer to Request B) option for Type B during passive poll mode.

Default is PH_OFF.

## § PHAC_DISCLOOP_CONFIG_TYPEB_FSDI

#define PHAC_DISCLOOP_CONFIG_TYPEB_FSDI 0x32U

Sets the Frame Size Device Integer (FSDI) value for the Type B tags in passive poll mode.

Default is 0x08.

## § PHAC_DISCLOOP_CONFIG_TYPEB_CID

#define PHAC_DISCLOOP_CONFIG_TYPEB_CID 0x33U

Sets the Card Identifier (CID) value for the Type B tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEB_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEB_NAD 0x34U

Sets the Node ADdress (NAD) value for the Type B tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEB_DRI

#define PHAC_DISCLOOP_CONFIG_TYPEB_DRI 0x35U

Sets the Divisor Receive Integer (DRI) for Type B tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEB_DSI

#define PHAC_DISCLOOP_CONFIG_TYPEB_DSI 0x36U

Sets the Divisor Send Integer (DSI) for Type B tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_FSDI

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_FSDI 0x40U

Sets the Frame Size Device Integer (FSDI) for the 14443P4A tags in passive poll mode.

Default is 0x08.

## § PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_CID

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_CID 0x41U

Sets the Card Identifier (CID) for the 14443P4A tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_NAD 0x42U

Sets the Node ADdress (NAD) for the 14443P4A tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DRI

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DRI 0x43U

Sets the Divisor Receive Integer (DRI) for the 14443P4A tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DSI

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DSI 0x44U

Sets the Divisor Send Integer (DSI) for the 14443P4A tags in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_P2P_DID

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_DID 0x45U

Sets the Device Identifier (DID) for Type A P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_P2P_LRI

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_LRI 0x46U

Sets the Initiator Length Reduction field (LRI) for Type A P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD_ENABLE

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD_ENABLE 0x47U

Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type A P2P devices in passive poll mode.

Default is PH_OFF.

## § PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD 0x48U

Sets the Node Address (NAD) for Type A P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEA_P2P_GI_LEN

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_GI_LEN 0x49U

Sets the length of the general bytes for Type A P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEF_P2P_DID

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_DID 0x51U

Sets the Device Identifier (DID) for Type F P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEF_P2P_LRI

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_LRI 0x52U

Sets the Initiator Length Reduction field (LRI) for Type F P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD_ENABLE

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD_ENABLE 0x53U

Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type F P2P devices in passive poll mode.

Default is PH_OFF.

## § PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD 0x54U

Sets the Node Address (NAD) for Type F P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEF_P2P_GI_LEN

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_GI_LEN 0x55U

Sets the length of the general bytes for Type F P2P devices in passive poll mode.

Default is 0.

## § PHAC_DISCLOOP_CONFIG_TYPEF_CUR_BAUD

#define PHAC_DISCLOOP_CONFIG_TYPEF_CUR_BAUD 0x57U

Set/Get the baud rate of Felica in passive poll mode.

PHAC_DISCLOOP_CON_BITR_212 - Felica @ 212 kbps.
PHAC_DISCLOOP_CON_BITR_424 - Felica @ 424 kbps.

## § PHAC_DISCLOOP_CONFIG_TYPEV_RX_DATA_RATE

#define PHAC_DISCLOOP_CONFIG_TYPEV_RX_DATA_RATE 0x60U

Configure ISO 15693 for high/low RX data rate.

PHHAL_HW_RF_RX_DATARATE_HIGH
PHHAL_HW_RF_RX_DATARATE_LOW
Default is PHHAL_HW_RF_RX_DATARATE_HIGH.

## § PHAC_DISCLOOP_CONFIG_I18000P3M3_MODULATION

#define PHAC_DISCLOOP_CONFIG_I18000P3M3_MODULATION 0x70U

Configure ISO 18000p3m3 modulation/sub-carrier.

PHPAL_I18000P3M3_M_MANCHESTER_2 - Use two sub-carrier.
PHPAL_I18000P3M3_M_MANCHESTER_4 - Use four sub-carrier.
Default is PHPAL_I18000P3M3_M_MANCHESTER_4.

## § PHAC_DISCLOOP_CONFIG_I18000P3M3_FREQUENCY

#define PHAC_DISCLOOP_CONFIG_I18000P3M3_FREQUENCY 0x71U

Configure ISO 18000p3m3 link frequency.

PHPAL_I18000P3M3_LF_423KHZ - 423kHz (fc/32).
PHPAL_I18000P3M3_LF_847KHZ - 847kHz (fc/16).
Default is PHPAL_I18000P3M3_LF_847KHZ.

## § PHAC_DISCLOOP_CONFIG_ENABLE_LPCD

#define PHAC_DISCLOOP_CONFIG_ENABLE_LPCD 0x80U

Enable/Disable Low Power Card Detection (LPCD) in passive poll mode (PH_ON or PH_OFF).

Default is PH_OFF.

## § PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND 0x81U

Returns the number of devices/tags found in passive poll mode.

This gives the number of devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

## § PHAC_DISCLOOP_CONFIG_ANTI_COLL

#define PHAC_DISCLOOP_CONFIG_ANTI_COLL 0x88U

Enable/Disable anti-collision support for Type A technology (PH_ON or PH_OFF).

Default is PH_ON.

## § PHAC_DISCLOOP_CONFIG_OPE_MODE

#define PHAC_DISCLOOP_CONFIG_OPE_MODE 0x82U

Configure operation mode of discovery loop.

RD_LIB_MODE_EMVCO -> Run in EMVCO mode.
RD_LIB_MODE_NFC -> Run in NFC mode. This is the default mode.
Default is RD_LIB_MODE_NFC.

## § PHAC_DISCLOOP_CONFIG_COLLISION_PENDING

#define PHAC_DISCLOOP_CONFIG_COLLISION_PENDING 0x83U

Get collision pending status of polled technologies.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Collision pending for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Collision pending for Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Collision pending for FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Collision pending for FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Collision pending for Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Collision pending for ISO 18000p3m3/ EPC Gen2.

## § PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE

#define PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE 0x84U

Set the discovery loop state to start with while in poll mode.

Refer phacDiscLoop_Sw_PollState for all supported states.
PHAC_DISCLOOP_POLL_STATE_DETECTION -> Start with detection phase.
PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION -> Start with collision resolution.
PHAC_DISCLOOP_POLL_STATE_REMOVAL -> Start with card removal phase (shall be used only in EMVCo mode).
Default is PHAC_DISCLOOP_POLL_STATE_DETECTION. When phacDiscLoop_Run gives PHAC_DISCLOOP_MULTI_TECH_DETECTED in poll mode, application shall select one technology and start poll mode again in PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION state.

## § PHAC_DISCLOOP_CONFIG_BAIL_OUT

#define PHAC_DISCLOOP_CONFIG_BAIL_OUT 0x86U

Set/Get the bail out option for various technologies in passive poll mode.

Default bail out is not set for any technology.
PHAC_DISCLOOP_POS_BIT_MASK_A -> Bail out for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Bail out for Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Bail out for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Bail out for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Bail out for Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Bail out for ISO 18000p3m3/ EPC Gen2.

## § PHAC_DISCLOOP_CONFIG_TECH_DETECTED

#define PHAC_DISCLOOP_CONFIG_TECH_DETECTED 0x87U

Returns the technologies that were detected during poll mode.

Passive technologies:
PHAC_DISCLOOP_POS_BIT_MASK_A -> Detected Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Detected Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Detected FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Detected FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Detected Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Detected ISO 18000p3m3/ EPC Gen2.
Active technologies:
PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 -> Detected active target @ 106 kbps.
PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 -> Detected active target @ 212 kbps.
PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 -> Detected active target @ 424 kbps.

## § PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG 0x89U

Configure technologies to listen for in active listen mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Listen for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Listen for Type B.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Listen for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Listen for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Listen for Type V / ISO 15693.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Listen for ISO 18000p3m3/ EPC Gen2.[Reserved. Not supported currently]

## § PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG 0x8AU

Configure technologies to be detected in passive poll mode.

PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 -> Detect active target @ 106 kbps
PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 -> Detect active target @ 212 kbps
PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 -> Detect active target @ 424 kbps

## § PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG 0x8BU

Configure technologies to listen for in passive listen mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Listen for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Listen for Type B.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Listen for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Listen for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Listen for Type V / ISO 15693.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Listen for ISO 18000p3m3/ EPC Gen2.[Reserved. Not supported currently]

## § PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG 0x8CU

Configure technologies to be detected in passive poll mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Detect Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Detect Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Detect Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Detect Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Detect Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Detect ISO 18000p3m3/ EPC Gen2.

## § PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION

#define PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION 0x8DU

Configure NFC activity version.

PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_0 -> Run in Activity 1.0 mode.
PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_1 -> Run in Activity 1.1 mode. This is the default.

## § PHAC_DISCLOOP_CONFIG_TARGET_RETRY_COUNT

#define PHAC_DISCLOOP_CONFIG_TARGET_RETRY_COUNT 0x90U

Configure AUTOCOLL retry count in listen mode.

How many times to retry AUTOCOLL command if it fails. Default is 0. Supported range is from 0 to 255.

## Function Documentation

## § phacDiscLoop_Run()

phStatus_t phacDiscLoop_Run | ( | void * | pDataParams,
|  | uint8_t | bEntryPoint
| ) |  |

Starts the discovery loop in poll mode or listen mode.

Use phacDiscLoop_SetConfig with configuration options to modify poll mode and listen mode settings of discovery loop.

Returns
  Status code

Return values

  PHAC_DISCLOOP_FAILURE | Discovery loop failure due to error from lower layer.
  PHAC_DISCLOOP_COLLISION_PENDING | Indicates that collision is pending.
  PHAC_DISCLOOP_EXTERNAL_RFON | External RF field on.
  PHAC_DISCLOOP_EXTERNAL_RFOFF | External RF field off.
  PHAC_DISCLOOP_NO_TECH_DETECTED | No technologies detected.
  PHAC_DISCLOOP_NO_DEVICE_RESOLVED | No card/device resolved.
  PHAC_DISCLOOP_LPCD_NO_TECH_DETECTED | LPCD succeeded but no technologies detected..
  PHAC_DISCLOOP_MULTI_TECH_DETECTED | Multiple Technologies detected.
  PHAC_DISCLOOP_MULTI_DEVICES_RESOLVED | Multiple cards/devices resolved.
  PHAC_DISCLOOP_DEVICE_ACTIVATED | Single card/device activated.
  PHAC_DISCLOOP_ACTIVE_TARGET_ACTIVATED | Active target activated..
  PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED | Passive target activated.
  PHAC_DISCLOOP_MERGED_SEL_RES_FOUND | Merged SAK with NFC-DEP and T4T support found.
  PHAC_DISCLOOP_ACTIVATED_BY_PEER | Activated in listen mode.

Parameters

  [in] | pDataParams | Pointer to discovery loop parameter structure.
  [in] | bEntryPoint | Entry point to start discovery loop. Refer phacDiscLoop_Sw_EntryPoints for supported list of entry points.

## § phacDiscLoop_SetConfig()

phStatus_t phacDiscLoop_SetConfig | ( | void * | pDataParams,
|  | uint16_t | wConfig,
|  | uint16_t | wValue
| ) |  |

Set discovery loop configuration value.

Returns
  Status code

Return values

  PH_ERR_SUCCESS | Operation successful.
  PH_ERR_INVALID_PARAMETER | Invalid option/response received.
  Other | Depending on implementation and underlying component.

Parameters

  [in] | pDataParams | Pointer to discovery loop parameter structure.
  [in] | wConfig | Configuration identifier.
  [in] | wValue | Configuration value.

## § phacDiscLoop_GetConfig()

phStatus_t phacDiscLoop_GetConfig | ( | void * | pDataParams,
|  | uint16_t | wConfig,
|  | uint16_t * | pValue
| ) |  |

Get discovery loop configuration value.

Returns
  Status code

Return values

  PH_ERR_SUCCESS | Operation successful
  PH_ERR_INVALID_PARAMETER | Invalid option/response received
  Other | Depending on implementation and underlying component.

Parameters

  [in] | pDataParams | Pointer to discovery loop parameter structure.
  [in] | wConfig | Configuration identifier.
  [out] | pValue | Configuration value.

## § phacDiscLoop_ActivateCard()

phStatus_t phacDiscLoop_ActivateCard | ( | void * | pDataParams,
|  | uint8_t | bTagType,
|  | uint8_t | bTagIndex
| ) |  |

Activates the given tag type with given index.

Returns
  Status code

Return values

  PHAC_DISCLOOP_DEVICE_ACTIVATED | Single card/device activated.
  PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED | Passive target activated.
  PHAC_DISCLOOP_MERGED_SEL_RES_FOUND | Merged SAK with NFC-DEP and T4T support found.
  PH_ERR_INVALID_PARAMETER | If invalid index or card type was given
  Other | Depending on implementation and underlying component.

Parameters

  [in] | pDataParams | Pointer to discovery loop parameter structure.
  [in] | bTagType | Tag type phacDiscLoop_Sw_NfcTech.
  [in] | bTagIndex | The tag index to be activated.