135 bool begin(uint32_t sample_rate, uint8_t bits) {
137 return begin(sample_rate);
141 i2s_format_t fmt,
bool is_master, uint8_t channels)
override {
146 return begin(sample_rate, bits);
149 bool begin(uint32_t sample_rate = 44100) {
180 switch (sample_rate) {
235 val |= (uint8_t)((uint8_t)state << 6);
239 val |= (uint8_t)((uint8_t)state << 4);
244 val |= (uint8_t)((uint8_t)state << 6) | (uint8_t)((uint8_t)state << 4);
286 uint8_t vol_val = (uint8_t)(volume + 0xCF);
Header only C++ driver for the TAS6422 2-channel Class-D amplifier.
Definition TAS6422DAC.h:49
bool getGlobalFaults1(uint8_t &value)
Read the global faults 1 register (clock / supply voltage faults)
Definition TAS6422DAC.h:326
static constexpr uint8_t CH_STATE_CTRL_CH1_STATE_CTRL_MASK
Definition TAS6422DAC.h:109
static constexpr int OUTPUT_VOLUME_MAX
Definition TAS6422DAC.h:116
bool setDevices(input_device_t input_device, output_device_t output_device) override
Stores the output device selection for use by configureOutput()
Definition TAS6422DAC.h:270
bool begin(uint32_t sample_rate, uint8_t bits)
Initialize the codec: soft reset, configure the I2S input format/sample rate and apply default output...
Definition TAS6422DAC.h:135
static constexpr uint8_t SAP_CTRL_INPUT_SAMPLING_RATE_44_1_KHZ
Definition TAS6422DAC.h:100
bool softReset()
Trigger a soft reset (sets the RESET bit in MODE_CTRL)
Definition TAS6422DAC.h:159
bool setMute(bool mute, TAS6422Channel channel=TAS6422Channel::All)
Mute / unmute the given channel(s)
Definition TAS6422DAC.h:264
bool clearFaults()
Definition TAS6422DAC.h:315
bool stop(TAS6422Channel channel=TAS6422Channel::All)
Mute the given channel(s)
Definition TAS6422DAC.h:259
static constexpr int OUTPUT_VOLUME_MIN
Definition TAS6422DAC.h:117
static constexpr uint8_t MISC_CTRL_1_GAIN_MASK
Definition TAS6422DAC.h:86
static constexpr uint8_t MODE_CTRL_PBTL_CH12
Definition TAS6422DAC.h:77
bool getGlobalFaults2(uint8_t &value)
Read the global faults 2 register (thermal shutdown faults)
Definition TAS6422DAC.h:329
static constexpr uint8_t MISC_CTRL_1_VOLUME_RATE_MASK
Definition TAS6422DAC.h:85
static constexpr uint8_t MODE_CTRL_RESET
Definition TAS6422DAC.h:76
static constexpr uint8_t SAP_CTRL_TDM_SLOT_SELECT
Definition TAS6422DAC.h:103
static constexpr uint8_t MISC_CTRL_1_OC_CONTROL_MASK
Definition TAS6422DAC.h:84
static constexpr uint8_t MISC_CTRL_2_PWM_FREQUENCY_8_FS
Definition TAS6422DAC.h:90
output_device_t output_device
Output device selection set via setDevices(), used by configureOutput()
Definition TAS6422DAC.h:336
static constexpr uint8_t SAP_CTRL_INPUT_FORMAT_MASK
Definition TAS6422DAC.h:106
bool configureOutput()
Apply default output settings: overcurrent level = 1, PWM frequency = 10 fs (reduced from default to ...
Definition TAS6422DAC.h:207
static constexpr uint8_t MISC_CTRL_2_SDM_OSR
Definition TAS6422DAC.h:95
static constexpr uint8_t MISC_CTRL_2_PWM_FREQUENCY_44_FS
Definition TAS6422DAC.h:93
static constexpr uint8_t SAP_CTRL_INPUT_SAMPLING_RATE_48_KHZ
Definition TAS6422DAC.h:101
Reg
Definition TAS6422DAC.h:52
@ DC_LDG_REPORT_1_ADDR
Definition TAS6422DAC.h:62
@ WARNINGS_ADDR
Definition TAS6422DAC.h:67
@ MISC_CTRL_3_ADDR
Definition TAS6422DAC.h:69
@ CH_STATE_CTRL_ADDR
Definition TAS6422DAC.h:57
@ MISC_CTRL_4_ADDR
Definition TAS6422DAC.h:71
@ CH2_VOLUME_CTRL_ADDR
Definition TAS6422DAC.h:59
@ GLOBAL_FAULTS_1_ADDR
Definition TAS6422DAC.h:65
@ GLOBAL_FAULTS_2_ADDR
Definition TAS6422DAC.h:66
@ MISC_CTRL_2_ADDR
Definition TAS6422DAC.h:55
@ MODE_CTRL_ADDR
Definition TAS6422DAC.h:53
@ DC_LDG_CTRL_1_ADDR
Definition TAS6422DAC.h:60
@ MISC_CTRL_1_ADDR
Definition TAS6422DAC.h:54
@ PIN_CTRL_ADDR
Definition TAS6422DAC.h:68
@ CH_FAULTS_ADDR
Definition TAS6422DAC.h:64
@ SAP_CTRL_ADDR
Definition TAS6422DAC.h:56
@ DC_LDG_CTRL_2_ADDR
Definition TAS6422DAC.h:61
@ DC_LDG_REPORT_3_ADDR
Definition TAS6422DAC.h:63
@ MISC_CTRL_5_ADDR
Definition TAS6422DAC.h:72
@ ILIMIT_STATUS_ADDR
Definition TAS6422DAC.h:70
@ CH1_VOLUME_CTRL_ADDR
Definition TAS6422DAC.h:58
static constexpr uint8_t SAP_CTRL_TDM_SLOT_SELECT_2
Definition TAS6422DAC.h:105
static constexpr uint8_t SAP_CTRL_INPUT_SAMPLING_RATE_MASK
Definition TAS6422DAC.h:99
static constexpr uint8_t CH_STATE_CTRL_CH2_STATE_CTRL_MASK
Definition TAS6422DAC.h:110
bool configureDai(uint32_t sample_rate)
Configure the serial audio port: I2S input format and input sampling rate.
Definition TAS6422DAC.h:172
static constexpr uint8_t MISC_CTRL_2_PWM_FREQUENCY_MASK
Definition TAS6422DAC.h:89
bool begin(uint32_t sample_rate=44100)
Definition TAS6422DAC.h:149
static constexpr uint8_t MISC_CTRL_2_PWM_FREQUENCY_48_FS
Definition TAS6422DAC.h:94
static constexpr uint8_t SAP_CTRL_TDM_SLOT_SIZE
Definition TAS6422DAC.h:104
static constexpr uint8_t MISC_CTRL_1_HPF_BYPASS
Definition TAS6422DAC.h:82
static constexpr uint8_t SAP_CTRL_INPUT_SAMPLING_RATE_96_KHZ
Definition TAS6422DAC.h:102
static constexpr uint8_t MISC_CTRL_1_OTW_CONTROL_MASK
Definition TAS6422DAC.h:83
bool begin(uint32_t sample_rate, uint8_t bits, codec_mode_t mode, i2s_format_t fmt, bool is_master, uint8_t channels) override
Initializes the codec.
Definition TAS6422DAC.h:140
bool setChannelState(TAS6422Channel channel, TAS6422ChannelState state)
Set the channel state (Play, Hiz, Mute or DcLoad) for the given channel(s)
Definition TAS6422DAC.h:228
bool getWarnings(uint8_t &value)
Read the warnings register (POR / over-temperature warnings)
Definition TAS6422DAC.h:332
static constexpr uint8_t CH_VOLUME_CTRL_VOLUME_MASK
Definition TAS6422DAC.h:113
static constexpr uint8_t MISC_CTRL_2_PWM_FREQUENCY_38_FS
Definition TAS6422DAC.h:92
static constexpr uint8_t MISC_CTRL_2_OUTPUT_PHASE_MASK
Definition TAS6422DAC.h:96
bool start(TAS6422Channel channel=TAS6422Channel::All)
Unmute (set to Play state) the given channel(s)
Definition TAS6422DAC.h:254
bool setOutputVolume(int volume, TAS6422Channel channel=TAS6422Channel::All)
Set the output volume in 0.5dB steps.
Definition TAS6422DAC.h:283
static constexpr uint8_t MISC_CTRL_2_PWM_FREQUENCY_10_FS
Definition TAS6422DAC.h:91
bool setVolume(int volume) override
Definition TAS6422DAC.h:306
static constexpr uint8_t MODE_CTRL_CH2_LO_MODE
Definition TAS6422DAC.h:79
TAS6422DAC()
Definition TAS6422DAC.h:119
bool getChannelFaults(uint8_t &value)
Read the channel faults register (over-current / DC detection)
Definition TAS6422DAC.h:323
static constexpr uint8_t MODE_CTRL_CH1_LO_MODE
Definition TAS6422DAC.h:78
Common parent class for codec drivers that have been ported from the Zephyr RTOS audio driver impleme...
Definition ZephyrDriverCommon.h:22
uint8_t i2c_addr
Definition ZephyrDriverCommon.h:87
int volume_percent
Last volume (in %) provided to setVolume()
Definition ZephyrDriverCommon.h:89
bool readReg(uint8_t reg, uint8_t &value, bool stopBit=true)
Reads a single byte from an 8 bit register address.
Definition ZephyrDriverCommon.h:100
bool writeReg(uint8_t reg, uint8_t value)
Writes a single byte to an 8 bit register address.
Definition ZephyrDriverCommon.h:94
Namespace for audio driver components.
Definition AudioBoard.h:5
TAS6422InputFormat
Serial audio port input format (SAP_CTRL register)
Definition TAS6422DAC.h:32
input_device_t
Definition DriverCommon.h:170
codec_mode_t
Definition DriverCommon.h:290
output_device_t
Definition DriverCommon.h:186
@ DAC_OUTPUT_LINE1
Definition DriverCommon.h:188
@ DAC_OUTPUT_ALL
Definition DriverCommon.h:190
@ DAC_OUTPUT_NONE
Definition DriverCommon.h:187
TAS6422ChannelState
Channel state (CH_STATE_CTRL register)
Definition TAS6422DAC.h:24
i2s_format_t
Definition DriverCommon.h:250
TAS6422Channel
Output channel selection.
Definition TAS6422DAC.h:17