bf0_hal_audcodec.h

Header file of AUDCODEC HAL module.

Author

Sifli software development team

Attention

Defines

HAL_AUDCODEC_ERROR_NONE

No error

HAL_AUDCODEC_ERROR_TIMEOUT

Timeout error

HAL_AUDCODEC_ERROR_OVR

OVR error

HAL_AUDCODEC_ERROR_UDR

UDR error

HAL_AUDCODEC_ERROR_DMA

DMA transfer error

HAL_AUDCODEC_ERROR_UNKNOW

Unknow Error error

AUDCODEC_TX_OUT1_FIFO_UNDERF

AUDCODEC STATUS TX OUT1 FIFO UNDER FLOW

AUDCODEC_TX_OUT0_FIFO_UNDERF

AUDCODEC STATUS TX OUT0 FIFO UNDER FLOW

AUDCODEC_RX_IN_FIFO_OVERF

AUDCODEC STATUS Rx IN FIFO OVER FLOW

AUDCODEC_TX_OUT_FIFO_UNDERF

AUDCODEC STATUS TX OUT FIFO UNDER FLOW

AUDCODEC_RX1_FIFO_UNDERF

AUDCODEC STATUS Rx0 FIF1 UNDER FLOW

AUDCODEC_RX0_FIFO_UNDERF

AUDCODEC STATUS Rx0 FIFO UNDER FLOW

AUDCODEC_TX3_FIFO_OVERF

AUDCODEC STATUS Tx3 FIFO OVER FLOW

AUDCODEC_TX2_FIFO_OVERF

AUDCODEC STATUS Tx2 FIFO OVER FLOW

AUDCODEC_TX1_FIFO_OVERF

AUDCODEC STATUS Tx1 FIFO OVER FLOW

AUDCODEC_TX0_FIFO_OVERF

AUDCODEC STATUS Tx0 FIFO OVER FLOW

__HAL_AUDCODEC_DAC_ENABLE(__HANDLE__)

Enable audio codec .

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_DAC_DISABLE(__HANDLE__)

Disable the AUDCODEC .

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_DAC_CH0_DISABLE(__HANDLE__)

Disable the AUDCODEC DAC CHannel0.

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_DAC_CH1_DISABLE(__HANDLE__)

Disable the AUDCODEC DAC CHannel1.

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_ADC_ENABLE(__HANDLE__)

Enable audio prc .

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_ADC_DISABLE(__HANDLE__)

Disable the AUDCODEC .

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_ADC_CH0_DISABLE(__HANDLE__)

Disable the AUDCODEC ADC CHannel0.

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

__HAL_AUDCODEC_ADC_CH1_DISABLE(__HANDLE__)

Disable the AUDCODEC ADC CHannel1.

参数:
  • __HANDLE__ – specifies the AUDCODEC Handle.

返回值:

None

Enums

enum HAL_AUDCODEC_StateTypeDef

HAL State structures definition.

Values:

enumerator HAL_AUDCODEC_STATE_RESET

AUDCODEC not yet initialized or disabled

enumerator HAL_AUDCODEC_STATE_READY

AUDCODEC initialized and ready for use

enumerator HAL_AUDCODEC_STATE_BUSY

AUDCODEC internal process is ongoing

enumerator HAL_AUDCODEC_STATE_BUSY_TX

Data Transmission process is ongoing

enumerator HAL_AUDCODEC_STATE_BUSY_RX

Data Reception process is ongoing

enumerator HAL_AUDCODEC_STATE_PAUSE

AUDCODEC pause state: used in case of DMA

enumerator HAL_AUDCODEC_STATE_ERROR

AUDCODEC error state

enum HAL_AUDCODEC_ChannelTypeDef

AUDCODEC TX/RX BUFFER/DMA ENUM definition.

Values:

enumerator HAL_AUDCODEC_DAC_CH0

AUDCODEC DAC channel 0

enumerator HAL_AUDCODEC_DAC_CH1

AUDCODEC DAC channel 1

enumerator HAL_AUDCODEC_ADC_CH0

AUDCODEC ADC channel 0

enumerator HAL_AUDCODEC_ADC_CH1

AUDCODEC ADC channel 1

enumerator HAL_AUDCODEC_INSTANC_CNT

Total dma/buffer counter

Functions

