39 ESP_LOGCONFIG(TAG,
"Setting up ES7210...");
42 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0xff));
43 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0x32));
44 ES7210_ERROR_FAILED(this->
write_byte(ES7210_CLOCK_OFF_REG01, 0x3f));
47 ES7210_ERROR_FAILED(this->
write_byte(ES7210_TIME_CONTROL0_REG09, 0x30));
48 ES7210_ERROR_FAILED(this->
write_byte(ES7210_TIME_CONTROL1_REG0A, 0x30));
51 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC12_HPF2_REG23, 0x2a));
52 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC12_HPF1_REG22, 0x0a));
53 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC34_HPF2_REG20, 0x0a));
54 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC34_HPF1_REG21, 0x2a));
60 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ANALOG_REG40, 0xC3));
63 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC12_BIAS_REG41, 0x70));
64 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC34_BIAS_REG42, 0x70));
72 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC1_POWER_REG47, 0x08));
73 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC2_POWER_REG48, 0x08));
74 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC3_POWER_REG49, 0x08));
75 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC4_POWER_REG4A, 0x08));
78 ES7210_ERROR_FAILED(this->
write_byte(ES7210_POWER_DOWN_REG06, 0x04));
81 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0x0F));
82 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0x0F));
85 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0x71));
86 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0x41));
103 for (
int i = 0; i < (
sizeof(ES7210_COEFFICIENTS) /
sizeof(ES7210_COEFFICIENTS[0])); ++i) {
104 if (ES7210_COEFFICIENTS[i].lrclk == this->
sample_rate_ && ES7210_COEFFICIENTS[i].mclk == mclk_fre)
111 ES7210_ERROR_CHECK(this->
read_byte(ES7210_MAINCLK_REG02, ®v));
113 regv |= ES7210_COEFFICIENTS[coeff].adc_div;
114 regv |= ES7210_COEFFICIENTS[coeff].doubler << 6;
115 regv |= ES7210_COEFFICIENTS[coeff].dll << 7;
117 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MAINCLK_REG02, regv));
120 regv = ES7210_COEFFICIENTS[coeff].osr;
121 ES7210_ERROR_CHECK(this->
write_byte(ES7210_OSR_REG07, regv));
123 regv = ES7210_COEFFICIENTS[coeff].lrck_h;
124 ES7210_ERROR_CHECK(this->
write_byte(ES7210_LRCK_DIVH_REG04, regv));
125 regv = ES7210_COEFFICIENTS[coeff].lrck_l;
126 ES7210_ERROR_CHECK(this->
write_byte(ES7210_LRCK_DIVL_REG05, regv));
129 ESP_LOGE(TAG,
"Invalid sample rate");
138 for (uint8_t i = 0; i < 4; ++i) {
141 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0xff));
142 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0xff));
146 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0x00));
152 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0x00));
158 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0x00));
164 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0x00));