NFC Type 4 Tag HAL

nRF5 SDK v13.0.0

Hardware abstraction layer for the NFC Type 4 Tag library. More...

Typedefs

typedef void(* hal_nfc_callback_t )(void *p_context, hal_nfc_event_t event, const uint8_t *p_data, size_t data_length)
Callback from HAL_NFC layer into the upper layer. More...

Functions

ret_code_t hal_nfc_setup ( hal_nfc_callback_t callback, void *p_context)
Function for initializing the NFC layer. More...
ret_code_t hal_nfc_parameter_set ( hal_nfc_param_id_t id, void *p_data, size_t data_length)
Function for setting a HAL_NFC parameter. More...
ret_code_t hal_nfc_parameter_get ( hal_nfc_param_id_t id, void *p_data, size_t *p_max_data_length)
Function for querying a HAL_NFC parameter value. More...
ret_code_t hal_nfc_start (void)
Function for starting the NFC subsystem. More...
ret_code_t hal_nfc_send (const uint8_t *p_data, size_t data_length)
Function for sending a packet to the connected NFC reader. More...
ret_code_t hal_nfc_stop (void)
Function for stopping the NFC subsystem. More...
ret_code_t hal_nfc_done (void)
Function for releasing resources. More...

Detailed Description

Hardware abstraction layer for the NFC Type 4 Tag library.

Note
Before the NFCT peripheral enters ACTIVATED state, the HFXO must be running. To fulfill this requirement and allow other software modules to also request the HFXO, the NFC Type 4 Tag HAL uses Clock driver module.

Typedef Documentation

typedef void(* hal_nfc_callback_t)(void *p_context, hal_nfc_event_t event, const uint8_t *p_data, size_t data_length)

Callback from HAL_NFC layer into the upper layer.

If event == HAL_NFC_EVENT_DATA_RECEIVED: p_data points to the received packet. The memory belongs to the HAL_NFC layer and is guaranteed to be valid only until the callback returns.

If event == HAL_NFC_EVENT_DATA_TRANSMITTED: p_data points to the transmitted packet. The memory belongs to the application.

If event == <Other event>: p_data definition is event-specific (to be defined).

Parameters
[in] p_context Context for callback execution.
[in] event The event that occurred.
[in] p_data Received/transmitted data or NULL.
[in] data_length Size of the received/transmitted packet.

Enumeration Type Documentation

Events passed to the upper-layer callback function.

Enumerator
HAL_NFC_EVENT_FIELD_ON

Field is detected.

HAL_NFC_EVENT_FIELD_OFF

Field is lost.

HAL_NFC_EVENT_DATA_RECEIVED

Data is received.

HAL_NFC_EVENT_DATA_TRANSMITTED

Data is Transmitted.

HAL_NFC_EVENT_FIELD_ON

Field is detected.

HAL_NFC_EVENT_FIELD_OFF

Field is lost.

HAL_NFC_EVENT_DATA_RECEIVED

Data is received.

HAL_NFC_EVENT_DATA_TRANSMITTED

Data is transmitted.

Parameter IDs for the set/get function.

Enumerator
HAL_NFC_PARAM_ID_TESTING

Used for unit tests.

HAL_NFC_PARAM_ID_TESTING

Used for unit tests.

HAL_NFC_PARAM_FWI

Frame Wait Time parameter.

HAL_NFC_PARAM_SELRES

Parameter for setting the 'Protocol' bits for SEL_RES packet.

Function Documentation

ret_code_t hal_nfc_done ( void )

Function for releasing resources.

After this call returns, the callback is considered invalid and no more events will be posted to it.

Return values
NRF_SUCCESS This function always succeeds.
ret_code_t hal_nfc_parameter_get ( hal_nfc_param_id_t id ,
void * p_data ,
size_t * p_max_data_length
)

Function for querying a HAL_NFC parameter value.

The queried value will be placed into the passed data buffer. If the buffer is too small, p_max_data_length will contain the required buffer size.

Parameters
[in] id ID of the parameter to query.
[in,out] p_data Pointer to a buffer receiving the queried data.
[in,out] p_max_data_length Size of the buffer. It receives the required size if buffer is too small.
Return values
NRF_SUCCESS If the parameter was received successfully. If one of the arguments was invalid (for example, the buffer was too small), an error code is returned.
ret_code_t hal_nfc_parameter_set ( hal_nfc_param_id_t id ,
void * p_data ,
size_t data_length
)

Function for setting a HAL_NFC parameter.

This function allows to set any parameter defined as available by HAL_NFC.

Parameters
[in] id ID of the parameter to set.
[in] p_data Pointer to the buffer containing the data to set.
[in] data_length Size of the buffer containing the data to set.
Return values
NRF_SUCCESS If the parameter was set successfully. If one of the arguments was invalid (for example, wrong data length), an error code is returned.
ret_code_t hal_nfc_send ( const uint8_t * p_data ,
size_t data_length
)

Function for sending a packet to the connected NFC reader.

The provided data buffer belongs to the caller and is guaranteed to be valid until the HAL_NFC_EVENT_DATA_TRANSMITTED event is received by the callback.

Parameters
[in] p_data The data packet to send.
[in] data_length Size of the packet in bytes.
Return values
NRF_SUCCESS If the packet was sent. Otherwise, an error code is returned.
ret_code_t hal_nfc_setup ( hal_nfc_callback_t callback ,
void * p_context
)

Function for initializing the NFC layer.

This function provides a pointer to a callback function and the callback context to the NFC layer.

Parameters
[in] callback Pointer to the callback function.
[in] p_context Context of callback.
Return values
NRF_SUCCESS If the NFC layer was initialized successfully. If one of the arguments was invalid, an error code is returned.
ret_code_t hal_nfc_start ( void )

Function for starting the NFC subsystem.

After this function completes, NFC readers will be able to detect the chip.

Return values
NRF_SUCCESS If the NFC subsystem was started successfully. If the NFC subsystem could not be started, an error code is returned.
ret_code_t hal_nfc_stop ( void )

Function for stopping the NFC subsystem.

After this function returns, NFC readers will no longer be able to connect to the chip.

Return values
NRF_SUCCESS If the NFC subsystem was stopped. Otherwise, an error code is returned.