Skip to content

Commit 45d53b0

Browse files
hlym123lbuque
authored andcommitted
boards: Fix I2C SCL/SDA reversed.
Signed-off-by: hlym123 <[email protected]>
1 parent 4f6c9e7 commit 45d53b0

File tree

1 file changed

+33
-32
lines changed

1 file changed

+33
-32
lines changed

m5stack/boards/M5STACK_CoreS3/board_init.c

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@
3333
static char *TAG = "cores3";
3434
static void *audio_hal = NULL;
3535

36+
#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_0
37+
#define AUDIO_I2S_GPIO_WS GPIO_NUM_33
38+
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_34
39+
#define AUDIO_I2S_GPIO_DIN GPIO_NUM_14
40+
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_13
41+
#define AUDIO_CODEC_I2C_SCL_PIN GPIO_NUM_11
42+
#define AUDIO_CODEC_I2C_SDA_PIN GPIO_NUM_12
43+
#define AUDIO_CODEC_GPIO_PA GPIO_NUM_NC
44+
3645

3746
#if USE_IDF5
3847

@@ -63,11 +72,11 @@ esp_err_t get_i2s_pins(int port, board_i2s_pin_t *i2s_config)
6372
ESP_LOGI(TAG, "get_i2s_pins !!!");
6473
AUDIO_NULL_CHECK(TAG, i2s_config, return ESP_FAIL);
6574
if (port == 1) {
66-
i2s_config->bck_io_num = GPIO_NUM_34;
67-
i2s_config->ws_io_num = GPIO_NUM_33;
68-
i2s_config->data_out_num = GPIO_NUM_13;
69-
i2s_config->data_in_num = GPIO_NUM_14;
70-
i2s_config->mck_io_num = GPIO_NUM_0;
75+
i2s_config->bck_io_num = AUDIO_I2S_GPIO_BCLK;
76+
i2s_config->ws_io_num = AUDIO_I2S_GPIO_WS;
77+
i2s_config->data_out_num = AUDIO_I2S_GPIO_DOUT;
78+
i2s_config->data_in_num = AUDIO_I2S_GPIO_DIN;
79+
i2s_config->mck_io_num = AUDIO_I2S_GPIO_MCLK;
7180
} else {
7281
memset(i2s_config, -1, sizeof(board_i2s_pin_t));
7382
ESP_LOGE(TAG, "I2S PORT %d is not supported, please use I2S PORT 0", port);
@@ -127,8 +136,8 @@ void * board_codec_init(void)
127136
const audio_codec_if_t *in_codec_if = es7210_codec_new(&es7210_cfg);
128137

129138
esp_codec_dev_cfg_t dev_cfg = {
130-
.codec_if = out_codec_if, // aw88298_codec_new 获取到的接口实现
131-
.data_if = data_if, // 这里不实例化 i2s; 后续的 i2s_stream_init 会实例化 i2s。
139+
.codec_if = out_codec_if, // aw88298_codec_new 获取到的接口实现
140+
.data_if = data_if, // 这里不实例化 i2s; 后续的 i2s_stream_init 会实例化 i2s。
132141
.dev_type = ESP_CODEC_DEV_TYPE_OUT, // 设备只播放
133142
};
134143
audio_hal = esp_codec_dev_new(&dev_cfg);
@@ -156,29 +165,26 @@ void * board_codec_init(void)
156165
return audio_hal;
157166
}
158167

159-
160168
// NOTE: 使用内联函数???
161169
int board_codec_volume_set(void *hd, int vol)
162170
{
163171
return esp_codec_dev_set_out_vol(hd, vol);
164172
}
165173

166-
167174
// NOTE: 使用内联函数???
168175
int board_codec_volume_get(void *hd, int *vol)
169176
{
170177
return esp_codec_dev_get_out_vol(hd, vol);
171178
}
172179

