nRF5 SDK v13.0.0
Modules | Typedefs | Enumerations | Functions
NFC Type 4 Tag HAL

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

Modules

 Hardware Abstraction Layer for NFC library. configuration
 

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...
 

Enumerations

enum  hal_nfc_event_t {
  HAL_NFC_EVENT_FIELD_ON,
  HAL_NFC_EVENT_FIELD_OFF,
  HAL_NFC_EVENT_DATA_RECEIVED,
  HAL_NFC_EVENT_DATA_TRANSMITTED,
  HAL_NFC_EVENT_FIELD_ON,
  HAL_NFC_EVENT_FIELD_OFF,
  HAL_NFC_EVENT_DATA_RECEIVED,
  HAL_NFC_EVENT_DATA_TRANSMITTED
}
 Events passed to the upper-layer callback function. More...
 
enum  hal_nfc_param_id_t {
  HAL_NFC_PARAM_ID_TESTING,
  HAL_NFC_PARAM_ID_UNKNOWN,
  HAL_NFC_PARAM_ID_TESTING,
  HAL_NFC_PARAM_FWI,
  HAL_NFC_PARAM_SELRES,
  HAL_NFC_PARAM_ID_UNKNOWN
}
 Parameter IDs for the set/get function. 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_contextContext for callback execution.
[in]eventThe event that occurred.
[in]p_dataReceived/transmitted data or NULL.
[in]data_lengthSize 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_SUCCESSThis 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]idID of the parameter to query.
[in,out]p_dataPointer to a buffer receiving the queried data.
[in,out]p_max_data_lengthSize of the buffer. It receives the required size if buffer is too small.
Return values
NRF_SUCCESSIf 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]idID of the parameter to set.
[in]p_dataPointer to the buffer containing the data to set.
[in]data_lengthSize of the buffer containing the data to set.
Return values
NRF_SUCCESSIf 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_dataThe data packet to send.
[in]data_lengthSize of the packet in bytes.
Return values
NRF_SUCCESSIf 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]callbackPointer to the callback function.
[in]p_contextContext of callback.
Return values
NRF_SUCCESSIf 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_SUCCESSIf 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_SUCCESSIf the NFC subsystem was stopped. Otherwise, an error code is returned.

Documentation feedback | Developer Zone | Subscribe | Updated