Renesas PTX1xxR IoT-Reader API (non-OS) Version 7.3.1
Renesas Software Stack for IoT-Reader Applications (non-OS)
Data Structures | Macros | Typedefs | Enumerations | Functions
PTX NSC IoT-Reader API
Collaboration diagram for PTX NSC IoT-Reader API:

Data Structures

struct  ptxIoTRd_ChipConfig
 Chip RF- and System-Configuration Identifiers. More...
 
struct  ptxIoTRd_ComInterface_Params
 Parameters for Communication/Host Interface Initialization. More...
 
struct  ptxIoTRd_TempSense_Params
 Parameters for Temperature Sensor Initialization. More...
 
struct  ptxIoTRd_ProtILimiterSettings
 External Protection Limiter Parameters (WLC only, to be ignored for stand-alone IoT-operation). More...
 
struct  ptxIoTRd_ProtISensorSettings
 External Current Sensor Parameters (WLC only, to be ignored for stand-alone IoT-operation). More...
 
union  ptxIoTRd_ProtSettings
 External Protection Settings (WLC only, to be ignored for stand-alone IoT-operation). More...
 
struct  ptxIoTRd_Protection_Params
 External Protection Parameters (WLC only, to be ignored for stand-alone IoT-operation). More...
 
struct  ptxIoTRd_InitPars
 Parameters for IoTRd Initialization. More...
 
struct  ptxIoTRd_BitRates
 Available higher bitrate identifiers. More...
 
struct  ptxIoTRd_HBRConfig_Int
 Available higher bitrates in Rx- and Tx-direction. More...
 
struct  ptxIoTRd_HBRConfig
 Higher bitrate configuration. More...
 
struct  ptxIoTRd_DiscConfigTypeFPollCmdParams
 Custom Type-F Polling Command Parameters. More...
 
struct  ptxIoTRd_DiscConfig
 Configuration for RF-Discovery Loop. More...
 
struct  ptxIoTRd_CardAParams
 RF-Technology Type-A Card Parameters. More...
 
struct  ptxIoTRd_CardBParams
 RF-Technolgy Type-B Card Parameters. More...
 
struct  ptxIoTRd_CardFParams
 RF-Technolgy Type-F Card Parameters. More...
 
struct  ptxIoTRd_CardVParams
 RF-Technolgy Type-V Card Parameters. More...
 
struct  ptxIoTRd_CardExtensionParams
 RF-Technolgy Extension Card Parameters (Prototype/RFU) More...
 
union  ptxIoTRd_CardTechParams
 General Card RF-Technology specific Parameters. More...
 
struct  ptxIoTRd_SupportedRFProt
 Card Supported RF-Protocols. More...
 
struct  ptxIoTRd_CardParams
 General Card Parameters (=> Card Registry Entry) More...
 
struct  ptxIoTRd_CardRegistry
 Card Registry structure. More...
 
struct  ptxIoTRd_RfMsg
 Rf Message Registry structure. More...
 
struct  ptxIoTRd_Extension
 Extension Prototype (RFU): Extension Component Structure. More...
 
struct  ptxIoTRd
 IOT Reader Main Structure (Context). More...
 

Macros

#define PTX_IOTRD_MAX_SUPPORTED_DEVICES   (uint8_t)50
 
#define PTX_IOTRD_MAX_SUPPORTED_RF_PROTOCOLS   (uint8_t)4
 
#define PTX_IOTRD_TECH_A_SENSRES_MAX_SIZE   (uint8_t)2
 
#define PTX_IOTRD_TECH_A_NFCID1_MAX_SIZE   (uint8_t)10
 
#define PTX_IOTRD_TECH_B_SENSB_MAX_SIZE   (uint8_t)13
 
#define PTX_IOTRD_TECH_F_SENSF_MAX_SIZE   (uint8_t)20
 
#define PTX_IOTRD_TECH_V_UID_MAX_SIZE   (uint8_t)8
 
#define PTX_IOTRD_TECH_EXT_PARAM_MAX_SIZE   (uint8_t)32
 
#define PTX_IOTRD_PROT_ISO_DEP_ATS_MAX_SIZE   (uint8_t)21
 
#define PTX_IOTRD_PROT_ISO_DEP_ATTRIB_RES_MAX_SIZE   (uint8_t)16
 
#define PTX_IOTRD_PROT_NFC_DEP_ATR_RES_MAX_SIZE   (uint8_t)65
 
#define PTX_IOTRD_HIGH_LEVEL_PROT_MAX_SIZE   PTX_IOTRD_PROT_NFC_DEP_ATR_RES_MAX_SIZE
 
#define PTX_IOTRD_RF_BAILOUT_TECH_A   (uint8_t)1
 
#define PTX_IOTRD_RF_BAILOUT_TECH_B   (uint8_t)2
 
#define PTX_IOTRD_RF_BAILOUT_TECH_F   (uint8_t)4
 
#define PTX_IOTRD_MAX_RF_CONFIG_TLVS   (10u)
 

Typedefs

typedef enum ptxIoTRd_RevisionType ptxIoTRd_RevisionType_t
 NSC Revision-Info Types.
 
typedef enum ptxIoTRd_ChipConfigID ptxIoTRd_ChipConfigID_t
 Chip RF- and System-Configuration Identifiers.
 
typedef enum ptxIoTRd_SysInfoType ptxIoTRd_SysInfoType_t
 NSC System-Info Types.
 
typedef struct ptxIoTRd_ChipConfig ptxIoTRd_ChipConfig_t
 Chip RF- and System-Configuration Identifiers.
 
typedef struct ptxIoTRd_ComInterface_Params ptxIoTRd_ComInterface_Params_t
 Parameters for Communication/Host Interface Initialization.
 
typedef struct ptxIoTRd_TempSense_Params ptxIoTRd_TempSense_Params_t
 Parameters for Temperature Sensor Initialization.
 
