Synergy Software Package User's Manual

RTOS-integrated DAC implementation of Audio Playback Interface. More...

Data Structures

struct  sf_audio_playback_hw_dac_instance_ctrl_t
 
struct  sf_audio_playback_hw_dac_cfg_t
 

Functions

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Open (sf_audio_playback_hw_ctrl_t *const p_api_ctrl, sf_audio_playback_hw_cfg_t const *const p_cfg)
 
ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Start (sf_audio_playback_hw_ctrl_t *const p_api_ctrl)
 
ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Stop (sf_audio_playback_hw_ctrl_t *const p_api_ctrl)
 
ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Play (sf_audio_playback_hw_ctrl_t *const p_api_ctrl, int16_t const *const p_buffer, uint32_t length)
 
ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_DataTypeGet (sf_audio_playback_hw_ctrl_t *const p_ctrl, sf_audio_playback_data_type_t *const p_data_type)
 
ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Close (sf_audio_playback_hw_ctrl_t *const p_api_ctrl)
 
ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_VersionGet (ssp_version_t *const p_version)
 

Variables

sf_audio_playback_hw_api_t g_sf_audio_playback_hw_on_sf_audio_playback_hw_dac
 

Detailed Description

RTOS-integrated DAC implementation of Audio Playback Interface.

The Audio Playback Framework DAC implementation uses a timer to generate events at the sampling frequency, and uses these events to transfer PCM samples to the DAC.

Function Documentation

◆ SF_AUDIO_PLAYBACK_HW_DAC_Close()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Close ( sf_audio_playback_hw_ctrl_t *const  p_api_ctrl)

Close open audio driver.

Return values
SSP_SUCCESSSuccessful close.
SSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
Returns
See Common Error Codes or HAL driver for other possible return codes or causes. This function calls
Note
This function is reentrant for different channels. It is not reentrant for the same channel.

Close timer driver.

Close DAC driver.

Close transfer driver.

◆ SF_AUDIO_PLAYBACK_HW_DAC_DataTypeGet()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_DataTypeGet ( sf_audio_playback_hw_ctrl_t *const  p_ctrl,
sf_audio_playback_data_type_t *const  p_data_type 
)

Provides the expected data type in the pointer p_data_type.

Return values
SSP_SUCCESSData type stored in p_data_type.
SSP_ERR_ASSERTIONThe parameter p_ctrl or p_data_type is NULL.
Note
This function is reentrant if the lower level driver functions are reentrant.

Store data type. The Synergy DAC supports only 12-bit unsigned data.

◆ SF_AUDIO_PLAYBACK_HW_DAC_Open()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Open ( sf_audio_playback_hw_ctrl_t *const  p_api_ctrl,
sf_audio_playback_hw_cfg_t const *const  p_cfg 
)

Open the DAC audio driver, including the DAC HAL driver and helper timer and transfer HAL drivers.

Return values
SSP_SUCCESSConfiguration of lower level drivers completed successfully.
SSP_ERR_ASSERTIONNull Pointer.
Returns
See Common Error Codes or HAL driver for other possible return codes or causes. This function calls
Note
This function is reentrant if the lower level driver functions are reentrant.

Open Timer driver at selected frequency

If DTC is selected, register the audio callback with the timer ISR. DTC calls activation source ISR when the transfer is complete.

Open DAC module

Open transfer module to transfer from buffer to DAC output register

Configure transfer size of driver depending upon the underlying DAC resolution

Open transfer driver

Store driver data.

Play linear ramp data to get DAC up to half the maximum output.

◆ SF_AUDIO_PLAYBACK_HW_DAC_Play()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Play ( sf_audio_playback_hw_ctrl_t *const  p_api_ctrl,
int16_t const *const  p_buffer,
uint32_t  length 
)

Play a single audio buffer by input samples to the DAC at the sampling frequency configured by the timer.

Return values
SSP_SUCCESSBuffer playback began successfully.
SSP_ERR_ASSERTIONThe parameter p_ctrl or p_buffer is NULL or length is greater than 0x10000UL.
Returns
See Common Error Codes or HAL driver for other possible return codes or causes. This function calls
Note
This function is reentrant if the lower level driver functions are reentrant.

Reset transfer.

◆ SF_AUDIO_PLAYBACK_HW_DAC_Start()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Start ( sf_audio_playback_hw_ctrl_t *const  p_api_ctrl)

Start the DAC and timer HAL drivers.

Return values
SSP_SUCCESSAudio playback hardware started successfully.
SSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
Returns
See Common Error Codes or HAL driver for other possible return codes or causes. This function calls
Note
This function is reentrant if the lower level driver functions are reentrant.

Start DAC.

Start timer.

◆ SF_AUDIO_PLAYBACK_HW_DAC_Stop()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_Stop ( sf_audio_playback_hw_ctrl_t *const  p_api_ctrl)

Stop the DAC and timer HAL drivers.

Return values
SSP_SUCCESSAudio playback hardware stopped successfully.
SSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
Returns
See Common Error Codes or HAL driver for other possible return codes or causes. This function calls
Note
This function is reentrant if the lower level driver functions are reentrant.

Stop timer.

Stop DAC.

◆ SF_AUDIO_PLAYBACK_HW_DAC_VersionGet()

ssp_err_t SF_AUDIO_PLAYBACK_HW_DAC_VersionGet ( ssp_version_t *const  p_version)

Stores the version of the firmware and API in provided pointer p_version.

Return values
SSP_ERR_ASSERTIONThe parameter p_version is NULL.
SSP_SUCCESSModule version successfully stored in p_version.
Note
This function is reentrant.

Variable Documentation

◆ g_sf_audio_playback_hw_on_sf_audio_playback_hw_dac

sf_audio_playback_hw_api_t g_sf_audio_playback_hw_on_sf_audio_playback_hw_dac

Function pointers for DAC implementation of audio playback API.