12static const uint8_t PCM5122_REG_PAGE_SELECT = 0x00;
13static const uint8_t PCM5122_REG_RESET = 0x01;
14static const uint8_t PCM5122_REG_POWER_CONTROL = 0x02;
15static const uint8_t PCM5122_REG_MUTE = 0x03;
16static const uint8_t PCM5122_REG_GPIO_ENABLE = 0x08;
17static const uint8_t PCM5122_REG_PLL_REF = 0x0D;
18static const uint8_t PCM5122_REG_ERROR_DETECT = 0x25;
19static const uint8_t PCM5122_REG_AUDIO_FORMAT = 0x28;
20static const uint8_t PCM5122_REG_DAC_DATA_PATH = 0x2A;
21static const uint8_t PCM5122_REG_DVOL_LEFT = 0x3D;
22static const uint8_t PCM5122_REG_DVOL_RIGHT = 0x3E;
23static const uint8_t PCM5122_REG_GPIO_OUTPUT_SELECT = 0x50;
24static const uint8_t PCM5122_GPIO_OUTPUT_SELECT_REGISTER = 0x02;
25static const uint8_t PCM5122_REG_GPIO_OUTPUT = 0x56;
26static const uint8_t PCM5122_REG_GPIO_INVERT = 0x57;
27static const uint8_t PCM5122_REG_GPIO_INPUT = 0x77;
30static const uint8_t PCM5122_REG_ANALOG_GAIN = 0x02;
33static const uint8_t PCM5122_RESET_MODULES = 0x10;
34static const uint8_t PCM5122_AUDIO_FORMAT_I2S = 0x00;
36static const uint8_t PCM5122_AUDIO_FORMAT_ALEN_16BIT = 0x00;
37static const uint8_t PCM5122_AUDIO_FORMAT_ALEN_24BIT = 0x02;
38static const uint8_t PCM5122_AUDIO_FORMAT_ALEN_32BIT = 0x03;
39static const uint8_t PCM5122_ERROR_DETECT_IGNORE_CLKHALT = (1 << 3);
40static const uint8_t PCM5122_ERROR_DETECT_DISABLE_DIV_AUTOSET = (1 << 1);
41static const uint8_t PCM5122_PLL_REF_MASK = (7 << 4);
42static const uint8_t PCM5122_PLL_REF_SOURCE_BCK = (1 << 4);
45static const uint8_t PCM5122_POWER_CONTROL_RQST = (1 << 4);
46static const uint8_t PCM5122_POWER_CONTROL_RQPD = (1 << 0);
49static const uint8_t PCM5122_ANALOG_GAIN_LAGN = (1 << 4);
50static const uint8_t PCM5122_ANALOG_GAIN_RAGN = (1 << 0);
73 void setup()
override;
This Class provides the methods to read/write bytes from/to an i2c device.
bool set_standby(bool enable)
bool write_channel_mix_()
bool set_volume(float volume) override
bool set_mute_on() override
bool set_mute_off() override
void dump_config() override
void set_volume_max_db(float volume_max_db)
bool write_analog_gain_()
bool select_page_(uint8_t page)
void set_volume_min_db(float volume_min_db)
void set_enable_pin(GPIOPin *enable_pin)
void set_analog_gain(PCM5122AnalogGain analog_gain)
bool set_powerdown(bool enable)
bool write_power_control_()
PCM5122AnalogGain analog_gain_
float get_setup_priority() const override
void set_bits_per_sample(PCM5122BitsPerSample bits_per_sample)
PCM5122BitsPerSample bits_per_sample_
void set_channel_mix(PCM5122ChannelMix channel_mix)
PCM5122ChannelMix channel_mix_
@ PCM5122_ANALOG_GAIN_0DB
@ PCM5122_ANALOG_GAIN_MINUS_6DB
@ PCM5122_CHANNEL_MIX_SWAPPED
@ PCM5122_CHANNEL_MIX_LEFT_ONLY
@ PCM5122_CHANNEL_MIX_RIGHT_ONLY
@ PCM5122_CHANNEL_MIX_STEREO
@ PCM5122_BITS_PER_SAMPLE_16
@ PCM5122_BITS_PER_SAMPLE_32
@ PCM5122_BITS_PER_SAMPLE_24
constexpr float IO
For components that represent GPIO pins like PCF8573.