typedef enum ptxIoTRd_ProtSupply ptxIoTRd_ProtSupply_t
 External Protection Circuitry Parameters (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef enum ptxIoTRd_ProtAttenuation ptxIoTRd_ProtAttenuation_t
 External Protection Attenuation Parameters (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef enum ptxIoTRd_ProtType ptxIoTRd_ProtType_t
 External Protection Type Parameters (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef struct ptxIoTRd_ProtILimiterSettings ptxIoTRd_ProtILimiterSettings_t
 External Protection Limiter Parameters (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef struct ptxIoTRd_ProtISensorSettings ptxIoTRd_ProtISensorSettings_t
 External Current Sensor Parameters (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef union ptxIoTRd_ProtSettings ptxIoTRd_ProtSettings_t
 External Protection Settings (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef struct ptxIoTRd_Protection_Params ptxIoTRd_Protection_Params_t
 External Protection Parameters (WLC only, to be ignored for stand-alone IoT-operation).
 
typedef struct ptxIoTRd_InitPars ptxIoTRd_InitPars_t
 Parameters for IoTRd Initialization.
 
typedef struct ptxIoTRd_BitRates ptxIoTRd_BitRates_t
 Available higher bitrate identifiers.
 
typedef struct ptxIoTRd_HBRConfig_Int ptxIoTRd_HBRConfig_Int_t
 Available higher bitrates in Rx- and Tx-direction.
 
typedef struct ptxIoTRd_HBRConfig ptxIoTRd_HBRConfig_t
 Higher bitrate configuration.
 
typedef enum ptxIoTRd_CardRFTechType ptxIoTRd_CardRFTechType_t
 Card RF-Technology Type.
 
typedef enum ptxIoTRd_CardProtocol ptxIoTRd_CardProtocol_t
 Card RF-Protocol Type.
 
typedef struct ptxIoTRd_DiscConfigTypeFPollCmdParams ptxIoTRd_DiscConfigTypeFPollCmdParams_t
 Custom Type-F Polling Command Parameters.
 
typedef struct ptxIoTRd_DiscConfig ptxIoTRd_DiscConfig_t
 Configuration for RF-Discovery Loop.
 
typedef struct ptxIoTRd_CardAParams ptxIoTRd_CardAParams_t
 RF-Technology Type-A Card Parameters.
 
typedef struct ptxIoTRd_CardBParams ptxIoTRd_CardBParams_t
 RF-Technolgy Type-B Card Parameters.
 
typedef struct ptxIoTRd_CardFParams ptxIoTRd_CardFParams_t
 RF-Technolgy Type-F Card Parameters.
 
typedef struct ptxIoTRd_CardVParams ptxIoTRd_CardVParams_t
 RF-Technolgy Type-V Card Parameters.
 
typedef struct ptxIoTRd_CardExtensionParams ptxIoTRd_CardExtensionParams_t
 RF-Technolgy Extension Card Parameters (Prototype/RFU)
 
typedef union ptxIoTRd_CardTechParams ptxIoTRd_CardTechParams_t
 General Card RF-Technology specific Parameters.
 
typedef enum ptxIoTRd_StatusType ptxIoTRd_StatusType_t
 Generic Status / State Identifier.
 
typedef struct ptxIoTRd_SupportedRFProt ptxIoTRd_SupportedRFProt_t
 Card Supported RF-Protocols.
 
typedef struct ptxIoTRd_CardParams ptxIoTRd_CardParams_t
 General Card Parameters (=> Card Registry Entry)
 
typedef struct ptxIoTRd_CardRegistry ptxIoTRd_CardRegistry_t
 Card Registry structure.
 
typedef enum ptxIoTRd_RfMsgState ptxIoTRd_RfMsgState_t
 Rf Message State.
 
typedef enum ptxIoTRd_CheckPresType ptxIoTRd_CheckPresType_t
 Type of Check Presence Mechanism.
 
typedef enum ptxIoTRd_RSSI_Mode ptxIoTRd_RSSI_Mode_t
 RSSI Mode.
 
typedef struct ptxIoTRd_RfMsg ptxIoTRd_RfMsg_t
 Rf Message Registry structure.
 
typedef ptxStatus_t(* pExtProcessNTF_t) (void *extCtx, void *iotRdComp, void *nscEvent)
 Extension Prototype (RFU): Handler for NTF Processing at API-level.
 
typedef ptxStatus_t(* pExtActivateCMD_t) (void *extCtx, void *iotRdComp, ptxIoTRd_CardParams_t *cardParams, ptxIoTRd_CardProtocol_t protocol)
 Extension Prototype (RFU): Handler for Activate-/Select-Command Processing at API-level.
 
typedef struct ptxIoTRd_Extension ptxIoTRd_Extension_t
 Extension Prototype (RFU): Extension Component Structure.
 
typedef struct ptxIoTRd ptxIoTRd_t
 IOT Reader Main Structure (Context).
 

Enumerations

enum  ptxIoTRd_RevisionType {
  RevInfo_C_Stack , RevInfo_Local_Changes , RevInfo_DFY_Code , RevInfo_DFY_Toolchain ,
  RevInfo_ChipID , RevInfo_ProductID
}
 NSC Revision-Info Types.
 
enum  ptxIoTRd_ChipConfigID {
  RF_Wavebank_0 , RF_Wavebank_1 , RF_Wavebank_2 , RF_Wavebank_3 ,
  RF_Wavebank_4 , RF_Wavebank_5 , RF_Wavebank_6 , RF_Wavebank_7 ,
  RF_Wavebank_8 , RF_Wavebank_9 , RF_Wavebank_10 , RF_Wavebank_11 ,
  RF_Wavebank_12 , RF_Wavebank_13 , RF_Wavebank_14 , RF_Wavebank_15 ,
  RF_Wavebank_16 , RF_Wavebank_17 , RF_Wavebank_18 , RF_Wavebank_19 ,
  RF_Misc , RF_PollA106 , RF_PollA212 , RF_PollA424 ,
  RF_PollA848 , RF_PollB106 , RF_PollB212 , RF_PollB424 ,
  RF_PollB848 , RF_PollF212 , RF_PollF424 , RF_PollV ,
  RF_Listen , RF_LAST_RF_CONFIG_ENTRY , SYS_ThermalThreshold = 100 , SYS_OvercurrentThreshold ,
  SYS_ConClockSrc , SYS_ConVarLBS , SYS_ConNHost , SYS_ConNHosCE
}
 Chip RF- and System-Configuration Identifiers.
 
enum  ptxIoTRd_SysInfoType { SysInfo_VDPA_Calibration_Result }
 NSC System-Info Types.
 
enum  ptxIoTRd_ProtSupply { SupplyPad_GPIO5 = 0x00 , SupplyPad_ATEST3 = 0x40 }
 External Protection Circuitry Parameters (WLC only, to be ignored for stand-alone IoT-operation). More...
 
enum  ptxIoTRd_ProtAttenuation { Attenuation_Off = 0x00 , Attenuation_03 = 0x10 , Attenuation_09 = 0x30 }
 External Protection Attenuation Parameters (WLC only, to be ignored for stand-alone IoT-operation). More...
 
enum  ptxIoTRd_ProtType { ProtType_None = 0x00 , ProtType_CurrentSensor = 0x01 , ProtType_CurrentLimiter = 0x02 }
 External Protection Type Parameters (WLC only, to be ignored for stand-alone IoT-operation). More...
 
enum  ptxIoTRd_CardRFTechType {
  Tech_TypeA = 0 , Tech_TypeB = 1 , Tech_TypeF = 2 , Tech_TypeV = 6 ,
  Tech_TypeExtension = 10
}
 Card RF-Technology Type.
 
enum  ptxIoTRd_CardProtocol {
  Prot_Undefined = 0 , Prot_T2T = 2 , Prot_T3T = 3 , Prot_ISODEP = 4 ,
  Prot_NFCDEP = 5 , Prot_T5T = 6 , Prot_Extension = 10
}
 Card RF-Protocol Type.
 
enum  ptxIoTRd_StatusType {
  StatusType_System , StatusType_Discover , StatusType_DeactivateSleep , StatusType_LastRFError ,
  StatusType_LPCDNtfCounter , StatusType_Lpcd
}
 Generic Status / State Identifier.
 
enum  ptxIoTRd_RfMsgState {
  RfMsg_NotReceived , RfMsg_RfMsg_Rcv , RfMsg_RfMsg_Chained_Rcv , RfMsg_RfError ,
  RfMsg_RfErrorTimeOut , RfMsg_CtrlAck , RfMsg_CtrlAttCmd , RfMsg_RfClt
}
 Rf Message State.
 
enum  ptxIoTRd_CheckPresType { PresCheck_A , PresCheck_B }
 Type of Check Presence Mechanism. More...
 
enum  ptxIoTRd_RSSI_Mode { RSSI_Mode_Enabled , RSSI_Mode_Disabled }
 RSSI Mode. More...
 

Functions

ptxStatus_t ptxIoTRd_InitNSC (ptxIoTRd_t *iotRd, ptxIoTRd_ComInterface_Params_t *initParams)
 Initializes the NSC component.
 
ptxStatus_t ptxIoTRd_Init (ptxIoTRd_t *iotRd, ptxIoTRd_InitPars_t *initParams)
 Initialize the IoT Reader Component and the PTX1K.
 
ptxStatus_t ptxIoTRd_Initiate_Discovery (ptxIoTRd_t *iotRd, ptxIoTRd_DiscConfig_t *discConfig)
 Initiate RF-Discovery according to NFC-Forum.
 
ptxStatus_t ptxIoTRd_Update_ChipConfig (ptxIoTRd_t *iotRd, uint8_t nrConfigs, ptxIoTRd_ChipConfig_t *configParams)
 Updates the RF- and System-Configuration parameters of the NFC hardware.
 
ptxStatus_t ptxIoTRd_ConfigHBR (ptxIoTRd_t *iotRd, ptxIoTRd_HBRConfig_t *configParams)
 Configures HBR.
 
ptxStatus_t ptxIoTRd_Get_Revision_Info (ptxIoTRd_t *iotRd, ptxIoTRd_RevisionType_t revisionType, uint32_t *revisionInfo)
 Get various revisions of system (C-Stack, DFY-Code/-Toolchain, Chip-ID, Local changes, Product-ID etc.).
 
ptxStatus_t ptxIoTRd_Get_Card_Registry (ptxIoTRd_t *iotRd, ptxIoTRd_CardRegistry_t **cardRegistry)
 Access the internal card registry.
 
ptxStatus_t ptxIoTRd_Activate_Card (ptxIoTRd_t *iotRd, ptxIoTRd_CardParams_t *cardParams, ptxIoTRd_CardProtocol_t protocol)
 Activates a specific card.
 
ptxStatus_t ptxIoTRd_Data_Exchange (ptxIoTRd_t *iotRd, uint8_t *tx, uint32_t txLength, uint8_t *rx, uint32_t *rxLength, uint32_t msAppTimeout)
 Exchange data with an already activated card.
 
ptxStatus_t ptxIoTRd_Bits_Exchange_Mode (ptxIoTRd_t *iotRd, uint8_t enable)
 Enable or disable Bits Exchange Option.
 
ptxStatus_t ptxIoTRd_Bits_Exchange (ptxIoTRd_t *iotRd, uint8_t *tx, uint8_t *txPar, size_t txLength, uint8_t *rx, uint8_t *rxPar, size_t *rxLength, size_t *numTotBits, uint32_t msTimeout)
 Exchanges Type-A RF-technology aligned raw RF bit-streams in state "DATA EXCHANGE" based on Cards / Tags supporting the T2T protocol.
 
ptxStatus_t ptxIoTRd_RF_PresenceCheck (ptxIoTRd_t *iotRd, ptxIoTRd_CheckPresType_t presCheckType)
 Check the presence of an activated Card.
 
ptxStatus_t ptxIoTRd_T5T_IsolatedEoF (ptxIoTRd_t *iotRd, uint8_t *rx, uint32_t *rxLength, uint32_t msAppTimeout)
 This function sends EoF command to a T5T activated card and waits for an answer.
 
ptxStatus_t ptxIoTRd_T3T_SENSFRequest (ptxIoTRd_t *iotRd, uint16_t systemCode, uint8_t requestCode, uint8_t tsn, uint8_t *rx, uint32_t *rxLength, uint32_t msAppTimeout)
 This function sends EoF command to a T3T activated card and waits for an answer.
 
ptxStatus_t ptxIoTRd_Reader_Deactivation (ptxIoTRd_t *iotRd, uint8_t deactivationType)
 Perform generic Reader deactivation.
 
ptxStatus_t ptxIoTRd_Set_Power_Mode (ptxIoTRd_t *iotRd, uint8_t newPowerMode)
 Set reader power mode.
 
ptxStatus_t ptxIoTRd_Get_System_Info (ptxIoTRd_t *iotRd, ptxIoTRd_SysInfoType_t infoType, uint8_t *infoBuffer, uint8_t *infoBufferLength)
 Get System-internal Information.
 
ptxStatus_t ptxIoTRd_SWReset (ptxIoTRd_t *iotRd)
 SW Reset.
 
ptxStatus_t ptxIoTRd_Deinit (ptxIoTRd_t *iotRd)
 Close the IoT Reader Component.
 
ptxStatus_t ptxIoTRd_Get_Status_Info (ptxIoTRd_t *iotRd, ptxIoTRd_StatusType_t statusType, uint8_t *statusInfo)
 Get various status- and state-information.
 
ptxStatus_t ptxIoTRd_TempSensor_Calibration (ptxIoTRd_t *iotRd, uint8_t Tambient, uint8_t *Tshutdown)
 Perform PTX1K integrated temperature sensor calibration and calculate calibrated temperature shutdown temperature. The outcome of this process is the calibrated temperature shutdown temperature value, returned in Tshutdown parameter. This value is used in every further call to ptxIoTRd_Init_NSC().
 
ptxStatus_t ptxIoTRd_Set_RSSI_Mode (ptxIoTRd_t *iotRd, ptxIoTRd_RSSI_Mode_t rssiMode, uint8_t *rssiRefreshPeriodInt)
 This function puts the system / stack into RSSI-mode or deactivates the RSSI-mode.
 
ptxStatus_t ptxIoTRd_Get_RSSI_Value (ptxIoTRd_t *iotRd, uint16_t *rssiValue)
 This function reads the current RSSI-value.
 
ptxStatus_t ptxIoTRd_Register_Extension (ptxIoTRd_t *iotRd, uint8_t extensionID, ptxIoTRd_Extension_t *extension)
 Register an IoT-Extension (Prototype/RFU).
 
ptxStatus_t ptxIoTRd_DeRegister_Extension (ptxIoTRd_t *iotRd, uint8_t extensionID)
 De-Register an IoT-Extension (Prototype/RFU).
 

RF-Discovery status values. Returned by ptxIoTRd_Get_Status_Info(Discover).

#define RF_DISCOVER_STATUS_NO_CARD   (uint8_t)0
 
#define RF_DISCOVER_STATUS_CARD_ACTIVE   (uint8_t)1
 
#define RF_DISCOVER_STATUS_DISCOVER_RUNNING   (uint8_t)2
 
#define RF_DISCOVER_STATUS_DISCOVER_DONE   (uint8_t)3
 
#define RF_DISCOVER_STATUS_LISTEN_A   (uint8_t)4
 
#define RF_DISCOVER_STATUS_DISCOVER_UNDEFINED   (uint8_t)0xFF
 

LPCD mechanism state (used for WLC-Stacks, alternatively available via \ref ptxIoTRd_Get_Status_Info).

#define RF_LPCD_STATUS_NO_DEVICE   (uint8_t)0
 
#define RF_LPCD_STATUS_DEVICE_FOUND   (uint8_t)1
 

Length of the Rf Message Buffer.

#define PTX_IOTRD_RF_MSG_MAX_SIZE   (512U)
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_IDLE   (uint8_t)0
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_DISCOVER   (uint8_t)1
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_SLEEP   (uint8_t)2
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_SLEEP_NON_BLOCKING   (uint8_t)3
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_NO_RF_RESET   (uint8_t)4
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_IDLE_PROTOCOL   (uint8_t)5
 
#define PTX_IOTRD_RF_DEACTIVATION_TYPE_DISCOVER_PROTOCOL   (uint8_t)6
 
#define PTX_IOTRD_RF_DEACTIVATION_SLEEP_ONGOING   (uint8_t)0
 
#define PTX_IOTRD_RF_DEACTIVATION_SLEEP_DONE   (uint8_t)1
 

Generic Defines (independent of Product Type)

#define PTX_SYSTEM_STATUS_OK   (uint8_t)0
 
#define PTX_SYSTEM_STATUS_ERR_OVERCURRENT   (uint8_t)1
 
#define PTX_SYSTEM_STATUS_ERR_TEMPERATURE   (uint8_t)2
 

Defines of possible RF error codes.

#define PTX_RF_ERROR_NTF_CODE_NO_ERROR   (uint8_t)0x00
 
#define PTX_RF_ERROR_NTF_CODE_UNKNOWN_ERROR   (uint8_t)0xFF
 
#define PTX_RF_ERROR_NTF_CODE_WARNING_PA_OVERCURRENT_LIMIT   (uint8_t)0x09
 
#define PTX_RF_ERROR_NTF_CODE_ERR_EMV_COLL   (uint8_t)0x11
 
#define PTX_RF_ERROR_NTF_CODE_ERR_TIMEOUT   (uint8_t)0x12
 
#define PTX_RF_ERROR_NTF_CODE_ERR_TRANSMISSION   (uint8_t)0x13
 
#define PTX_RF_ERROR_NTF_CODE_ERR_PROTOCOL   (uint8_t)0x14
 

Hardware Product-IDs

#define PTX_HW_PRODUCT_ID_PTX100X   (uint8_t)0x00
 
#define PTX_HW_PRODUCT_ID_PTX105X   (uint8_t)0x01
 
#define PTX_HW_PRODUCT_ID_PTX130X   (uint8_t)0x02
 

Platform-dependent I2C speeds/bitrates (Attention: Bitrates highly dependent on the target system and might require adaption!)

#define PTX_IOTRD_HOST_SPEED_I2C_100000   (100000UL)
 
#define PTX_IOTRD_HOST_SPEED_I2C_400000   (400000UL)
 
#define PTX_IOTRD_HOST_SPEED_I2C_1000000   (1000000UL)
 
#define PTX_IOTRD_HOST_SPEED_I2C_3400000   (3400000UL)
 
#define PTX_IOTRD_HOST_SPEED_I2C_MAX   PTX_IOTRD_HOST_SPEED_I2C_3400000
 

Platform-dependent UART speeds/bitrates (Attention: Bitrates highly dependent on the target system and might require adaption!)

#define PTX_IOTRD_HOST_SPEED_UART_9600   (9600UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_14400   (14400UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_19200   (19200UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_28800   (28800UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_38400   (38400UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_57600   (57600UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_115200   (115200UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_230400   (230400UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_460800   (460800UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_921600   (921600UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_1843200   (1843200UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_3000000   (3000000UL)
 
#define PTX_IOTRD_HOST_SPEED_UART_MAX   PTX_IOTRD_HOST_SPEED_UART_3000000
 

Platform-dependent SPI speeds/bitrates (Attention: Bitrates highly dependent on the target system and might require adaption!)

#define PTX_IOTRD_HOST_SPEED_SPI_1M   (1000000UL)
 
#define PTX_IOTRD_HOST_SPEED_SPI_5M   (5000000UL)
 
#define PTX_IOTRD_HOST_SPEED_SPI_10M   (10000000UL)
 
#define PTX_IOTRD_HOST_SPEED_SPI_MAX   PTX_IOTRD_HOST_SPEED_SPI_10M
 

API Extension Definitions

#define PTX_IOTRD_MAX_EXTENSIONS   (1u)
 

Detailed Description

Macro Definition Documentation

◆ PTX_HW_PRODUCT_ID_PTX100X

#define PTX_HW_PRODUCT_ID_PTX100X   (uint8_t)0x00

Product ID for PTX100x series

◆ PTX_HW_PRODUCT_ID_PTX105X

#define PTX_HW_PRODUCT_ID_PTX105X   (uint8_t)0x01

Product ID for PTX105x series

◆ PTX_HW_PRODUCT_ID_PTX130X

#define PTX_HW_PRODUCT_ID_PTX130X   (uint8_t)0x02

Product ID for PTX130x series

◆ PTX_IOTRD_HIGH_LEVEL_PROT_MAX_SIZE

#define PTX_IOTRD_HIGH_LEVEL_PROT_MAX_SIZE   PTX_IOTRD_PROT_NFC_DEP_ATR_RES_MAX_SIZE

max. General Length of protocol parameter

◆ PTX_IOTRD_HOST_SPEED_I2C_100000

#define PTX_IOTRD_HOST_SPEED_I2C_100000   (100000UL)

I2C Standard (100 kHz).

◆ PTX_IOTRD_HOST_SPEED_I2C_1000000

#define PTX_IOTRD_HOST_SPEED_I2C_1000000   (1000000UL)

I2C Fast-Mode-Plus (up to 1 MHz).

◆ PTX_IOTRD_HOST_SPEED_I2C_3400000

#define PTX_IOTRD_HOST_SPEED_I2C_3400000   (3400000UL)

I2C High-Speed-Mode (up to 3.4 MHz).

◆ PTX_IOTRD_HOST_SPEED_I2C_400000

#define PTX_IOTRD_HOST_SPEED_I2C_400000   (400000UL)

I2C Fast-Mode (400 kHz).

◆ PTX_IOTRD_HOST_SPEED_I2C_MAX

#define PTX_IOTRD_HOST_SPEED_I2C_MAX   PTX_IOTRD_HOST_SPEED_I2C_3400000

I2C Max. Speed/Bitrate

◆ PTX_IOTRD_HOST_SPEED_SPI_10M

#define PTX_IOTRD_HOST_SPEED_SPI_10M   (10000000UL)

SPI 10 MBit/s.

◆ PTX_IOTRD_HOST_SPEED_SPI_1M

#define PTX_IOTRD_HOST_SPEED_SPI_1M   (1000000UL)

SPI 1 MBit/s.

◆ PTX_IOTRD_HOST_SPEED_SPI_5M

#define PTX_IOTRD_HOST_SPEED_SPI_5M   (5000000UL)

SPI 5 MBit/s.

◆ PTX_IOTRD_HOST_SPEED_SPI_MAX

#define PTX_IOTRD_HOST_SPEED_SPI_MAX   PTX_IOTRD_HOST_SPEED_SPI_10M

SPI Max. Speed/Bitrate

◆ PTX_IOTRD_HOST_SPEED_UART_115200

#define PTX_IOTRD_HOST_SPEED_UART_115200   (115200UL)

UART 115200 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_14400

#define PTX_IOTRD_HOST_SPEED_UART_14400   (14400UL)

UART 14400 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_1843200

#define PTX_IOTRD_HOST_SPEED_UART_1843200   (1843200UL)

UART 1843200 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_19200

#define PTX_IOTRD_HOST_SPEED_UART_19200   (19200UL)

UART 19200 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_230400

#define PTX_IOTRD_HOST_SPEED_UART_230400   (230400UL)

UART 230400 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_28800

#define PTX_IOTRD_HOST_SPEED_UART_28800   (28800UL)

UART 28800 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_3000000

#define PTX_IOTRD_HOST_SPEED_UART_3000000   (3000000UL)

UART 3000000 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_38400

#define PTX_IOTRD_HOST_SPEED_UART_38400   (38400UL)

UART 38400 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_460800

#define PTX_IOTRD_HOST_SPEED_UART_460800   (460800UL)

UART 460800 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_57600

#define PTX_IOTRD_HOST_SPEED_UART_57600   (57600UL)

UART 57600 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_921600

#define PTX_IOTRD_HOST_SPEED_UART_921600   (921600UL)

UART 921600 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_9600

#define PTX_IOTRD_HOST_SPEED_UART_9600   (9600UL)

UART 9600 Baud.

◆ PTX_IOTRD_HOST_SPEED_UART_MAX

#define PTX_IOTRD_HOST_SPEED_UART_MAX   PTX_IOTRD_HOST_SPEED_UART_3000000

UART Max. Speed/Bitrate

◆ PTX_IOTRD_MAX_EXTENSIONS

#define PTX_IOTRD_MAX_EXTENSIONS   (1u)

Max. amount of Extensions supported in parallel

◆ PTX_IOTRD_MAX_RF_CONFIG_TLVS

#define PTX_IOTRD_MAX_RF_CONFIG_TLVS   (10u)

Max. amount of RF Config TLVs

◆ PTX_IOTRD_MAX_SUPPORTED_DEVICES

#define PTX_IOTRD_MAX_SUPPORTED_DEVICES   (uint8_t)50

Max. supported Cards / RF-Devices

◆ PTX_IOTRD_MAX_SUPPORTED_RF_PROTOCOLS

#define PTX_IOTRD_MAX_SUPPORTED_RF_PROTOCOLS   (uint8_t)4

Max. supported RF-Protocols

◆ PTX_IOTRD_PROT_ISO_DEP_ATS_MAX_SIZE

#define PTX_IOTRD_PROT_ISO_DEP_ATS_MAX_SIZE   (uint8_t)21

max. Length of Type-A ISO-DEP.ATS parameter

◆ PTX_IOTRD_PROT_ISO_DEP_ATTRIB_RES_MAX_SIZE

#define PTX_IOTRD_PROT_ISO_DEP_ATTRIB_RES_MAX_SIZE   (uint8_t)16

max. Length of Type-B ISO-DEP.ATTRIB_RES parameter

◆ PTX_IOTRD_PROT_NFC_DEP_ATR_RES_MAX_SIZE

#define PTX_IOTRD_PROT_NFC_DEP_ATR_RES_MAX_SIZE   (uint8_t)65

max. Length of Type-A/F NFC-DEP.ATR_RES parameter

◆ PTX_IOTRD_RF_BAILOUT_TECH_A

#define PTX_IOTRD_RF_BAILOUT_TECH_A   (uint8_t)1

RF-Discover Parameter: Bail out after Technology A

◆ PTX_IOTRD_RF_BAILOUT_TECH_B

#define PTX_IOTRD_RF_BAILOUT_TECH_B   (uint8_t)2

RF-Discover Parameter: Bail out after Technology B

◆ PTX_IOTRD_RF_BAILOUT_TECH_F

#define PTX_IOTRD_RF_BAILOUT_TECH_F   (uint8_t)4

RF-Discover Parameter: Bail out after Technology F

◆ PTX_IOTRD_RF_DEACTIVATION_SLEEP_DONE

#define PTX_IOTRD_RF_DEACTIVATION_SLEEP_DONE   (uint8_t)1

RF-Deactivation sleep is done

◆ PTX_IOTRD_RF_DEACTIVATION_SLEEP_ONGOING

#define PTX_IOTRD_RF_DEACTIVATION_SLEEP_ONGOING   (uint8_t)0

RF-Deactivation sleep is ongoing

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_DISCOVER

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_DISCOVER   (uint8_t)1

Rf-Deactivation Type 1 - Restart RF-Discovery

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_DISCOVER_PROTOCOL

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_DISCOVER_PROTOCOL   (uint8_t)6

Rf-Deactivation Type 6 - Use protocol-specific Deactivation, RF-Discovery started afterwards

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_IDLE

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_IDLE   (uint8_t)0

Rf-Deactivation Type 0 - Turn off RF-field

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_IDLE_PROTOCOL

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_IDLE_PROTOCOL   (uint8_t)5

Rf-Deactivation Type 5 - Use protocol-specific Deactivation, IDLE afterwards

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_NO_RF_RESET

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_NO_RF_RESET   (uint8_t)4

Rf-Deactivation Type 4 - Common RF Deactivate but no Field Reset

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_SLEEP

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_SLEEP   (uint8_t)2

Rf-Deactivation Type 2 - Put remote device to sleep

◆ PTX_IOTRD_RF_DEACTIVATION_TYPE_SLEEP_NON_BLOCKING

#define PTX_IOTRD_RF_DEACTIVATION_TYPE_SLEEP_NON_BLOCKING   (uint8_t)3

Rf-Deactivation Type 3 - Put remote device to sleep (non-blocking)

◆ PTX_IOTRD_RF_MSG_MAX_SIZE

#define PTX_IOTRD_RF_MSG_MAX_SIZE   (512U)

max. Length of Rf Message.

◆ PTX_IOTRD_TECH_A_NFCID1_MAX_SIZE

#define PTX_IOTRD_TECH_A_NFCID1_MAX_SIZE   (uint8_t)10

max. Length of NFCID1 parameter

◆ PTX_IOTRD_TECH_A_SENSRES_MAX_SIZE

#define PTX_IOTRD_TECH_A_SENSRES_MAX_SIZE   (uint8_t)2

max. Length of Type-A SENS_RES parameter

◆ PTX_IOTRD_TECH_B_SENSB_MAX_SIZE

#define PTX_IOTRD_TECH_B_SENSB_MAX_SIZE   (uint8_t)13

max. Length of SENSB_RES parameter

◆ PTX_IOTRD_TECH_EXT_PARAM_MAX_SIZE

#define PTX_IOTRD_TECH_EXT_PARAM_MAX_SIZE   (uint8_t)32

max. Length of Extension Card Parameters

◆ PTX_IOTRD_TECH_F_SENSF_MAX_SIZE

#define PTX_IOTRD_TECH_F_SENSF_MAX_SIZE   (uint8_t)20

max. Length of SENSF_RES parameter

◆ PTX_IOTRD_TECH_V_UID_MAX_SIZE

#define PTX_IOTRD_TECH_V_UID_MAX_SIZE   (uint8_t)8

max. Length of UID TYPE V

◆ PTX_RF_ERROR_NTF_CODE_ERR_EMV_COLL

#define PTX_RF_ERROR_NTF_CODE_ERR_EMV_COLL   (uint8_t)0x11

RF error code. EMV_Coll error

◆ PTX_RF_ERROR_NTF_CODE_ERR_PROTOCOL

#define PTX_RF_ERROR_NTF_CODE_ERR_PROTOCOL   (uint8_t)0x14

RF error code. Protocol error.

◆ PTX_RF_ERROR_NTF_CODE_ERR_TIMEOUT

#define PTX_RF_ERROR_NTF_CODE_ERR_TIMEOUT   (uint8_t)0x12

RF error code. Timeout error

◆ PTX_RF_ERROR_NTF_CODE_ERR_TRANSMISSION

#define PTX_RF_ERROR_NTF_CODE_ERR_TRANSMISSION   (uint8_t)0x13

RF error code. Transmission error.

◆ PTX_RF_ERROR_NTF_CODE_NO_ERROR

#define PTX_RF_ERROR_NTF_CODE_NO_ERROR   (uint8_t)0x00

No error.

◆ PTX_RF_ERROR_NTF_CODE_UNKNOWN_ERROR

#define PTX_RF_ERROR_NTF_CODE_UNKNOWN_ERROR   (uint8_t)0xFF

RF error code. Unknown error

◆ PTX_RF_ERROR_NTF_CODE_WARNING_PA_OVERCURRENT_LIMIT

#define PTX_RF_ERROR_NTF_CODE_WARNING_PA_OVERCURRENT_LIMIT   (uint8_t)0x09

RF error code. PA Warning. Overcurrent limit

◆ PTX_SYSTEM_STATUS_ERR_OVERCURRENT

#define PTX_SYSTEM_STATUS_ERR_OVERCURRENT   (uint8_t)1

System Status Overcurrent error.

◆ PTX_SYSTEM_STATUS_ERR_TEMPERATURE

#define PTX_SYSTEM_STATUS_ERR_TEMPERATURE   (uint8_t)2

System Status Temperature error.

◆ PTX_SYSTEM_STATUS_OK

#define PTX_SYSTEM_STATUS_OK   (uint8_t)0

System Status OK.

◆ RF_DISCOVER_STATUS_CARD_ACTIVE

#define RF_DISCOVER_STATUS_CARD_ACTIVE   (uint8_t)1

Rf-Discover State. Card Activated

◆ RF_DISCOVER_STATUS_DISCOVER_DONE

#define RF_DISCOVER_STATUS_DISCOVER_DONE   (uint8_t)3

Rf-Discover State. Cards discover process finished

◆ RF_DISCOVER_STATUS_DISCOVER_RUNNING

#define RF_DISCOVER_STATUS_DISCOVER_RUNNING   (uint8_t)2

Rf-Discover State. Cards being discovered

◆ RF_DISCOVER_STATUS_DISCOVER_UNDEFINED

#define RF_DISCOVER_STATUS_DISCOVER_UNDEFINED   (uint8_t)0xFF

Rf-Discover State. Undefined

◆ RF_DISCOVER_STATUS_LISTEN_A

#define RF_DISCOVER_STATUS_LISTEN_A   (uint8_t)4

Rf-Discover State. Card detected in HCE

◆ RF_DISCOVER_STATUS_NO_CARD

#define RF_DISCOVER_STATUS_NO_CARD   (uint8_t)0

Rf-Discover State. No Card found in discovery loop

◆ RF_LPCD_STATUS_DEVICE_FOUND

#define RF_LPCD_STATUS_DEVICE_FOUND   (uint8_t)1

LPCD State. Device found

◆ RF_LPCD_STATUS_NO_DEVICE

#define RF_LPCD_STATUS_NO_DEVICE   (uint8_t)0

LPCD State. No device found

Typedef Documentation

◆ ptxIoTRd_DiscConfigTypeFPollCmdParams_t

Custom Type-F Polling Command Parameters.

Note: Overwriting the internal default parameters may lead to inconsistencies with NFC Forum compliance!

Enumeration Type Documentation

◆ ptxIoTRd_CheckPresType

Type of Check Presence Mechanism.

Enumerator
PresCheck_A 

Mechanism A. Presence Check. ISO-DEP NACK.

PresCheck_B 

Mechanism B. Presence Check. ISO-DEP EMPTY FRAME.

◆ ptxIoTRd_ProtAttenuation

External Protection Attenuation Parameters (WLC only, to be ignored for stand-alone IoT-operation).

Enumerator
Attenuation_Off 

Attenuation for ISensor disabled.

Attenuation_03 

Attenuation for ISensor set to 0.3.

Attenuation_09 

Attenuation for ISensor set to 0.9.

◆ ptxIoTRd_ProtSupply

External Protection Circuitry Parameters (WLC only, to be ignored for stand-alone IoT-operation).

Enumerator
SupplyPad_GPIO5 

Supply for external protection circuitry via GPIO5.

SupplyPad_ATEST3 

Supply for external protection circuitry via ATEST3.

◆ ptxIoTRd_ProtType

External Protection Type Parameters (WLC only, to be ignored for stand-alone IoT-operation).

Enumerator
ProtType_None 

External protection circuitry disabled.

ProtType_CurrentSensor 

External protection implemented via current sensor.

ProtType_CurrentLimiter 

External protection implemented via current limiter.

◆ ptxIoTRd_RSSI_Mode

RSSI Mode.

Enumerator
RSSI_Mode_Enabled 

Enable RSSI-Mode

RSSI_Mode_Disabled 

Disable RSSI-Mode

Function Documentation

◆ ptxIoTRd_Activate_Card()

ptxStatus_t ptxIoTRd_Activate_Card ( ptxIoTRd_t * iotRd,
ptxIoTRd_CardParams_t * cardParams,
ptxIoTRd_CardProtocol_t protocol )

Activates a specific card.

This function has to be used to activate / select a specific card in case multiple cards are available in the card registry.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]cardParamsPointer to Card (-parameters) to activate.
[in]protocol(RF-)Protocol to use.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Bits_Exchange()

ptxStatus_t ptxIoTRd_Bits_Exchange ( ptxIoTRd_t * iotRd,
uint8_t * tx,
uint8_t * txPar,
size_t txLength,
uint8_t * rx,
uint8_t * rxPar,
size_t * rxLength,
size_t * numTotBits,
uint32_t msTimeout )

Exchanges Type-A RF-technology aligned raw RF bit-streams in state "DATA EXCHANGE" based on Cards / Tags supporting the T2T protocol.

This function is a blocking function; It means that I will return either when a raw bitstream is received or when an Error occurs (e.g. TimeOut Error, RfError ).

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]txBuffer containing payload bytes to be sent.
[in]txParBuffer containing parity bits to be sent.
[in]txLengthLength of /ref tx and /ref txPar. Length must be the same for /ref tx and /ref txPar.
[out]rxBuffer provided by caller to be filled in with payload bytes.
[out]rxParBuffer provided by caller to be filled in with parity bits.
[in,out]rxLengthAs input parameter, capacity of /ref rx and /ref rxPar. As output parameter, bytes written on /ref rx and /ref rxPar.
[out]numTotBitsTotal number of bits processed.
[in]msTimeoutTimeOut in ms that the function is going to wait for receiving bitstream from the card.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Bits_Exchange_Mode()

ptxStatus_t ptxIoTRd_Bits_Exchange_Mode ( ptxIoTRd_t * iotRd,
uint8_t enable )

Enable or disable Bits Exchange Option.

Note
This function enables/disables the Type-A bit-exchange mode in state "DATA EXCHANGE" (sometimes also referred to as state POLL_ACTIVE). This mode can be used only for Cards / Tags which supports the RF-protocol "T2T". The bit-exchange mode works stand-alone i.e. it needs to be enabled before usage and disabled after usage - at least before the next call to /ref ptxIoTRd_Data_Exchange.
Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]enableIf 1 = enable, 0 = disable. Other value error.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_ConfigHBR()

ptxStatus_t ptxIoTRd_ConfigHBR ( ptxIoTRd_t * iotRd,
ptxIoTRd_HBRConfig_t * configParams )

Configures HBR.

This function allows to configure HBR parameters

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]configParamsPointer to configurations.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Data_Exchange()

ptxStatus_t ptxIoTRd_Data_Exchange ( ptxIoTRd_t * iotRd,
uint8_t * tx,
uint32_t txLength,
uint8_t * rx,
uint32_t * rxLength,
uint32_t msAppTimeout )

Exchange data with an already activated card.

This function is blocking function, it means that it will return either when a response is received or when the TimeOut provided elapses.

Note
In case the ISO- or NFC-DEP protocol is used, the system takes internally care of the timeout when the reader communicates with a card or remote device. In this case the caller has still to provide a meaningful value (e.g. multiple seconds). If a card reported a max. timeout of less than a second, the function will return after this timeout has expired even if the timeout parameter has been set to e.g. 5 seconds.
Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]txBuffer containing the data to send.
[in]txLengthLength of "tx".
[out]rxPointer to buffer where the APDU will be received.
[in,out]rxLengthAs input, capacity of "rx". As output, actual number of bytes written on "rx".
[in]msAppTimeoutApplication-timeout in ms that the function is going to wait for receiving data from the card.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Deinit()

ptxStatus_t ptxIoTRd_Deinit ( ptxIoTRd_t * iotRd)

Close the IoT Reader Component.

This function closes the IOT and releases the resources used. It has to be called as the last function before the stop of the library usage.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_DeRegister_Extension()

ptxStatus_t ptxIoTRd_DeRegister_Extension ( ptxIoTRd_t * iotRd,
uint8_t extensionID )

De-Register an IoT-Extension (Prototype/RFU).

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]extensionIDID of Extension to be de-registered within component.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Get_Card_Registry()