HAL_StatusTypeDef HAL_AUDCODEC_Config_Analog_DACPath(AUDCODE_DAC_CLK_CONFIG_TYPE *cfg)
void HAL_TURN_OFF_PLL()
void HAL_AUDCODEC_Close_Analog_DACPath(void)
void HAL_AUCODEC_Refgen_Init(void)
void HAL_AUDCODEC_Config_Analog_ADCPath(AUDCODE_ADC_CLK_CONFIG_TYPE *cfg)
void HAL_AUDCODEC_Close_Analog_ADCPath(void)
HAL_StatusTypeDef HAL_AUDCODEC_Init(AUDCODEC_HandleTypeDef *hacodec)

Initializes the AUDCODEC according to the specified parameters in the AUDCODEC_InitTypeDef and create the associated handle.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_DeInit(AUDCODEC_HandleTypeDef *hacodec)

DeInitializes the AUDCODEC peripheral.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

返回值:

HAL – status

void HAL_AUDCODEC_MspInit(AUDCODEC_HandleTypeDef *hacodec)

Initializes the AUDCODEC pin setting.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

返回值:

None

void HAL_AUDCODEC_MspDeInit(AUDCODEC_HandleTypeDef *hacodec)

deunitializes the AUDCODEC pin setting.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

返回值:

None

HAL_StatusTypeDef HAL_AUDCODEC_Config_TChanel(AUDCODEC_HandleTypeDef *hacodec, int channel, AUDCODEC_DACCfgTypeDef *cfg)

Set AUDCODEC transmit channel configures.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • channel – configure channel number

  • cfg – configure parameters

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Config_RChanel(AUDCODEC_HandleTypeDef *hacodec, int channel, AUDCODEC_ADCCfgTypeDef *cfg)

Set AUDCODEC Receive configures.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • channel – configure channel number

  • cfg – configure parameters

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Clear_All_Channel(AUDCODEC_HandleTypeDef *hacodec, uint8_t ch_type_bit)

all channel disable

参数:
  • hacodec – -pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • ch_type_bit – : bit0 is dac, bit1 is adc

返回:

HAL status

HAL_StatusTypeDef HAL_AUDCODEC_Config_DACPath_Volume(AUDCODEC_HandleTypeDef *hacodec, int channel, int volume)

Configure DAC path volume.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • channel – channel 0 or 1

  • volume – configure volume -36dB~54dB, unit is 0.5db, use fix point Q15.1 format

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Config_DACPath(AUDCODEC_HandleTypeDef *hacodec, uint16_t bypass)

Bypass DAC path.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • bypass – 1:enable, 0: disable

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Mute_DACPath(AUDCODEC_HandleTypeDef *hacodec, int mute)

Configure DAC path mute.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • mute – is mute or not

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Config_ADCPath(AUDCODEC_HandleTypeDef *hacodec, AUDCODEC_ADCCfgTypeDef *cfg)

Configure ADC path.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • cfg – configure parameters

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Transmit_DMA(AUDCODEC_HandleTypeDef *hacodec, uint8_t *pData, uint32_t Size, uint32_t did)

Set AUDCODEC Transmit data with DMA mode.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • pData – data buffer

  • Size – data length need to be transmit

  • did – DMA channel index

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_Receive_DMA(AUDCODEC_HandleTypeDef *hacodec, uint8_t *pData, uint32_t Size, uint32_t did)

Set AUDCODEC Receive configures.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • pData – data buffer

  • Size – data length need to be transmit

  • did – DMA channel index

返回值:

HAL – status

HAL_StatusTypeDef HAL_AUDCODEC_DMAStop(AUDCODEC_HandleTypeDef *hacodec, uint32_t did)

Stop AUD PRC DMA.

参数:
  • hacodec – pointer to a AUDCODEC_HandleTypeDef structure that contains the configuration information for AUDCODEC module

  • did – DMA channel index

返回值:

HAL – status

void set_pll_state(uint8_t state)
uint8_t get_pll_state()
void set_pll_freq_type(uint8_t type)
uint8_t get_pll_freq_type()
int updata_pll_freq(uint8_t type)
int bf0_enable_pll(uint32_t freq, uint8_t type)
void bf0_disable_pll()
void HAL_TURN_ON_PLL()
struct AUDCODEC_DacChnlCfgTypeDef
#include <bf0_hal_audcodec.h>

AUDCODEC TX/RX channel configure structure definition.

Public Members

