]> granicus.if.org Git - esp-idf/commitdiff
Bugfix(i2s): fixed i2s left/right channels swapped issue for release/v3.3.
authorredchenjs <redchenjs@live.com>
Mon, 1 Jul 2019 11:48:47 +0000 (19:48 +0800)
committerhouwenxiang <houwenxiang@espressif.com>
Wed, 28 Aug 2019 11:24:17 +0000 (19:24 +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 7559a6c564ea29b1a11074834f3f0866f28c653c..fa64444882b3a13dc1bd5ea6f54da2854509eda4 100644 (file)
@@ -943,7 +943,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
@@ -955,7 +955,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;