ptxStatus_t ptxIoTRd_Get_Card_Registry ( ptxIoTRd_t * iotRd,
ptxIoTRd_CardRegistry_t ** cardRegistry )

Access the internal card registry.

This function can be used to access the internal card registry to retrieve a cards detailed information.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[out]cardRegistryPointer to a pointer holding the internal card registry.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Get_Revision_Info()

ptxStatus_t ptxIoTRd_Get_Revision_Info ( ptxIoTRd_t * iotRd,
ptxIoTRd_RevisionType_t revisionType,
uint32_t * revisionInfo )

Get various revisions of system (C-Stack, DFY-Code/-Toolchain, Chip-ID, Local changes, Product-ID etc.).

Note: Chip-ID can only be called after successful execution of "ptxIoTRd_Init", otherwise ID is set to 0.

Note: Product-ID can only be called after successful execution of "ptxIoTRd_Init", otherwise ID is set to 0xFF.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]revisionTypeType of Revision.
[out]revisionInfoRevision information. Product-ID: 0x00: PTX100x 0x01: PTX105x 0x02: PTX130x 0xFF: Unknown/Invalid Product-ID Others: RFU
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Get_RSSI_Value()

ptxStatus_t ptxIoTRd_Get_RSSI_Value ( ptxIoTRd_t * iotRd,
uint16_t * rssiValue )

