11#ifdef USE_BINARY_SENSOR
60 "enum FaultSensor altered: Update FAULT_SENSORS in binary_sensor.py and fault_sensor_bits in each model's cpp");
63static constexpr uint8_t NO_BIT = 0xFF;
71 const LogString *(*name)();
88 const LogString *(*fault_name)(uint8_t index);
93#ifdef USE_TAS58XX_TAS5805M
96#ifdef USE_TAS58XX_TAS5825M
104 void setup()
override;
131#ifdef USE_BINARY_SENSOR
149#ifdef USE_BINARY_SENSOR
This class simplifies creating components that periodically check a state.
This Class provides the methods to read/write bytes from/to an i2c device.
binary_sensor::BinarySensor * sensor
void set_analog_gain(float analog_gain_db)
SUB_BINARY_SENSOR(have_fault) void set_fault_binary_sensor(FaultSensor fault
void set_dac_mode(DacMode dac_mode)
bool set_mute_(bool muted)
void set_volume_min_db(float volume_min_db)
void set_mixer_mode(MixerMode mixer_mode)
float get_setup_priority() const override
bool set_mute_off() override
void set_enable_pin(GPIOPin *enable_pin)
std::array< binary_sensor::BinarySensor *, FAULT_SENSOR_COUNT > fault_binary_sensors_
TAS58xx(const ModelInfo *model)
void dump_config() override
void set_volume_max_db(float volume_max_db)
bool set_volume(float volume) override
bool write_ctrl_state_(uint8_t state, bool muted)
void activate()
Clear faults, leave deep sleep and switch to play; the device waits in Hi-Z until an I2S clock is pre...
void deactivate()
Switch to deep sleep, the lowest power state that keeps I2C and the DSP running.
void on_audio_started() override
bool set_mute_on() override
bool select_book_page_(uint8_t book, uint8_t page)
constexpr float IO
For components that represent GPIO pins like PCF8573.
const ModelInfo TAS5805M_MODEL
const ModelInfo TAS5825M_MODEL
FaultSensor
Fault binary sensors that map to a single fault bit.
@ FAULT_SENSOR_RIGHT_CHANNEL_OVER_CURRENT
@ FAULT_SENSOR_LEFT_CHANNEL_CBC_OVER_CURRENT
@ FAULT_SENSOR_BQ_WRITE_FAILED
@ FAULT_SENSOR_RIGHT_CHANNEL_CBC_OVER_CURRENT_WARNING
@ FAULT_SENSOR_OVER_TEMP_SHUTDOWN
@ FAULT_SENSOR_LEFT_CHANNEL_DC_FAULT
@ FAULT_SENSOR_RIGHT_CHANNEL_DC_FAULT
@ FAULT_SENSOR_RIGHT_CHANNEL_CBC_OVER_CURRENT
@ FAULT_SENSOR_OTP_CRC_CHECK
@ FAULT_SENSOR_OVER_TEMP_WARNING
@ FAULT_SENSOR_LEFT_CHANNEL_OVER_CURRENT
@ FAULT_SENSOR_OVER_TEMP_146C_WARNING
@ FAULT_SENSOR_PVDD_OVER_VOLTAGE
@ FAULT_SENSOR_PVDD_UNDER_VOLTAGE
@ FAULT_SENSOR_LOAD_EEPROM_ERROR
@ FAULT_SENSOR_LEFT_CHANNEL_CBC_OVER_CURRENT_WARNING
@ FAULT_SENSOR_CLOCK_FAULT
@ MIXER_MODE_STEREO_INVERSE
Everything that differs between models of the family.
uint8_t fault_sensor_bits[FAULT_SENSOR_COUNT]
Bit index for each FaultSensor, NO_BIT used where the model does not have that fault bit.
uint32_t fault_output_off_mask
Faults that keep the output off until cleared by activate()
uint32_t fault_warning_mask
Faults logged as warnings.
uint8_t mixer_book
Location of the four 9.23 fixed point input mixer coefficients: LEFT_TO_LEFT, RIGHT_TO_LEFT,...
uint8_t startup_sequence_length
uint32_t fault_latched_mask
Faults that stay set after the condition is gone and are cleared after each read.
const uint8_t(* startup_sequence)[2]
Remainder of the startup sequence, run after the reset, as {register, value} pairs in PROGMEM.
uint32_t fault_error_mask
Faults logged as errors and reported by have_fault.