41 ESP_LOGCONFIG(TAG,
"Running setup");
44 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0xff));
45 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0x32));
46 ES7210_ERROR_FAILED(this->
write_byte(ES7210_CLOCK_OFF_REG01, 0x3f));
49 ES7210_ERROR_FAILED(this->
write_byte(ES7210_TIME_CONTROL0_REG09, 0x30));
50 ES7210_ERROR_FAILED(this->
write_byte(ES7210_TIME_CONTROL1_REG0A, 0x30));
53 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC12_HPF2_REG23, 0x2a));
54 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC12_HPF1_REG22, 0x0a));
55 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC34_HPF2_REG20, 0x0a));
56 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ADC34_HPF1_REG21, 0x2a));
62 ES7210_ERROR_FAILED(this->
write_byte(ES7210_ANALOG_REG40, 0xC3));
65 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC12_BIAS_REG41, 0x70));
66 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC34_BIAS_REG42, 0x70));
74 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC1_POWER_REG47, 0x08));
75 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC2_POWER_REG48, 0x08));
76 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC3_POWER_REG49, 0x08));
77 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC4_POWER_REG4A, 0x08));
80 ES7210_ERROR_FAILED(this->
write_byte(ES7210_POWER_DOWN_REG06, 0x04));
83 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0x0F));
84 ES7210_ERROR_FAILED(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0x0F));
87 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0x71));
88 ES7210_ERROR_FAILED(this->
write_byte(ES7210_RESET_REG00, 0x41));
105 for (
int i = 0; i < (
sizeof(ES7210_COEFFICIENTS) /
sizeof(ES7210_COEFFICIENTS[0])); ++i) {
106 if (ES7210_COEFFICIENTS[i].lrclk == this->
sample_rate_ && ES7210_COEFFICIENTS[i].mclk == mclk_fre)
113 ES7210_ERROR_CHECK(this->
read_byte(ES7210_MAINCLK_REG02, ®v));
115 regv |= ES7210_COEFFICIENTS[coeff].adc_div;
116 regv |= ES7210_COEFFICIENTS[coeff].doubler << 6;
117 regv |= ES7210_COEFFICIENTS[coeff].dll << 7;
119 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MAINCLK_REG02, regv));
122 regv = ES7210_COEFFICIENTS[coeff].osr;
123 ES7210_ERROR_CHECK(this->
write_byte(ES7210_OSR_REG07, regv));
125 regv = ES7210_COEFFICIENTS[coeff].lrck_h;
126 ES7210_ERROR_CHECK(this->
write_byte(ES7210_LRCK_DIVH_REG04, regv));
127 regv = ES7210_COEFFICIENTS[coeff].lrck_l;
128 ES7210_ERROR_CHECK(this->
write_byte(ES7210_LRCK_DIVL_REG05, regv));
131 ESP_LOGE(TAG,
"Invalid sample rate");
140 for (uint8_t i = 0; i < 4; ++i) {
143 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0xff));
144 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0xff));
148 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0x00));
154 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC12_POWER_REG4B, 0x00));
160 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0x00));
166 ES7210_ERROR_CHECK(this->
write_byte(ES7210_MIC34_POWER_REG4C, 0x00));