This function reads the current RSSI-value.

To call this function properly, the RSSI-mode needs to be enabled upfront via ptxIoTRd_Set_RSSI_Mode and disabled afterwards using the same function.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[out]rssiValueMeasured RSSI-Value
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Get_Status_Info()

ptxStatus_t ptxIoTRd_Get_Status_Info ( ptxIoTRd_t * iotRd,
ptxIoTRd_StatusType_t statusType,
uint8_t * statusInfo )

Get various status- and state-information.

This function represents a common getter-function to check the status of

  • the overall System: This status indicates whether the PTX1xxR is operational or if a critical system error like overcurrent- or temperature-error occurred. In case of an error, the system must be restarted via a call to "ptxPOS_SWReset".
  • the RF-Discovery: This status indicates whether the RF-Discovery procedure has discovered a card or if (for example) an EMV collision occurred.
  • the status of DEACTIVATE(SLEEP_NON_BLOCKING): This status indicates whether the requested halt/sleep procedure (non-blocking) is finished.
Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]statusTypeDefines type of status / state info to get.
[out]statusInfoStatus / State info.
StatusType_System (General PTX100x System-State):
0x00 = PTX1xxR Operational / OK.
0x01 = PTX1xxR Halted => Overcurrent Error.
0x02 = PTX1xxR Halted => Temperature Error.
StatusType_Discover (Status of RF-Discovery procedure):
0x00 = No card discovered
0x01 = Card found and activated
0x02 = Multiple cards found, discovery ongoing
0x03 = Multiple cards found, discovery finished - user needs to select which card to activate
StatusType_DeactivateSleep (Status of DEACTIVATE(SLEEP_NON_BLOCKING)):
0x00 = Deactivate (Sleep non-blocking) operation ongoing / not finished.
0x01 = Deactivate (Sleep non-blocking) operation finished.
StatusType_LastRFError (Last received RF-Error):
0x00 = No Error.
0xFF = Unknown Error.
0x09 = PA Overcurrent limiter activated (warning).
0x11 = RF Collision error (valid for EMVCo poll mode).
0x12 = RF Timeout error.
0x13 = RF Transmission error (CRC/Parity).
0x14 = RF Protocol error.
StatusType_LPCDNtfCounter (Number of received LPCD-Notifications):
Others = RFU.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Get_System_Info()

