121 uint8_t cmd[2] = {0, 0};
127 AD_LOGW(
"volume = 0x%x", cmd[1]);
142 AD_LOGI(
"Volume is %d", i * 5);
187 }
else if (value <= 53) {
189 }
else if (value <= 107) {
191 }
else if (value <= 267) {
193 }
else if (value <= 535) {
195 }
else if (value <= 1065) {
197 }
else if (value <= 2665) {
202 cmd[1] |= (cmd[1] << 4);
206 AD_LOGI(
"Set mute fade, value:%d, 0x%x", value, cmd[1]);
217 *value = (cmd[1] & 0x08) >> 3;
218 AD_LOGI(
"Get mute value: 0x%x", *value);
227 unsigned char cmd[2] = {0};
229 cmd[1] = 0x10 | value;
249 switch (conf_buf[i].offset) {
258 (
unsigned char*)(&conf_buf[i + 1].offset), 1,
259 (
unsigned char*)(&conf_buf[i + 1].value),
261 i += (conf_buf[i].
value / 2) + 1;
264 if (
CFG_END_2 == conf_buf[i + 1].offset &&
266 AD_LOGI(
"End of tms5805m reg: %d", i);
271 (
unsigned char*)(&conf_buf[i].offset), 1,
272 (
unsigned char*)(&conf_buf[i].value), 1);
278 AD_LOGE(
"Fail to load configuration to tas5805m");
281 AD_LOGI(
"%s: write %d reg done", __FUNCTION__, i);
#define RESULT_OK
Definition DriverCommon.h:74
#define OUTPUT
Definition DriverCommon.h:44
#define RESULT_FAIL
Definition DriverCommon.h:75
Simple GPIO abstraction for digital input/output.
#define AD_LOGI(...)
Definition Logger.h:13
#define AD_LOGE(...)
Definition Logger.h:15
#define AD_LOGW(...)
Definition Logger.h:14
Definition GPIO_Zephyr.h:20
bool digitalWrite(GpioPin pin, bool value)
Definition GPIO_Zephyr.h:59
void pinMode(GpioPin pin, int mode)
Definition GPIO_Zephyr.h:28
Header-only driver class for the TAS5805M amplifier chip.
Definition TAS5805M.h:44
static constexpr uint8_t TAS5805M_REG_29
Definition TAS5805M.h:54
static constexpr int TAS5805M_VOLUME_MAX
Definition TAS5805M.h:69
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control TAS5805 codec chip.
Definition TAS5805M.h:234
static constexpr uint8_t TAS5805M_REG_02
Definition TAS5805M.h:47
static constexpr uint8_t TAS5805M_REG_7E
Definition TAS5805M.h:58
void setAddress(int addr)
Defines the I2C device address.
Definition TAS5805M.h:77
error_t deinit(void)
Deinitialize TAS5805 codec chip.
Definition TAS5805M.h:104
static constexpr uint8_t TAS5805M_REG_7F
Definition TAS5805M.h:59
static constexpr uint8_t TAS5805M_REG_00
Definition TAS5805M.h:46
static constexpr uint8_t TAS5805M_REG_27
Definition TAS5805M.h:52
error_t setMuteFade(int value)
Mute gradually by (value)ms.
Definition TAS5805M.h:172
error_t setDampMode(int value)
Set DAMP mode.
Definition TAS5805M.h:226
static constexpr uint8_t TAS5805M_DAMP_MODE_BTL
Definition TAS5805M.h:66
static constexpr int TAS5805M_ADDR
Definition TAS5805M.h:68
static constexpr uint8_t TAS5805M_PAGE_2A
Definition TAS5805M.h:61
static constexpr uint8_t TAS5805M_REG_26
Definition TAS5805M.h:51
int i2c_addr
Definition TAS5805M.h:287
static constexpr uint8_t TAS5805M_DAMP_MODE_PBTL
Definition TAS5805M.h:67
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure TAS5805 codec mode and I2S interface.
Definition TAS5805M.h:240
static constexpr uint8_t MUTE_TIME_REG_ADDR
Definition TAS5805M.h:65
static constexpr uint8_t TAS5805M_REG_03
Definition TAS5805M.h:48
error_t setMute(bool enable)
Set TAS5805 mute or not Continuously call should have an interval time determined by setMuteFade()
Definition TAS5805M.h:152
static constexpr uint8_t TAS5805M_PAGE_00
Definition TAS5805M.h:60
void setPowerPin(GpioPin pin)
Defines the GPIO pin used to power on the amplifier.
Definition TAS5805M.h:82
static constexpr uint8_t MASTER_VOL_REG_ADDR
Definition TAS5805M.h:64
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition TAS5805M.h:74
static constexpr int TAS5805M_VOLUME_MIN
Definition TAS5805M.h:70
static constexpr uint8_t TAS5805M_REG_24
Definition TAS5805M.h:49
static constexpr uint8_t TAS5805M_REG_35
Definition TAS5805M.h:57
GpioPin power_pin
Definition TAS5805M.h:288
i2c_bus_handle_t i2c_handle
Definition TAS5805M.h:286
static constexpr uint8_t TAS5805M_REG_25
Definition TAS5805M.h:50
error_t getVolume(int *value)
Get voice volume (0~100)
Definition TAS5805M.h:132
error_t transmitRegisters(const tas5805m_cfg_reg_t *conf_buf, int size)
Definition TAS5805M.h:245
static constexpr uint8_t TAS5805M_REG_28
Definition TAS5805M.h:53
static constexpr uint8_t TAS5805M_REG_2A
Definition TAS5805M.h:55
static constexpr uint8_t TAS5805M_REG_2B
Definition TAS5805M.h:56
static constexpr uint8_t TAS5805M_BOOK_00
Definition TAS5805M.h:62
error_t getMute(int *value)
Get TAS5805 mute status.
Definition TAS5805M.h:211
error_t setVolume(int vol)
Set voice volume (0~100)
Definition TAS5805M.h:110
static constexpr uint8_t TAS5805M_BOOK_8C
Definition TAS5805M.h:63
error_t init(codec_config_t *codec_cfg)
Initialize TAS5805 codec chip.
Definition TAS5805M.h:85
Namespace for audio driver components.
Definition AudioBoard.h:5
static constexpr uint8_t CFG_META_SWITCH
Definition tas5805m_reg_cfg.h:31
static constexpr uint8_t CFG_END_2
Definition tas5805m_reg_cfg.h:35
static const uint8_t tas5805m_volume[]
Definition tas5805m_reg_cfg.h:43
static const tas5805m_cfg_reg_t tas5805m_registers[]
Definition tas5805m_reg_cfg.h:47
static constexpr uint8_t CFG_END_1
Definition tas5805m_reg_cfg.h:34
int16_t GpioPin
Definition DriverCommon.h:153
static constexpr uint8_t CFG_META_BURST
Definition tas5805m_reg_cfg.h:33
void delayMs(unsigned long ms)
Definition API_Delay.h:19
codec_mode_t
Definition DriverCommon.h:290
int error_t
Definition DriverCommon.h:150
static constexpr uint8_t CFG_META_DELAY
Definition tas5805m_reg_cfg.h:32
static constexpr uint8_t CFG_END_3
Definition tas5805m_reg_cfg.h:36
void * i2c_bus_handle_t
Definition DriverCommon.h:155
I2S interface parameters for the audio codec.
Definition DriverCommon.h:384
Top-level codec configuration passed to the audio driver at init.
Definition DriverCommon.h:397
Definition tas5805m_reg_cfg.h:38
uint8_t value
Definition tas5805m_reg_cfg.h:40