bf0_hal_pdm.h

Header file -.

Author

Sifli software development team

Defines

__HAL_PDM_ENABLE(__HANDLE__)
__HAL_PDM_DISABLE(__HANDLE__)
__HAL_PDM_ENABLE_IT(__HANDLE__, __INTERRUPT__)
__HAL_PDM_DISABLE_IT(__HANDLE__, __INTERRUPT__)

Enums

enum PDM_StateTypeDef

HAL PDM State structures definition.

Values:

enumerator PDM_STATE_RESET

PDM not yet initialized or disabled

enumerator PDM_STATE_READY

Peripheral Initialized and ready for use

enumerator PDM_STATE_BUSY

An internal process is ongoing

enumerator PDM_STATE_TIMEOUT

Timeout state

enumerator PDM_STATE_ERROR

PDM state error

enumerator PDM_STATE_SUSPEND

PDM process is suspended

enumerator PDM_STATE_BUSY_RX
enum PDM_ErrorTypeDef

Values:

enumerator PDM_ERROR_NONE

No error

enumerator PDM_ERROR_OVERFLOW_L

Left channerl receive overflow error

enumerator PDM_ERROR_OVERFLOW_R

Right channerl receive overflow error

enumerator PDM_ERROR_DMA

DMA tansfer error

enum PDM_ModeTypeDef

Values:

enumerator PDM_MODE_ONCE

PDM stopped when reached end of buffer

enumerator PDM_MODE_LOOP

PDM wirte wrap around

enum PDM_ChannelTypeDef

Values:

enumerator PDM_CHANNEL_LEFT_ONLY

Only Left channel

enumerator PDM_CHANNEL_RIGHT_ONLY

Only Right channel

enumerator PDM_CHANNEL_STEREO

Both left&right channel

enumerator PDM_CHANNEL_STEREO_SWAP

Stereo and swap left & right channel

enum PDM_SampleRateTypeDef

Values:

enumerator PDM_SAMPLE_8KHZ

PDM sample rate 8KHz

enumerator PDM_SAMPLE_12KHZ

PDM sample rate 12KHz

enumerator PDM_SAMPLE_16KHZ

PDM sample rate 16KHz

enumerator PDM_SAMPLE_24KHZ

PDM sample rate 24KHz

enumerator PDM_SAMPLE_32KHZ

PDM sample rate 32KHz

enumerator PDM_SAMPLE_48KHZ

PDM sample rate 48KHz

enumerator PDM_SAMPLE_96KHZ

PDM sample rate 96KHz

enum PDM_ChannelDepthTypeDef

Values:

enumerator PDM_CHANNEL_DEPTH_8BIT

PDM sample channel depth 8 bits

enumerator PDM_CHANNEL_DEPTH_16BIT

PDM sample channel depth 16bits

enumerator PDM_CHANNEL_DEPTH_24BIT

PDM sample channel depth 24bits

enumerator PDM_CHANNEL_DEPTH_32BIT

PDM sample channel depth 32bits

enum PDM_ConfigureTypeDef

Values:

enumerator PDM_CFG_CHANNEL

Configure PDM channel

enumerator PDM_CFG_SAMPLERATE

Configure PDM Sample Rate

enumerator PDM_CFG_DEPTH

Configure PDM depth

Functions

HAL_StatusTypeDef HAL_PDM_Init(PDM_HandleTypeDef *hpdm)

Initialize the PDM according to the specified parameters in the PDM_InitTypeDef and initialize the associated handle.

参数:
  • hpdm – Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

HAL – status

HAL_StatusTypeDef HAL_PDM_DeInit(PDM_HandleTypeDef *hpdm)

DeInitialize the PDM peripheral.

参数:
  • hpdm – Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

HAL – status

void HAL_PDM_MspInit(PDM_HandleTypeDef *hpdm)

Initialize the PDM MSP.

参数:
  • hpdm – Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None

void HAL_PDM_MspDeInit(PDM_HandleTypeDef *hpdm)

De-Initialize the PDM MSP.

参数:
  • hpdm – Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None

HAL_StatusTypeDef HAL_PDM_Set_Gain(PDM_HandleTypeDef *hpdm, PDM_ChannelTypeDef channel, uint8_t value)

Set recieve gain.

参数:
  • hpdm – - Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

  • channel – - PDM_CHANNEL_STEREO or PDM_CHANNEL_STEREO_SWAP will set both left and right channel

  • value – - [0 ~ 255] gain value. 255 is maximum while 0 is minimum

返回:

HAL_StatusTypeDef HAL_PDM_Config(PDM_HandleTypeDef *hpdm, PDM_ConfigureTypeDef type)

Configure PDM parameters.

参数:
  • hpdm – Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

  • type – Configure mode

返回值:

HAL – status

HAL_StatusTypeDef HAL_PDM_Receive_DMA(PDM_HandleTypeDef *hpdm, uint8_t *pData, uint32_t Size)

Read PCM data from PDM module by DMA.

参数:
  • hpdm – - Pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

  • pData – - Buffer to save PCM data (Should be aligned to 4 bytes)

  • Size – - Buffer size in bytes (Should be aligned to 4 bytes)

返回:

HAL status

HAL_StatusTypeDef HAL_PDM_DMAStop(PDM_HandleTypeDef *hpdm)

Stop the DMA Transfer.

参数:
  • hpdm – pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

HAL – status

void HAL_PDM_IRQHandler(PDM_HandleTypeDef *hpdm)

General PDM interrupt handler.

参数:
  • hpdm – pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None.

void HAL_PDM_RxHalfCpltCallback(PDM_HandleTypeDef *hpdm)

Rx Half Transfer completed callback.

参数:
  • hpdm – pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None

void HAL_PDM_RxCpltCallback(PDM_HandleTypeDef *hpdm)

Rx Transfer completed callback.

参数:
  • hpdm – pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None

void HAL_PDM_ErrorCallback(PDM_HandleTypeDef *hpdm)

PDM error callback.

参数:
  • hpdm – pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None

void HAL_PDM_AbortCpltCallback(PDM_HandleTypeDef *hpdm)

PDM Abort Complete callback.

参数:
  • hpdm – pointer to a PDM_HandleTypeDef structure that contains the configuration information for the specified PDM module.

返回值:

None

struct PDM_InitTypeDef

Public Members

uint32_t Mode

Specifies the PDM wirte buffer mode. This parameter can be a value of PDM_ModeTypeDef

uint32_t Channels

Specifies the channels PDM sample. This parameter can be a value of PDM_ChannelTypeDef

uint32_t SampleRate

Specifies the channel sample rate. This parameter can be a value of PDM_SampleRateTypeDef

uint32_t ChannelDepth

Specifies each channel sample bits. This parameter can be a value of PDM_ChannelDepthTypeDef

int32_t LeftGain

Left channel gain in 0.1db

int32_t RightGain

Right channel gain in 0.1db

int32_t clkSrc

clock source, from 3.072 or from 9.6

struct PDM_HandleTypeDef

Public Members

PDM_TypeDef *Instance
PDM_InitTypeDef Init

PDM Initialize config

uint8_t *pRxBuffPtr

Pointer to PDM Rx transfer Buffer

uint16_t RxXferSize

PDM Rx Transfer size

DMA_HandleTypeDef *hdmarx

PDM Rx DMA Handle parameters

DMA_HandleTypeDef *hdmarx_r

PDM Rx right channel DMA Handle para

HAL_LockTypeDef Lock

Locking object

PDM_StateTypeDef State

PDM State code

uint32_t ErrorCode

PDM Error code