ptxStatus_t ptxIoTRd_Get_System_Info ( ptxIoTRd_t * iotRd,
ptxIoTRd_SysInfoType_t infoType,
uint8_t * infoBuffer,
uint8_t * infoBufferLength )

Get System-internal Information.

This function is used to retrieve system internal information (mostly related to HW-settings). Currently Supported are: a) VDPA-Calibration Result..: Number of desired calibration-cycles to be stored at infoBuffer[0] prior to call

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]infoTypeRequested type of information.
[out]infoBufferPointer to buffer where information shall be stored.
[in,out]infoBufferLengthSize of buffer (in), Length of information (out)
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Init()

ptxStatus_t ptxIoTRd_Init ( ptxIoTRd_t * iotRd,
ptxIoTRd_InitPars_t * initParams )

Initialize the IoT Reader Component and the PTX1K.

This function has to be called before any other API functions. It performs software initialization and configuration for PTX1K.

Parameters
[in]iotRdPointer to an allocated instance of the IoT-Reader component
[in]initParamsPointer to initialization parameters structure.
Returns
Status, indicating whether the operation was successful.See ptxStatus_t.

◆ ptxIoTRd_Initiate_Discovery()

ptxStatus_t ptxIoTRd_Initiate_Discovery ( ptxIoTRd_t * iotRd,
ptxIoTRd_DiscConfig_t * discConfig )

