Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_PDM_H__
53 #define __GR55xx_HAL_PDM_H__
142 #define HAL_PDM_ERROR_NONE ((uint32_t)0x00000000)
143 #define HAL_PDM_ERROR_TIMEOUT ((uint32_t)0x00000001)
144 #define HAL_PDM_ERROR_TRANSFER ((uint32_t)0x00000002)
145 #define HAL_PDM_ERROR_DMA ((uint32_t)0x00000004)
146 #define HAL_PDM_ERROR_INVALID_PARAM ((uint32_t)0x00000008)
155 #define PDM_SAMPLE_RATE_15_625K LL_PDM_SAMPLE_RATE_15_625K
156 #define PDM_SAMPLE_RATE_16K LL_PDM_SAMPLE_RATE_16K
157 #define PDM_SAMPLE_RATE_8K LL_PDM_SAMPLE_RATE_8K
166 #define PDM_MODE_LEFT LL_PDM_MODE_LEFT
167 #define PDM_MODE_RIGHT LL_PDM_MODE_RIGHT
168 #define PDM_MODE_STEREO LL_PDM_MODE_STEREO
187 #define __HAL_PDM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_PDM_STATE_RESET)
193 #define __HAL_PDM_ENABLE_CLOCK(__HANDLE__) ll_pdm_enable_clk((__HANDLE__)->p_instance)
199 #define __HAL_PDM_DISABLE_CLOCK(__HANDLE__) ll_pdm_disable_clk((__HANDLE__)->p_instance)
struct _pdm_callback pdm_callback_t
HAL PDM Callback function definition.
hal_status_t hal_pdm_right_start_dma_sg_llp(pdm_handle_t *p_pdm, uint16_t *p_data, uint32_t length, dma_sg_llp_config_t *sg_llp_config)
Start the pdm right channel transfer with dma's sg and llp.
hal_lock_t
HAL Lock structures definition.
hal_status_t hal_pdm_deinit(pdm_handle_t *p_pdm)
De-initialize the PDM peripheral.
void hal_pdm_irq_handler(pdm_handle_t *p_pdm)
Handle PDM interrupt request.
void hal_pdm_dma_blk_callback(pdm_handle_t *p_pdm)
Block transfer completed callback..
hal_pdm_state_t hal_pdm_get_state(pdm_handle_t *p_pdm)
Return the PDM handle state.
__IO hal_pdm_state_t state
void(* pdm_left_overflow_callback)(pdm_handle_t *p_pdm)
hal_status_t hal_pdm_resume_reg(pdm_handle_t *p_pdm)
Restore some registers related to PDM configuration after sleep. This function must be used in conjun...
ll_pdm_init_t pdm_init_t
PDM init structure definition.
void hal_pdm_msp_deinit(pdm_handle_t *p_pdm)
De-initialize the PDM MSP.
void hal_pdm_left_overflow_callback(pdm_handle_t *p_pdm)
Left channel data overflow callback.
void hal_pdm_dma_cplt_callback(pdm_handle_t *p_pdm)
Dma transfer completed callback..
LL DMA sg and llp config definition.
hal_pdm_state_t
HAL PDM State Enumerations definition.
hal_status_t hal_pdm_left_start_dma_sg_llp(pdm_handle_t *p_pdm, uint16_t *p_data, uint32_t length, dma_sg_llp_config_t *sg_llp_config)
Start the pdm right channel transfer with dma's sg and llp.
struct _pdm_handle pdm_handle_t
PDM handle Structure definition.
Header file containing functions prototypes of PDM LL library.
void(* pdm_right_overflow_callback)(pdm_handle_t *p_pdm)
void hal_pdm_dma_error_callback(pdm_handle_t *p_pdm)
DMA transfer error callback..
hal_status_t hal_pdm_right_start_dma(pdm_handle_t *p_pdm, uint16_t *p_data, uint32_t length)
Start the pdm right channel transfer with dma.
uint32_t hal_pdm_get_error(pdm_handle_t *p_pdm)
Return the PDM error code.
PDM handle Structure definition.
void(* pdm_dma_blk_callback)(pdm_handle_t *p_pdm)
hal_status_t hal_pdm_stereo_start_dma(pdm_handle_t *p_pdm, uint32_t *p_data, uint32_t length)
Start the pdm dual channel transfer with dma.
hal_status_t hal_pdm_abort(pdm_handle_t *p_pdm)
Abort ongoing conversion (blocking mode).
Header file containing functions prototypes of DMA HAL library.
void(* pdm_msp_init)(pdm_handle_t *p_pdm)
hal_status_t
HAL Status structures definition.
HAL PDM Callback function definition.
void hal_pdm_right_overflow_callback(pdm_handle_t *p_pdm)
Right channel data overflow callback.
hal_status_t hal_pdm_stereo_start_dma_sg_llp(pdm_handle_t *p_pdm, uint32_t *p_data, uint32_t length, dma_sg_llp_config_t *sg_llp_config)
Start the pdm dual channel transfer with dma's sg and llp.
void(* pdm_dma_error_callback)(pdm_handle_t *p_pdm)
hal_status_t hal_pdm_left_start_dma(pdm_handle_t *p_pdm, uint16_t *p_data, uint32_t length)
Start the pdm left channel transfer with dma.
LL PDM init Structure definition.
void(* pdm_msp_deinit)(pdm_handle_t *p_pdm)
void(* pdm_dma_cplt_callback)(pdm_handle_t *p_pdm)
hal_status_t hal_pdm_init(pdm_handle_t *p_pdm)
Initialize the PDM according to the specified parameters in the pdm_init_t and initialize the associa...
void hal_pdm_msp_init(pdm_handle_t *p_pdm)
Initialize the PDM MSP.
DMA handle Structure definition.
hal_status_t hal_pdm_suspend_reg(pdm_handle_t *p_pdm)
Suspend some registers related to PDM configuration before sleep.
This file contains HAL common definitions, enumeration, macros and structures definitions.