SemiDrive SSDK Appication Program Interface PTG3.0
Data Structures | Functions
sdrv_pdm.h File Reference
#include <types.h>
#include "sdrv_ckgen.h"
#include "sdrv_common.h"
#include "sdrv_dma.h"

Go to the source code of this file.

Data Structures

struct  sdrv_pdm_dma_data
 
struct  sdrv_pdm_dma_buf
 
struct  sdrv_pdm_transfer
 
struct  sdrv_pdm_params
 
struct  sdrv_pdm_stream
 
struct  sdrv_pdm_config
 
struct  sdrv_pdm
 

Functions

sdrv_pdm_status_t sdrv_pdm_init (sdrv_pdm_t *pdm, sdrv_pdm_config_t *cfg)
 
sdrv_pdm_status_t sdrv_pdm_get_default_params (sdrv_pdm_t *pdm, sdrv_pdm_params_t *params)
 
sdrv_pdm_status_t sdrv_pdm_set_params (sdrv_pdm_t *pdm, sdrv_pdm_params_t *params)
 
sdrv_pdm_status_t sdrv_pdm_create_transfer (sdrv_pdm_t *pdm, sdrv_pdm_callback callback, void *context)
 
sdrv_pdm_status_t sdrv_pdm_submit_transfer (sdrv_pdm_t *pdm, sdrv_pdm_transfer_t *transfer)
 
sdrv_pdm_status_t sdrv_pdm_start (sdrv_pdm_t *pdm)
 
sdrv_pdm_status_t sdrv_pdm_stop (sdrv_pdm_t *pdm)
 

Detailed Description

Macro Definition Documentation

◆ SDRV_PDM_CHANNELS_BYTES

#define SDRV_PDM_CHANNELS_BYTES   (SDRV_PDM_SAMPLE_WIDTH_16BITS / 8)

◆ SDRV_PDM_CHANNELS_COUNT

#define SDRV_PDM_CHANNELS_COUNT   1

◆ SDRV_PDM_DMA_BUF_TOTAL_SIZE

#define SDRV_PDM_DMA_BUF_TOTAL_SIZE    SDRV_PDM_DMA_PERIOD_SIZE *SDRV_PDM_DMA_PERIOD_COUNT

◆ SDRV_PDM_DMA_PERIOD_COUNT

#define SDRV_PDM_DMA_PERIOD_COUNT   2

◆ SDRV_PDM_DMA_PERIOD_FRAME_SIZE

#define SDRV_PDM_DMA_PERIOD_FRAME_SIZE   1024 * 4

◆ SDRV_PDM_DMA_PERIOD_SIZE

#define SDRV_PDM_DMA_PERIOD_SIZE
Value:
#define SDRV_PDM_DMA_PERIOD_FRAME_SIZE
Definition: sdrv_pdm.h:23
#define SDRV_PDM_CHANNELS_COUNT
Definition: sdrv_pdm.h:21
#define SDRV_PDM_CHANNELS_BYTES
Definition: sdrv_pdm.h:22

◆ SDRV_PDM_XFER_NUM_TRANSFERS

#define SDRV_PDM_XFER_NUM_TRANSFERS   (4U)

Typedef Documentation

◆ sdrv_pdm_callback

typedef void(* sdrv_pdm_callback) (sdrv_pdm_transfer_t *transfer, void *context, sdrv_pdm_status_t state)

◆ sdrv_pdm_channel_t

pdm channel

◆ sdrv_pdm_config_t

pdm board config

◆ sdrv_pdm_dma_buf_t

pdm dma buff descriptions

◆ sdrv_pdm_dma_data_t

pdm dma fifo descriptions

◆ sdrv_pdm_gain_t

pdm gain

◆ sdrv_pdm_params_t

pdm config params

◆ sdrv_pdm_sample_rate_t

pdm sample rate

◆ sdrv_pdm_sample_width_t

pdm sample width

◆ sdrv_pdm_status_t

pdm status

◆ sdrv_pdm_stream_t

pdm capture stream descriptions

◆ sdrv_pdm_t

typedef struct sdrv_pdm sdrv_pdm_t

pdm module descriptions

◆ sdrv_pdm_transfer_t

pdm transfer

Enumeration Type Documentation

◆ sdrv_pdm_channel

pdm channel

Enumerator
SDRV_PDM_CHANNEL_LEFT 
SDRV_PDM_CHANNEL_RIGHT 
SDRV_PDM_CHANNEL_STEREO 

◆ sdrv_pdm_gain

pdm gain