Initiate RF-Discovery according to NFC-Forum.

This function starts the RF-Discovery procedure as defined in the NFC-Forum.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]discConfigPointer to RF-Discovery structure (if set to NULL - default values will be used).
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_InitNSC()

ptxStatus_t ptxIoTRd_InitNSC ( ptxIoTRd_t * iotRd,
ptxIoTRd_ComInterface_Params_t * initParams )

Initializes the NSC component.

This initialization needs to be done early on, in order to be able to do a temperature sensor calibration independently from ptxIoTRd_Init. This function performs an initialization of the NSC interface.

Parameters
[in]iotRdPointer to an allocated instance of the IoT-Reader component
[in]initParamsPointer to an allocated instance of ptxIoTRd_ComInterface_Params_t
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Reader_Deactivation()

ptxStatus_t ptxIoTRd_Reader_Deactivation ( ptxIoTRd_t * iotRd,
uint8_t deactivationType )

Perform generic Reader deactivation.

This function performs three types of deactivation. Value 1: The Reader will automatically restart the RF-Discover procedure. Value 2: The Reader tries to put the remote Target into Sleep-state. Others: The Reader will turn off the RF-Field and move back to IDLE-state

Note: If the Reader has already successfully performed deactivation into Sleep-state (the Target is currently in Sleep-state), and this API is again called with deactivationType = Sleep, the API call shall now fail with RF Field turned off and the system turned into IDLE state.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]deactivationType1 = Restart RF-Discover, 2 = Sleep, Others = IDLE
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Register_Extension()

