Mono Audio DAC implemented with a PWM hardware module.
This software module constructs a 16-bit DAC output using two 8-bit PWM channels combined with a resistor ladder network. The interface provides functions to configure and control this software DAC.
Functions | |
void | pwm_dac_decrease_volume (void) |
Decreases the output volume of the DAC. More... | |
void | pwm_dac_flush (void) |
Flushes the sample buffer being output to the DAC. More... | |
uint8_t | pwm_dac_get_volume (void) |
Return the current volume. More... | |
void | pwm_dac_increase_volume (void) |
Increases the output volume of the DAC. More... | |
bool | pwm_dac_is_volume_boosted (void) |
Returns the state of the boost mode of the DAC. More... | |
bool | pwm_dac_is_volume_muted (void) |
Returns the state of the mute mode of the DAC. More... | |
void | pwm_dac_mute (bool mute) |
Mute audio if mute set to true. More... | |
bool | pwm_dac_output (void *sample_buffer, size_t sample_length) |
Outputs a sample buffer to the DAC. More... | |
void | pwm_dac_set_volume (uint8_t volume) |
Set the current volume. More... | |
void | pwm_dac_setup (uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels, void(*callback)(uint32_t arg), uint32_t callback_opt, uint32_t pba_hz) |
Sets the DAC up with new settings. More... | |
void | pwm_dac_start (uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels, void(*callback)(uint32_t arg), uint32_t callback_opt, uint32_t pba_hz) |
Starts the DAC. More... | |
void | pwm_dac_stop (void) |
Stops the DAC. More... | |
void pwm_dac_decrease_volume | ( | void | ) |
Decreases the output volume of the DAC.
References pwm_dac_output_params.
void pwm_dac_flush | ( | void | ) |
Flushes the sample buffer being output to the DAC.
References pwm_dac_output_params, pwm_dac_output_sample(), PWM_DAC_PWM_CHANNEL_LSB, and PWM_DAC_PWM_CHANNEL_MSB.
Referenced by pwm_dac_stop().
uint8_t pwm_dac_get_volume | ( | void | ) |
Return the current volume.
References pwm_dac_output_params.
void pwm_dac_increase_volume | ( | void | ) |
Increases the output volume of the DAC.
References pwm_dac_output_params.
bool pwm_dac_is_volume_boosted | ( | void | ) |
Returns the state of the boost mode of the DAC.
bool pwm_dac_is_volume_muted | ( | void | ) |
Returns the state of the mute mode of the DAC.
void pwm_dac_mute | ( | bool | mute | ) |
Mute audio if mute set to true.
bool pwm_dac_output | ( | void * | sample_buffer, |
size_t | sample_length | ||
) |
Outputs a sample buffer to the DAC.
References pwm_dac_get_log2_aligned_byte_size(), pwm_dac_output_params, PWM_DAC_PWM_CHANNEL_LSB, PWM_DAC_PWM_CHANNEL_MSB, sample_buffer, and sample_length.
void pwm_dac_set_volume | ( | uint8_t | volume | ) |
Set the current volume.
References pwm_dac_output_params.
void pwm_dac_setup | ( | uint32_t | sample_rate_hz, |
uint8_t | num_channels, | ||
uint8_t | bits_per_sample, | ||
bool | swap_channels, | ||
void(*)(uint32_t arg) | callback, | ||
uint32_t | callback_opt, | ||
uint32_t | pba_hz | ||
) |
Sets the DAC up with new settings.
References bits_per_sample, callback, callback_opt, max, min, num_channels, pwm_dac_get_log2_aligned_byte_size(), PWM_DAC_GET_SAMPLE, pwm_dac_output_params, and swap_channels.
Referenced by pwm_dac_start().
void pwm_dac_start | ( | uint32_t | sample_rate_hz, |
uint8_t | num_channels, | ||
uint8_t | bits_per_sample, | ||
bool | swap_channels, | ||
void(*)(uint32_t arg) | callback, | ||
uint32_t | callback_opt, | ||
uint32_t | pba_hz | ||
) |
void pwm_dac_stop | ( | void | ) |
Stops the DAC.
References gpio_enable_gpio(), pwm_dac_flush(), pwm_dac_output_params, PWM_DAC_PWM_CHANNEL_LSB, and PWM_DAC_PWM_CHANNEL_MSB.
Referenced by pwm_dac_start().