PDM Lite driver APIs.
More...
|
| static bool | pdm_is_running (PDMLITE_Type *ptr) |
| | check whether PDM is running More...
|
| |
| static void | pdm_stop (PDMLITE_Type *ptr) |
| | stop pdm More...
|
| |
| static void | pdm_start (PDMLITE_Type *ptr) |
| | start pdm More...
|
| |
| static void | pdm_disable_channel (PDMLITE_Type *ptr, uint16_t channel_disable_mask) |
| | disable channel More...
|
| |
| static void | pdm_enable_channel (PDMLITE_Type *ptr, uint16_t capture_high_level_mask, uint16_t channel_enable_mask) |
| | enable channel More...
|
| |
| static void | pdm_disable_pdm_clock_out (PDMLITE_Type *ptr) |
| | disable pdm clock out More...
|
| |
| static void | pdm_enable_pdm_clock_out (PDMLITE_Type *ptr) |
| | enable pdm clock out More...
|
| |
| static void | pdm_config_cic (PDMLITE_Type *ptr, uint8_t sigma_delta_order, uint8_t dec_ratio, uint8_t post_scale) |
| | pdm config cic More...
|
| |
| static void | pdm_software_reset (PDMLITE_Type *ptr) |
| | pdm software reset More...
|
| |
| static void | pdm_enable_irq (PDMLITE_Type *ptr, uint8_t mask) |
| | pdm enable irq More...
|
| |
| static void | pdm_disable_irq (PDMLITE_Type *ptr, uint8_t mask) |
| | pdm disable irq More...
|
| |
| hpm_stat_t | pdm_init (PDMLITE_Type *ptr, pdm_config_t *config) |
| | pdm initialization More...
|
| |
| void | pdm_get_default_config (PDMLITE_Type *ptr, pdm_config_t *config) |
| | pdm get default config More...
|
| |
| hpm_stat_t | pdm_config_sample_rate (PDMLITE_Type *ptr, uint32_t mclk_in_hz, uint32_t sample_rate_hz) |
| | pdm config sample rate More...
|
| |
| static void | pdm_config_divider (PDMLITE_Type *ptr, uint8_t div, bool bypass) |
| | pdm config clock divider More...
|
| |
PDM Lite driver APIs.
◆ PDM_CIC_SIGMA_DELTA_ORDER_5
| #define PDM_CIC_SIGMA_DELTA_ORDER_5 (2U) |
◆ PDM_CIC_SIGMA_DELTA_ORDER_6
| #define PDM_CIC_SIGMA_DELTA_ORDER_6 (1U) |
◆ PDM_CIC_SIGMA_DELTA_ORDER_7
| #define PDM_CIC_SIGMA_DELTA_ORDER_7 (0U) |
◆ PDM_EVENT_CIC_OVERLOAD_ERROR
◆ PDM_EVENT_CIC_SAT_ERROR
◆ PDM_EVENT_OFIFO_OVERFLOW_ERROR
◆ pdm_config_t
◆ pdm_config_cic()
| static void pdm_config_cic |
( |
PDMLITE_Type * |
ptr, |
|
|
uint8_t |
sigma_delta_order, |
|
|
uint8_t |
dec_ratio, |
|
|
uint8_t |
post_scale |
|
) |
| |
|
inlinestatic |
#include <drivers/inc/hpm_pdmlite_drv.h>
pdm config cic
- Parameters
-
| [in] | ptr | PDM base address |
| [in] | sigma_delta_order | sidma-delta filter order |
| [in] | dec_ratio | Rate of down sampling |
| [in] | post_scale | output value post scale |
◆ pdm_config_divider()
| static void pdm_config_divider |
( |
PDMLITE_Type * |
ptr, |
|
|
uint8_t |
div, |
|
|
bool |
bypass |
|
) |
| |
|
inlinestatic |
#include <drivers/inc/hpm_pdmlite_drv.h>
pdm config clock divider
- Parameters
-
| [in] | ptr | PDM base address |
| [in] | div | divider value |
| [in] | bypass | true: bypass divider |
◆ pdm_config_sample_rate()
#include <drivers/inc/hpm_pdmlite_drv.h>
pdm config sample rate
- Note
- This function will calculate and configure PDM clock divider to get target sample rate. if sample rate is not supported, should adjust mclk_in_hz or change cic_dec_ratio in pdm_init() function.
- Parameters
-
| [in] | ptr | PDM base address |
| [in] | mclk_in_hz | PDM source clock |
| [in] | sample_rate_hz | target sample rate |
- Return values
-
| hpm_stat_t | status_invalid_argument or status_success |
◆ pdm_disable_channel()
| static void pdm_disable_channel |
( |
PDMLITE_Type * |
ptr, |
|
|
uint16_t |
channel_disable_mask |
|
) |
| |
|
inlinestatic |
◆ pdm_disable_irq()
| static void pdm_disable_irq |
( |
PDMLITE_Type * |
ptr, |
|
|
uint8_t |
mask |
|
) |
| |
|
inlinestatic |
◆ pdm_disable_pdm_clock_out()
◆ pdm_enable_channel()
| static void pdm_enable_channel |
( |
PDMLITE_Type * |
ptr, |
|
|
uint16_t |
capture_high_level_mask, |
|
|
uint16_t |
channel_enable_mask |
|
) |
| |
|
inlinestatic |
#include <drivers/inc/hpm_pdmlite_drv.h>
enable channel
- Parameters
-
| [in] | ptr | PDM base address |
| [in] | capture_high_level_mask | capture when PDM_CLK is high |
| [in] | channel_enable_mask | channel mask |
◆ pdm_enable_irq()
| static void pdm_enable_irq |
( |
PDMLITE_Type * |
ptr, |
|
|
uint8_t |
mask |
|
) |
| |
|
inlinestatic |
◆ pdm_enable_pdm_clock_out()
◆ pdm_get_default_config()
#include <drivers/inc/hpm_pdmlite_drv.h>
pdm get default config
- Note
- if the PDM source clock is 24.576MHz, the sample rate by default configuration is 16000Hz.
- Parameters
-
| [in] | ptr | PDM base address |
| [out] | config | pdm_config_t |
◆ pdm_init()
#include <drivers/inc/hpm_pdmlite_drv.h>
pdm initialization
- Parameters
-
| [in] | ptr | PDM base address |
| [in] | config | pdm_config_t |
- Return values
-
| hpm_stat_t | status_invalid_argument or status_success |
◆ pdm_is_running()
◆ pdm_software_reset()
◆ pdm_start()
◆ pdm_stop()