ptxStatus_t ptxIoTRd_Register_Extension ( ptxIoTRd_t * iotRd,
uint8_t extensionID,
ptxIoTRd_Extension_t * extension )

Register an IoT-Extension (Prototype/RFU).

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]extensionIDID of Extension to be registered within component.
[in]extensionPointer to Extension parameter structure.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_RF_PresenceCheck()

ptxStatus_t ptxIoTRd_RF_PresenceCheck ( ptxIoTRd_t * iotRd,
ptxIoTRd_CheckPresType_t presCheckType )

Check the presence of an activated Card.

Note
This function shall be called when a Card has been activated
Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]presCheckTypeType of presence check mechanism on ISO-DEP protocol. If higher protocol is not ISO-DEP this parameter is ignored.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Set_Power_Mode()

ptxStatus_t ptxIoTRd_Set_Power_Mode ( ptxIoTRd_t * iotRd,
uint8_t newPowerMode )

Set reader power mode.

This function puts the reader into one of the predefined power modes, to cut down energy consumption. Default mode is Active, which enables all the features and peripherals. In Active mode device exhibits full operability with highest power consumption. StandBy power mode is the mode with the lowest power consumption, with most of the features turned off. No RF communication possible. WakeUp from StandBy mode is possible only via communication interface.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]newPowerModePowerMode to be set: 0x00 = Active mode (WakeUp is automatically performed if device is in StandBy). 0x01 = StandBy mode.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.