uint8_t clk_ana_pol
uint8_t dither_en
uint8_t dither_gain
uint8_t sinc_gain
uint8_t data_format
uint8_t fine_vol
uint8_t rough_vol
uint8_t dma_en
uint8_t dem_mode
uint8_t dout_mute
uint8_t enable
uint8_t ramp_interval
uint8_t zero_adjust_en
uint8_t ramp_mode
uint8_t ramp_en
uint32_t dc_offset
struct AUDCODEC_AdcChnlCfgTypeDef

Public Members

uint8_t sat_det_len
uint8_t sat_det_en
uint8_t data_format
uint8_t fine_vol
uint8_t rough_vol
uint8_t dma_en
uint8_t stb_inv
uint8_t hpf_coef
uint8_t hpf_bypass
uint8_t enable
struct AUDCODE_DAC_CLK_CONFIG_TYPE
#include <bf0_hal_audcodec.h>

AUDCODEC DAC clock config definition.

Public Members

uint32_t samplerate
uint8_t clk_src_sel

0:xtal 48M 1:PLL 44.1M

uint8_t clk_div
uint8_t osr_sel

0:100 1:150 2:300 4:64 5:128 6:256

uint16_t sinc_gain
uint8_t sel_clk_dac_source

0:xtal 48M 1:PLL

uint8_t diva_clk_dac
uint8_t diva_clk_chop_dac
uint8_t divb_clk_chop_dac
uint8_t diva_clk_chop_bg
uint8_t diva_clk_chop_refgen
uint8_t sel_clk_dac
struct AUDCODE_ADC_CLK_CONFIG_TYPE
#include <bf0_hal_audcodec.h>

AUDCODEC ADC clock config definition.

Public Members

uint32_t samplerate
uint8_t clk_src_sel

0:xtal 48M 1:PLL 44.1M

uint8_t clk_div
uint8_t osr_sel

0:200 1:300 2:400 3:600

uint8_t sel_clk_adc_source

0:xtal 48M 1:PLL

uint8_t sel_clk_adc
uint8_t diva_clk_adc
uint8_t fsp
struct AUDCODEC_DACCfgTypeDef
#include <bf0_hal_audcodec.h>

AUDCODEC DAC PATH configure structure definition.

Public Members

uint8_t opmode

0:audprc tx to audcode 1: mem tx to audcodec

AUDCODE_DAC_CLK_CONFIG_TYPE *dac_clk
struct AUDCODEC_ADCCfgTypeDef
#include <bf0_hal_audcodec.h>

AUDCODEC ADC PATH configure structure definition.

Public Members

uint8_t opmode
AUDCODE_ADC_CLK_CONFIG_TYPE *adc_clk
struct AUDCODEC_InitTypeDef
#include <bf0_hal_audcodec.h>

AUDCODEC Init structure definition.

Public Members

uint16_t en_dly_sel

codec enable delay count

uint8_t samplerate_index
AUDCODEC_DACCfgTypeDef dac_cfg

dac AUDCODEC DAC PATH configure

AUDCODEC_ADCCfgTypeDef adc_cfg

dac AUDCODEC ADC PATH configure

struct AUDCODEC_HandleTypeDef
#include <bf0_hal_audcodec.h>

AUDCODEC handle Structure definition.

Public Members

AUDCODEC_TypeDef *Instance

AUDCODEC registers base address

AUDCODEC_InitTypeDef Init

AUDCODEC communication parameters

AUDCODEC_DacChnlCfgTypeDef DacChnl[2]
AUDCODEC_AdcChnlCfgTypeDef AdcChnl[2]
DMA_HandleTypeDef *hdma[HAL_AUDCODEC_INSTANC_CNT]

AUDCODEC Tx/rx Channel DMA handle parameters

uint8_t *buf[HAL_AUDCODEC_INSTANC_CNT]

AUDCODEC data buffer

uint32_t dataSize[HAL_AUDCODEC_INSTANC_CNT]

AUDCODEC Data size

uint16_t bufSize

AUDCODEC Data buffer size

uint16_t channel_ref

HAL_AUDCODEC_ChannelTypeDef bitmap

HAL_LockTypeDef Lock

AUDCODEC locking object

HAL_AUDCODEC_StateTypeDef State[HAL_AUDCODEC_INSTANC_CNT]

AUDCODEC communication state

uint32_t ErrorCode

AUDCODEC Error code This parameter can be a value of AUDCODEC Error