Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_PDM_H__
53 #define __GR55xx_HAL_PDM_H__
152 #define HAL_PDM_ERROR_NONE ((uint32_t)0x00000000)
153 #define HAL_PDM_ERROR_TIMEOUT ((uint32_t)0x00000001)
154 #define HAL_PDM_ERROR_TRANSFER ((uint32_t)0x00000002)
155 #define HAL_PDM_ERROR_DMA ((uint32_t)0x00000004)
156 #define HAL_PDM_ERROR_INVALID_PARAM ((uint32_t)0x00000008)
162 #define PDM_SAMPLE_RATE_15_625K LL_PDM_SAMPLE_RATE_15_625K
163 #define PDM_SAMPLE_RATE_16K LL_PDM_SAMPLE_RATE_16K
164 #define PDM_SAMPLE_RATE_8K LL_PDM_SAMPLE_RATE_8K
169 #define PDM_MODE_LEFT LL_PDM_MODE_LEFT
170 #define PDM_MODE_RIGHT LL_PDM_MODE_RIGHT
171 #define PDM_MODE_STEREO LL_PDM_MODE_STEREO
188 #define __HAL_PDM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_PDM_STATE_RESET)
194 #define __HAL_PDM_ENABLE_CLOCK(__HANDLE__) ll_pdm_enable_clk((__HANDLE__)->p_instance)
200 #define __HAL_PDM_DISABLE_CLOCK(__HANDLE__) ll_pdm_disable_clk((__HANDLE__)->p_instance)
struct _hal_pdm_callback hal_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_right_overflow_callback)(pdm_handle_t *p_pdm)
void(* pdm_dma_cplt_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...
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 PDM Callback function definition.
void(* pdm_left_overflow_callback)(pdm_handle_t *p_pdm)
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 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.
void(* pdm_dma_blk_callback)(pdm_handle_t *p_pdm)
PDM handle Structure definition.
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.
hal_status_t
HAL Status structures 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.
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.
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(* pdm_dma_error_callback)(pdm_handle_t *p_pdm)
void(* pdm_msp_init)(pdm_handle_t *p_pdm)
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.
void(* pdm_msp_deinit)(pdm_handle_t *p_pdm)
ll_pdm_init_t pdm_init_t
PDM init structure definition.