◆ ptxIoTRd_Set_RSSI_Mode()

ptxStatus_t ptxIoTRd_Set_RSSI_Mode ( ptxIoTRd_t * iotRd,
ptxIoTRd_RSSI_Mode_t rssiMode,
uint8_t * rssiRefreshPeriodInt )

This function puts the system / stack into RSSI-mode or deactivates the RSSI-mode.

The function takes an optional parameter "rssiRefreshPeriod" which determines the internal refresh-rate for the RSSI-measurement according to the equation "Refresh Rate in ms = 2 ^ (rssiRefreshPeriodInt - 1). If the parameter is not used (NULL), a default value of 1 ms is used.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]rssiModeDefines type of status / state info to get.
[in]rssiRefreshPeriodIntRefresh Period Integer (Valid Range 1 - 16 or NULL (= default value of 1 ms).
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_SWReset()

ptxStatus_t ptxIoTRd_SWReset ( ptxIoTRd_t * iotRd)

SW Reset.

This function performs a Soft Reset operation and waits for the timeout to elapse as there is no response from the chip.

Note: The function ptxIoTRd_Init() needs to be called afterwards.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_T3T_SENSFRequest()

ptxStatus_t ptxIoTRd_T3T_SENSFRequest ( ptxIoTRd_t * iotRd,
uint16_t systemCode,
uint8_t requestCode,
uint8_t tsn,
uint8_t * rx,
uint32_t * rxLength,
uint32_t msAppTimeout )

This function sends EoF command to a T3T activated card and waits for an answer.

This function is blocking function, it means that it will return either when a response is received or when the TimeOut provided elapses.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]systemCodeSystem-Code.
[in]requestCodeRequest-Code.
[in]tsnTimeslot-Number.
[out]rxPointer to buffer where the APDU will be received.
[in,out]rxLengthAs input, capacity of "rx". As output, actual number of bytes written on "rx".
[in]msAppTimeoutApplication-timeout in ms that the function is going to wait for receiving data from the card.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_T5T_IsolatedEoF()

ptxStatus_t ptxIoTRd_T5T_IsolatedEoF ( ptxIoTRd_t * iotRd,
uint8_t * rx,
uint32_t * rxLength,
uint32_t msAppTimeout )

This function sends EoF command to a T5T activated card and waits for an answer.

This function is blocking function, it means that it will return either when a response is received or when the TimeOut provided elapses.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[out]rxPointer to buffer where the APDU will be received.
[in,out]rxLengthAs input, capacity of "rx". As output, actual number of bytes written on "rx".
[in]msAppTimeoutApplication-timeout in ms that the function is going to wait for receiving data from the card.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_TempSensor_Calibration()

ptxStatus_t ptxIoTRd_TempSensor_Calibration ( ptxIoTRd_t * iotRd,
uint8_t Tambient,
uint8_t * Tshutdown )

Perform PTX1K integrated temperature sensor calibration and calculate calibrated temperature shutdown temperature. The outcome of this process is the calibrated temperature shutdown temperature value, returned in Tshutdown parameter. This value is used in every further call to ptxIoTRd_Init_NSC().

The function ptxIoTRd_TempSensor_Calibration() starts Temperature offset calculation, which has to be performed in controlled environment conditions - at a defined ambient temperature (typically in production at 25°C). Offset calculation has to be done at least once for every PTX1K IC. Expected over-temperature protection threshold has to be re-calculated with that offset. This is done automatically within this function call. Temperature threshold is set in PTX1K with ptxIoTRd_Init_NSC().

RECOMMENDATION: call ptxIoTRd_TempSensor_Calibration() and store the result (compensated Tsht) for future use. Then, reuse the value in every further ptxIoTRd_Init procedure. No need to restart the whole Temperature Calibration procedure all over again.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]TambientAmbient temperature to be used in calculations. This is expected environment temperature when calibration takes place. Typically it is 25°C, but it is left to the user to decide.
[in,out]TshutdownInput: expected value of over-temperature threshold. Output: the result of sensor calibration - calibrated over-temperature threshold value.
Returns
Status, indicating whether the operation was successful.

◆ ptxIoTRd_Update_ChipConfig()

ptxStatus_t ptxIoTRd_Update_ChipConfig ( ptxIoTRd_t * iotRd,
uint8_t nrConfigs,
ptxIoTRd_ChipConfig_t * configParams )

Updates the RF- and System-Configuration parameters of the NFC hardware.

This function allows to change RF- and System-Configuration parameters at runtime. The number of RF configurations is limited to PTX_IOTRD_MAX_RF_CONFIG_TLVS. If more configurations are required, this define can be changed. Note that this will increase RAM consumption.

Parameters
[in]iotRdPointer to an initialized instance of the IoT-Reader component
[in]nrConfigsNumber of chip configurations.
[in]configParamsPointer to chip configuration structures.
Returns
Status, indicating whether the operation was successful. See ptxStatus_t.