User manual
NXP Semiconductors
UM10663
NXP Reader Library User Manual
UM10663
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2013. All rights reserved.
User Manual
COMPANY PUBLIC
Rev. 1.2 — 24 July 2013
257412
25 of 47
*pAtqa: pointer to ATQA. If RequestA is successful, then 2 byte ATQA is written to this
variable.
returnValues:
PH_ERR_PROTOCOL_ERROR
- invalid response received.
PH_ERR_SUCCESS
- operation successful.
Other: depending on implementation and underlaying component.
Note:. If no answer to request is received nor any changes of field near subcarrier
detected by receiver during dedicated time, then function is aborted with timeout error.
There are two time constants defined in phpalI14443p3a_Sw_Int.h file to determine for
ATQA timeout:
PHPAL_I14443P3A_EXT_TIME_US, PHPAL_I14443P3A_SELECTION_TIME_US
.
Resulting waiting time is in microseconds and equals to sum of both the values.
2.3.4 Activate Card
- phpalI14443p3a_ActivateCard()
This function gets card into Active state, whether it was is Halt state or has not been
activated yet. After successful activation, the card may be turned into Halt state due to
intention to be handled near future use. Activate procedure is quite complex, therefore
this function calls nearly all the other functions from this chapter: RequestA or Wake up,
Anticollision, Selection. Inside this function they are integrated into powerful software tool
executing entire Activation procedure covering all the states and situations specified in
ISO/IEC14443p3.
This function performs Anti-collision and Selection operation respectively. Successful
Activation results in acquiring actual and complete UID of given card. Even if there are
more PICCs present in the range of PCD’s field, the activation function ensures just one
UID captured. If the card has been pushed to Halt state before, this function provides
Wake up command.
phStatus_t phpalI14443p3a_ActivateCard(
void * pDataParams, [In]
uint8_t * pUidIn, [In]
uint8_t bLenUidIn, [In]
uint8_t * pUidOut, [Out]
uint8_t * pLenUidOut, [Out]
uint8_t * pSak, [Out]
uint8_t * pMoreCardsAvailable ); [Out]
*pDataParams: pointer to the PAL layer data parameter structure.
UidLength
and
Uidab
are changed.
*pUidIn: pointer to UID of card to get activated. If this parameter equals NULL and there
is at least one card in range of PCD’s field, then one card will be activated – UID of a
card will captured.
bLenUidIn: number of relevant bytes of
pUidIn
array. Just 0, 4, 7, 10 are valid values:
0 – means UID is unknown, thus function begins with RequestA. At the end of function
complete UID of card should be captured.
4, 7, 10 - Wake up command is performed.
*pUidOut: pointer to complete UID of activated card.
*pLenUidOut: length of
pUidOut
. Only values 4, 7, 10 are possible.