]> granicus.if.org Git - esp-idf/commitdiff
Bugfix(i2s): fixed i2s left/right channels swapped issue for release/v3.2.
authorredchenjs <redchenjs@live.com>
Mon, 1 Jul 2019 11:48:47 +0000 (19:48 +0800)
committerhouwenxiang <houwenxiang@espressif.com>
Mon, 26 Aug 2019 06:02:27 +0000 (14:02 +0800)
The right channel data is in the high position, so the I2S_TX_MSB_RIGHT & I2S_RX_MSB_RIGHT bits should be set.

components/driver/i2s.c

index af00148b391ff6ab226035db56313a34fd954887..66c9214e526588390d604e4a876128f90359d3ec 100644 (file)
@@ -925,7 +925,7 @@ static esp_err_t i2s_param_config(i2s_port_t i2s_num, const i2s_config_t *i2s_co
     I2S[i2s_num]->conf.rx_start = 0;
 
     if (i2s_config->mode & I2S_MODE_TX) {
-        I2S[i2s_num]->conf.tx_msb_right = 0;
+        I2S[i2s_num]->conf.tx_msb_right = 1;
         I2S[i2s_num]->conf.tx_right_first = 0;
 
         I2S[i2s_num]->conf.tx_slave_mod = 0; // Master
@@ -937,7 +937,7 @@ static esp_err_t i2s_param_config(i2s_port_t i2s_num, const i2s_config_t *i2s_co
     }
 
     if (i2s_config->mode & I2S_MODE_RX) {
-        I2S[i2s_num]->conf.rx_msb_right = 0;
+        I2S[i2s_num]->conf.rx_msb_right = 1;
         I2S[i2s_num]->conf.rx_right_first = 0;
         I2S[i2s_num]->conf.rx_slave_mod = 0; // Master
         I2S[i2s_num]->fifo_conf.rx_fifo_mod_force_en = 1;