173-
174180
static int ut_i2c_init(uint8_t port)
175181
{
176182
#ifdef USE_IDF_I2C_MASTER
177183
i2c_master_bus_config_t i2c_bus_config = {0};
178184
i2c_bus_config.clk_source = I2C_CLK_SRC_DEFAULT;
179185
i2c_bus_config.i2c_port = port;
180-
i2c_bus_config.scl_io_num = 12;
181-
i2c_bus_config.sda_io_num = 11;
186+
i2c_bus_config.scl_io_num = AUDIO_CODEC_I2C_SCL_PIN;
187+
i2c_bus_config.sda_io_num = AUDIO_CODEC_I2C_SDA_PIN;
182188
i2c_bus_config.glitch_ignore_cnt = 7;
183189
i2c_bus_config.flags.enable_internal_pullup = true;
184190
return i2c_new_master_bus(&i2c_bus_config, &i2c_bus_handle);
@@ -189,8 +195,8 @@ static int ut_i2c_init(uint8_t port)
189195
.scl_pullup_en = GPIO_PULLUP_ENABLE,
190196
.master.clk_speed = 100000,
191197
};
192-
i2c_cfg.sda_io_num = 12;
193-
i2c_cfg.scl_io_num = 11;
198+
i2c_cfg.scl_io_num = AUDIO_CODEC_I2C_SCL_PIN;
199+
i2c_cfg.sda_io_num = AUDIO_CODEC_I2C_SDA_PIN;
194200
esp_err_t ret = i2c_param_config(port, &i2c_cfg);
195201
if (ret != ESP_OK) {
196202
return -1;
@@ -199,7 +205,6 @@ static int ut_i2c_init(uint8_t port)
199205
#endif
200206
}
201207

202-
203208
static int ut_i2c_deinit(uint8_t port)
204209
{
205210
#ifdef USE_IDF_I2C_MASTER
@@ -213,23 +218,20 @@ static int ut_i2c_deinit(uint8_t port)
213218
#endif
214219
}
215220

216-
217221
#if USE_IDF5
218222
static void ut_set_i2s_mode(i2s_comm_mode_t out_mode, i2s_comm_mode_t in_mode)
219223
{
220224
i2s_in_mode = in_mode;
221225
i2s_out_mode = out_mode;
222226
}
223227

224-
225228
static void ut_clr_i2s_mode(void)
226229
{
227230
i2s_in_mode = I2S_COMM_MODE_STD;
228231
i2s_out_mode = I2S_COMM_MODE_STD;
229232
}
230233
#endif
231234

232-
233235
static int ut_i2s_init(uint8_t port)
234236
{
235237
#if USE_IDF5
@@ -245,10 +247,10 @@ static int ut_i2s_init(uint8_t port)
245247
.clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(16000),
246248
.slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG(16, I2S_SLOT_MODE_STEREO),
247249
.gpio_cfg ={
248-
.mclk = 0,
249-
.bclk = 34,
250-
.ws = 33,
251-
.dout = 13,
250+
.mclk = AUDIO_I2S_GPIO_MCLK,
251+
.bclk = AUDIO_I2S_GPIO_BCLK,
252+
.ws = AUDIO_I2S_GPIO_WS,
253+
.dout = AUDIO_I2S_GPIO_DOUT,
252254
.din = -1,
253255
},
254256
};
@@ -262,10 +264,10 @@ static int ut_i2s_init(uint8_t port)
262264
.slot_cfg = I2S_TDM_PHILIPS_SLOT_DEFAULT_CONFIG(16, I2S_SLOT_MODE_STEREO, slot_mask),
263265
.clk_cfg = I2S_TDM_CLK_DEFAULT_CONFIG(16000),
264266
.gpio_cfg = {
265-
.mclk = 0,
266-
.bclk = 34,
267-
.ws = 33,
268-
.dout = 13,
267+
.mclk = AUDIO_I2S_GPIO_MCLK,
268+
.bclk = AUDIO_I2S_GPIO_BCLK,
269+
.ws = AUDIO_I2S_GPIO_WS,
270+
.dout = AUDIO_I2S_GPIO_DOUT,
269271
.din = -1,
270272
},
271273
};
@@ -305,18 +307,17 @@ static int ut_i2s_init(uint8_t port)
305307
};
306308
int ret = i2s_driver_install(port, &i2s_config, 0, NULL);
307309
i2s_pin_config_t i2s_pin_cfg = {
308-
.mck_io_num = 0,
309-
.bck_io_num = 34,
310-
.ws_io_num = 33,
311-
.data_out_num = 13,
312-
.data_in_num = 14,
310+
.mck_io_num = AUDIO_I2S_GPIO_MCLK,
311+
.bck_io_num = AUDIO_I2S_GPIO_BCLK,
312+
.ws_io_num = AUDIO_I2S_GPIO_WS,
313+
.data_out_num = AUDIO_I2S_GPIO_DOUT,
314+
.data_in_num = AUDIO_I2S_GPIO_DIN,
313315
};
314316
i2s_set_pin(port, &i2s_pin_cfg);
315317
#endif
316318
return ret;
317319
}
318320

319-
320321
static int ut_i2s_deinit(uint8_t port)
321322
{
322323
#if USE_IDF5

0 commit comments

Comments
 (0)