nRF5 SDK v14.0.0
Modules | Data Structures | Macros | Typedefs | Enumerations | Functions

Pulse density modulation (PDM) interface driver. More...

Modules

 PDM peripheral driver configuration
 

Data Structures

struct  nrf_drv_pdm_evt_t
 PDM event structure. More...
 
struct  nrf_drv_pdm_config_t
 PDM interface driver configuration structure. More...
 

Macros

#define NRF_PDM_MAX_BUFFER_SIZE   32767
 
#define NRF_DRV_PDM_DEFAULT_CONFIG(PIN_CLK, PIN_DIN)
 Macro for setting nrf_drv_pdm_config_t to default settings in single ended mode. More...
 

Typedefs

typedef void(* nrf_drv_pdm_event_handler_t )(nrf_drv_pdm_evt_t const *const evt)
 Handler for PDM interface ready events. More...
 

Enumerations

enum  nrf_drv_pdm_error_t {
  PDM_NO_ERROR = 0,
  PDM_ERROR_OVERFLOW = 1
}
 PDM error type.
 

Functions

ret_code_t nrf_drv_pdm_init (nrf_drv_pdm_config_t const *p_config, nrf_drv_pdm_event_handler_t event_handler)
 Function for initializing the PDM interface. More...
 
void nrf_drv_pdm_uninit (void)
 Function for uninitializing the PDM interface. More...
 
__STATIC_INLINE uint32_t nrf_drv_pdm_task_address_get (nrf_pdm_task_t task)
 Function for getting the address of a PDM interface task. More...
 
__STATIC_INLINE bool nrf_drv_pdm_enable_check ()
 Function for getting the state of the PDM interface. More...
 
ret_code_t nrf_drv_pdm_start (void)
 Function for starting PDM sampling. More...
 
ret_code_t nrf_drv_pdm_stop (void)
 Function for stopping PDM sampling. More...
 
ret_code_t nrf_drv_pdm_buffer_set (int16_t *buffer, uint16_t buffer_length)
 Function for supplying the sample buffer. More...
 

Detailed Description

Pulse density modulation (PDM) interface driver.

Macro Definition Documentation

#define NRF_DRV_PDM_DEFAULT_CONFIG (   PIN_CLK,
  PIN_DIN 
)
Value:
{ \
.pin_clk = PIN_CLK, \
.pin_din = PIN_DIN, \
.gain_l = NRF_PDM_GAIN_DEFAULT, \
.gain_r = NRF_PDM_GAIN_DEFAULT, \
.interrupt_priority = PDM_CONFIG_IRQ_PRIORITY \
}

Macro for setting nrf_drv_pdm_config_t to default settings in single ended mode.

Parameters
PIN_CLKCLK output pin.
PIN_DINDIN input pin.

Typedef Documentation

typedef void(* nrf_drv_pdm_event_handler_t)(nrf_drv_pdm_evt_t const *const evt)

Handler for PDM interface ready events.

This event handler is called on buffer request, error or when a buffer is full and ready to be processed.

Parameters
[in]evtPointer to the PDM event structure.

Function Documentation

ret_code_t nrf_drv_pdm_buffer_set ( int16_t *  buffer,
uint16_t  buffer_length 
)

Function for supplying the sample buffer.

Call this function after every buffer request event.

Parameters
[in]bufferPointer to the receive buffer. Cannot be NULL.
[in]buffer_lengthLength of the receive buffer in 16-bit words.
Return values
NRF_SUCCESSIf the buffer was applied successfully.
NRF_ERROR_BUSYIf the buffer was already supplied or the peripheral is currently being stopped.
NRF_ERROR_INVALID_STATEIf the driver was not initialized.
NRF_ERROR_INVALID_PARAMIf invalid parameters were provided.
__STATIC_INLINE bool nrf_drv_pdm_enable_check ( )

Function for getting the state of the PDM interface.

Return values
TRUEIf the PDM interface is enabled.
FALSEIf the PDM interface is disabled.
ret_code_t nrf_drv_pdm_init ( nrf_drv_pdm_config_t const *  p_config,
nrf_drv_pdm_event_handler_t  event_handler 
)

Function for initializing the PDM interface.

Parameters
[in]p_configPointer to a configuration structure. Cannot be NULL.
[in]event_handlerEvent handler provided by the user. Cannot be NULL.
Return values
NRF_SUCCESSIf initialization was successful.
NRF_ERROR_INVALID_STATEIf the driver is already initialized.
NRF_ERROR_INVALID_PARAMIf invalid parameters were specified.
ret_code_t nrf_drv_pdm_start ( void  )

Function for starting PDM sampling.

Return values
NRF_SUCCESSIf sampling was started successfully or was already in progress.
NRF_ERROR_BUSYIf a previous start/stop operation is in progress.
ret_code_t nrf_drv_pdm_stop ( void  )

Function for stopping PDM sampling.

When this function is called, the PDM interface is stopped after finishing the current frame. The event handler function might be called once more after calling this function.

Return values
NRF_SUCCESSIf sampling was stopped successfully or was already stopped before.
NRF_ERROR_BUSYIf a previous start/stop operation is in progress.
__STATIC_INLINE uint32_t nrf_drv_pdm_task_address_get ( nrf_pdm_task_t  task)

Function for getting the address of a PDM interface task.

Parameters
[in]taskTask.
Returns
Task address.
void nrf_drv_pdm_uninit ( void  )

Function for uninitializing the PDM interface.

This function stops PDM sampling, if it is in progress.


Documentation feedback | Developer Zone | Subscribe | Updated