Enumerator
SDRV_PDM_GAIN_N6DB 
SDRV_PDM_GAIN_N12DB 
SDRV_PDM_GAIN_N18DB 
SDRV_PDM_GAIN_N24DB 
SDRV_PDM_GAIN_P0DB 
SDRV_PDM_GAIN_P6DB 
SDRV_PDM_GAIN_P12DB 
SDRV_PDM_GAIN_P18DB 
SDRV_PDM_GAIN_P24DB 

◆ sdrv_pdm_sample_rate

pdm sample rate

Enumerator
SDRV_PDM_SR_5512 
SDRV_PDM_SR_8000 
SDRV_PDM_SR_11025 
SDRV_PDM_SR_16000 
SDRV_PDM_SR_22050 
SDRV_PDM_SR_32000 
SDRV_PDM_SR_44100 
SDRV_PDM_SR_48000 
SDRV_PDM_SR_64000 
SDRV_PDM_SR_88200 
SDRV_PDM_SR_96000 
SDRV_PDM_SR_176400 
SDRV_PDM_SR_192000 

◆ sdrv_pdm_sample_width

pdm sample width

Enumerator
SDRV_PDM_SAMPLE_WIDTH_8BITS 
SDRV_PDM_SAMPLE_WIDTH_16BITS 
SDRV_PDM_SAMPLE_WIDTH_24BITS 
SDRV_PDM_SAMPLE_WIDTH_32BITS 

◆ sdrv_pdm_status

pdm status

Enumerator
SDRV_PDM_STATUS_SUCCESS 
SDRV_PDM_STATUS_FAIL 
SDRV_PDM_STATUS_INVALID_PARAMS 
SDRV_PDM_STATUS_OVERRUN 
SDRV_PDM_STATUS_UNDERRUN 

Function Documentation

◆ sdrv_pdm_create_transfer()

sdrv_pdm_status_t sdrv_pdm_create_transfer ( sdrv_pdm_t pdm,
sdrv_pdm_callback  callback,
void *  context 
)

sdrv_pdm_create_transfer

This function is used to create transfer and attach transfer callback

Parameters
[in]pdmsdrv pdm controller
[in]callbacksdrv pdm transfer callback function.
[in]contextsdrv pdm transfer callback param.
Returns
sdrv_pdm_status_t

◆ sdrv_pdm_get_default_params()

sdrv_pdm_status_t sdrv_pdm_get_default_params ( sdrv_pdm_t pdm,
sdrv_pdm_params_t params 
)

sdrv_pdm_get_default_params

This function is used to get pdm default params

Parameters
[in]pdmsdrv pdm controller
[out]paramssdrv pdm params
Returns
sdrv_pdm_status_t

◆ sdrv_pdm_init()

sdrv_pdm_status_t sdrv_pdm_init ( sdrv_pdm_t pdm,
sdrv_pdm_config_t cfg 
)

sdrv pdm controller initialization.

This function is used to initialize pdm module function.

Parameters
[in]pdmsdrv pdm controller
[in]cfgsdrv pdm controller configurations
Returns
sdrv_pdm_status_t

◆ sdrv_pdm_set_params()

sdrv_pdm_status_t sdrv_pdm_set_params ( sdrv_pdm_t pdm,
sdrv_pdm_params_t params 
)

sdrv_pdm_set_params

This function is used to set pdm params

Parameters
[in]pdmsdrv pdm controller
[in]paramssdrv pdm params
Returns
sdrv_pdm_status_t

◆ sdrv_pdm_start()

sdrv_pdm_status_t sdrv_pdm_start ( sdrv_pdm_t pdm)

sdrv_pdm_start

This function is used to start pdm transfer

Parameters
[in]pdmsdrv pdm controller
Returns
sdrv_pdm_status_t

◆ sdrv_pdm_stop()

sdrv_pdm_status_t sdrv_pdm_stop ( sdrv_pdm_t pdm)

sdrv_pdm_stop

This function is used to stop pdm transfer

Parameters
[in]pdmsdrv pdm controller
Returns
sdrv_pdm_status_t

◆ sdrv_pdm_submit_transfer()

sdrv_pdm_status_t sdrv_pdm_submit_transfer ( sdrv_pdm_t pdm,
sdrv_pdm_transfer_t transfer 
)

sdrv_pdm_submit_transfer

This function is used to submit transfer, which's max num is SDRV_PDM_XFER_NUM_BUFFERS

Parameters
[in]pdmsdrv pdm controller
[in]transfersdrv pdm transfer
Returns
sdrv_pdm_status_t