184 static constexpr uint8_t
INT_OI = 1U << 1;
225 bool begin(uint32_t sample_rate, uint8_t bits) {
227 if (sample_rate <= 8000)
229 else if (sample_rate <= 16000)
231 else if (sample_rate <= 24000)
233 else if (sample_rate <= 32000)
235 else if (sample_rate <= 48000)
237 else if (sample_rate <= 96000)
241 return begin(rate, bits);
245 i2s_format_t fmt,
bool is_master, uint8_t channels)
override {
250 return begin(sample_rate, bits);
254 uint8_t word_size = 16,
267 rc &=
setFormat(rate, word_size, format);
288 uint8_t tdm_cfg0 = 0, tdm_cfg1 = 0, tdm_cfg2 = 0;
340 }
else if (volume >= 100) {
Header only C++ driver for the TAS2563 mono Class-D smart amplifier.
Definition TAS2563.h:48
static constexpr uint8_t TX_FILL
Definition TAS2563.h:179
static constexpr uint8_t AMP_LEVEL_16_0DBV
Definition TAS2563.h:125
static constexpr uint8_t IRQ_POL
Definition TAS2563.h:202
static constexpr uint8_t I2C_ADDR_GLOBAL
Definition TAS2563.h:210
bool begin(uint32_t sample_rate, uint8_t bits)
Initialize the codec: software reset, set TDM/I2S format and sample rate, set the default amplifier o...
Definition TAS2563.h:225
static constexpr uint8_t BOOST_MODE_ALWAYS_ON
Definition TAS2563.h:192
static constexpr uint8_t DEFAULT_BOOK
Definition TAS2563.h:206
static constexpr uint8_t RX_WLEN_32BITS
Definition TAS2563.h:161
static constexpr uint8_t BOOST_MODE_MASK
Definition TAS2563.h:189
static constexpr uint8_t FRAME_START
Definition TAS2563.h:137
static constexpr uint8_t RX_SLEN_24BITS
Definition TAS2563.h:153
static constexpr uint8_t BOOST_EN
Definition TAS2563.h:188
static constexpr uint8_t BOOST_MODE_CLASS_H
Definition TAS2563.h:190
bool softReset()
Software reset (TAS2563_SW_RESET register)
Definition TAS2563.h:276
static constexpr uint8_t AMP_LEVEL_19_0DBV
Definition TAS2563.h:128
bool begin(TAS2563SampleRate rate=TAS2563SampleRate::Rate48kHz, uint8_t word_size=16, TAS2563Format format=TAS2563Format::I2S)
Definition TAS2563.h:253
static constexpr uint8_t AMP_LEVEL_14_0DBV
Definition TAS2563.h:123
static constexpr uint8_t TX_EDGE
Definition TAS2563.h:177
static constexpr uint8_t RAMP_RATE
Definition TAS2563.h:141
static constexpr uint8_t RX_EDGE
Definition TAS2563.h:145
static constexpr uint8_t AMP_LEVEL_12_0DBV
Definition TAS2563.h:121
bool setMute(bool mute) override
Mute / unmute the amplifier output (Mute power mode vs. Active)
Definition TAS2563.h:351
static constexpr uint8_t AMP_LEVEL_17_0DBV
Definition TAS2563.h:126
static constexpr uint8_t TX_OFFSET_MASK
Definition TAS2563.h:178
static constexpr uint8_t IRQ_PIN_CFG_MASK
Definition TAS2563.h:196
static constexpr uint8_t CLASS_D_SYNC
Definition TAS2563.h:142
static constexpr uint8_t AMP_LEVEL_8_5DBV
Definition TAS2563.h:117
static constexpr uint8_t AMP_LEVEL_10_0DBV
Definition TAS2563.h:119
static constexpr uint8_t SW_RESET_BIT
Definition TAS2563.h:104
static constexpr uint8_t SAMP_RATE_MASK
Definition TAS2563.h:138
bool setAmpLevel(uint8_t level)
Set the amplifier output level register value directly (see AMP_LEVEL_* constants)
Definition TAS2563.h:330
static constexpr uint8_t RX_SLEN_MASK
Definition TAS2563.h:151
static constexpr uint8_t IRQ_PIN_CFG_LIVE
Definition TAS2563.h:197
bool stop()
Stop the amplifier output (PWR_MODE = Shutdown)
Definition TAS2563.h:364
static constexpr uint8_t CLR_INT_LTCH
Definition TAS2563.h:199
static constexpr uint8_t TX_KEEP_EN
Definition TAS2563.h:180
Reg
Definition TAS2563.h:51
@ REG_TDM_CFG1
Definition TAS2563.h:59
@ REG_INT_MASK1
Definition TAS2563.h:75
@ REG_BOP_CFG0
Definition TAS2563.h:72
@ REG_BOOST_CFG3
Definition TAS2563.h:94
@ REG_SW_RESET
Definition TAS2563.h:53
@ REG_LIM_CFG0
Definition TAS2563.h:70
@ REG_PDM_CONFIG3
Definition TAS2563.h:97
@ REG_LIM_CFG1
Definition TAS2563.h:71
@ REG_INT_LIVE3
Definition TAS2563.h:81
@ REG_TDM_CFG0
Definition TAS2563.h:58
@ REG_MISC
Definition TAS2563.h:91
@ REG_TEMP
Definition TAS2563.h:88
@ REG_INT_MASK3
Definition TAS2563.h:77
@ REG_PB_CFG1
Definition TAS2563.h:55
@ REG_TDM_CFG6
Definition TAS2563.h:64
@ REG_INT_MASK2
Definition TAS2563.h:76
@ REG_TDM_CFG9
Definition TAS2563.h:67
@ REG_TDM_CFG2
Definition TAS2563.h:60
@ REG_TDM_CFG3
Definition TAS2563.h:61
@ REG_TDM_CFG7
Definition TAS2563.h:65
@ REG_BOOK
Definition TAS2563.h:100
@ REG_BST_ILIM_CFG0
Definition TAS2563.h:95
@ REG_INT_CLK_CFG
Definition TAS2563.h:89
@ REG_MISC_CFG2
Definition TAS2563.h:57
@ REG_BOP_CFG1
Definition TAS2563.h:73
@ REG_VBAT_LSB
Definition TAS2563.h:87
@ REG_PDM_CONFIG0
Definition TAS2563.h:96
@ REG_PAGE
Definition TAS2563.h:52
@ REG_PWR_CTL
Definition TAS2563.h:54
@ REG_BOOST_CFG2
Definition TAS2563.h:93
@ REG_DIN_PD
Definition TAS2563.h:90
@ REG_INT_LIVE0
Definition TAS2563.h:78
@ REG_MISC_CFG1
Definition TAS2563.h:56
@ REG_BOOST_CFG1
Definition TAS2563.h:92
@ REG_TDM_CFG4
Definition TAS2563.h:62
@ REG_I2C_CKSUM
Definition TAS2563.h:99
@ REG_INT_LTCH3
Definition TAS2563.h:85
@ REG_TDM_CFG5
Definition TAS2563.h:63
@ REG_VBAT_MSB
Definition TAS2563.h:86
@ REG_TDM_CFG10
Definition TAS2563.h:68
@ REG_REV_ID
Definition TAS2563.h:98
@ REG_INT_LIVE1
Definition TAS2563.h:79
@ REG_TDM_CFG8
Definition TAS2563.h:66
@ REG_INT_LTCH1
Definition TAS2563.h:83
@ REG_INT_MASK0
Definition TAS2563.h:74
@ REG_INT_LTCH0
Definition TAS2563.h:82
@ REG_TDM_DET
Definition TAS2563.h:69
@ REG_INT_LTCH2
Definition TAS2563.h:84
@ REG_INT_LIVE2
Definition TAS2563.h:80
static constexpr uint8_t BOOST_MODE_CLASS_G
Definition TAS2563.h:191
static constexpr uint8_t RX_OFFSET_MASK
Definition TAS2563.h:146
static constexpr uint8_t DEFAULT_PAGE
Definition TAS2563.h:205
static constexpr uint8_t AMP_LEVEL_MASK
Definition TAS2563.h:112
static constexpr uint8_t PWR_MODE_MASK
Definition TAS2563.h:107
static constexpr uint8_t RX_SLOT_RIGHT_MASK
Definition TAS2563.h:174
static constexpr uint8_t IRQ_PIN_CFG_LATCHED
Definition TAS2563.h:198
static constexpr uint8_t AMP_LEVEL_18_0DBV
Definition TAS2563.h:127
bool selectBook(uint8_t book)
Set the active register book (only Book 0 is defined by this driver)
Definition TAS2563.h:373
static constexpr uint8_t RX_SCFG_MONO_LEFT
Definition TAS2563.h:166
static constexpr uint8_t RX_WLEN_MASK
Definition TAS2563.h:156
static constexpr uint8_t RX_SLEN_32BITS
Definition TAS2563.h:154
static constexpr uint8_t RX_SCFG_MASK
Definition TAS2563.h:163
static constexpr uint8_t BOOST_MODE_ALWAYS_OFF
Definition TAS2563.h:193
static constexpr uint8_t RX_SCFG_STEREO_DOWNMIX
Definition TAS2563.h:168
static constexpr uint8_t AMP_LEVEL_SHIFT
Definition TAS2563.h:113
static constexpr uint8_t INT_OI
Definition TAS2563.h:184
static constexpr uint8_t INT_TDMCKE
Definition TAS2563.h:185
static constexpr uint8_t SAMP_RATE_SHIFT
Definition TAS2563.h:139
static constexpr uint8_t RX_SCFG_MONO_I2C
Definition TAS2563.h:165
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 TAS2563.h:244
static constexpr uint8_t AMP_LEVEL_15_0DBV
Definition TAS2563.h:124
bool start()
Start the amplifier output (PWR_MODE = Active)
Definition TAS2563.h:358
static constexpr uint8_t RX_OFFSET_SHIFT
Definition TAS2563.h:147
static constexpr uint8_t AMP_LEVEL_11_0DBV
Definition TAS2563.h:120
static constexpr uint8_t RX_SCFG_MONO_RIGHT
Definition TAS2563.h:167
static constexpr uint8_t INT_OTE
Definition TAS2563.h:183
bool selectPage(uint8_t page)
Set the active register page (only Page 0 is defined by this driver)
Definition TAS2563.h:370
static constexpr uint8_t RX_SCFG_SHIFT
Definition TAS2563.h:164
static constexpr uint8_t RX_WLEN_16BITS
Definition TAS2563.h:158
TAS2563()
Definition TAS2563.h:212
static constexpr uint8_t RX_WLEN_24BITS
Definition TAS2563.h:160
static constexpr uint8_t RX_WLEN_SHIFT
Definition TAS2563.h:157
static constexpr uint8_t AMP_LEVEL_20_0DBV
Definition TAS2563.h:129
static constexpr uint8_t AMP_LEVEL_9_0DBV
Definition TAS2563.h:118
static constexpr uint8_t RX_WLEN_20BITS
Definition TAS2563.h:159
static constexpr uint8_t ISNS_PD_MASK
Definition TAS2563.h:109
static constexpr uint8_t I2C_ADDR_DEFAULT
Definition TAS2563.h:209
static constexpr uint8_t RX_JUSTIFY
Definition TAS2563.h:148
bool setVolume(int volume) override
Set output volume in percent (0..100), mapped to the amplifier level range.
Definition TAS2563.h:336
static constexpr uint8_t DC_BLOCKER_DIS
Definition TAS2563.h:114
static constexpr uint8_t CFG2_CONFIG_MASK
Definition TAS2563.h:170
static constexpr uint8_t RX_SLEN_16BITS
Definition TAS2563.h:152
bool setFormat(TAS2563SampleRate rate, uint8_t word_size=16, TAS2563Format format=TAS2563Format::I2S)
Configure the TDM/I2S digital audio interface: sample rate, word size and frame format.
Definition TAS2563.h:285
static constexpr uint8_t RX_SLOT_LEFT_MASK
Definition TAS2563.h:173
static constexpr uint8_t I2C_GLOBAL_EN
Definition TAS2563.h:134
static constexpr uint8_t AMP_LEVEL_13_0DBV
Definition TAS2563.h:122
static constexpr uint8_t AMP_LEVEL_22_0DBV
Definition TAS2563.h:131
static constexpr uint8_t AUTO_RATE
Definition TAS2563.h:140
static constexpr uint8_t VSNS_PD_MASK
Definition TAS2563.h:108
static constexpr uint8_t AMP_LEVEL_21_0DBV
Definition TAS2563.h:130
bool getRevisionId(uint8_t &rev_id)
Read the chip revision / product ID register.
Definition TAS2563.h:279
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
bool updateReg(uint8_t reg, uint8_t mask, uint8_t value)
Read-Modify-Write of a single byte register.
Definition ZephyrDriverCommon.h:110
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
TAS2563PowerMode
Power control modes (PWR_CTL PWR_MODE field)
Definition TAS2563.h:33
codec_mode_t
Definition DriverCommon.h:290
TAS2563SampleRate
I2S sample rate selection (TDM_CFG0 SAMP_RATE field)
Definition TAS2563.h:16
TAS2563Format
Digital audio interface format.
Definition TAS2563.h:27
i2s_format_t
Definition DriverCommon.h:250