ESP32 핀 선택 - Any GPIO란 무엇 인가 ?

ESPRESSIF|2024. 1. 22. 13:41

Data sheet의 핀맵을 보면, Any GPIO라고 나옵니다. 즉, 아무 핀이나 사용이 된다는 것일까요 ?

맞습니다. GPIO핀 중에서 아무 핀이나 설정이 가능하고, 이는 펌웨어의 드라이버에서 선택이 가능하다는 얘기 입니다.

그러나, 핀 자체의 특성(예로, 입력전용, 초기값, Glitch 등 )이 있어 핀 자체 특성은 파악을 해야 합니다. 

 

 

UART의 경우 : ESP32-S2예제로, 아래 함수에서 설정 하면 됩니다. 

 

https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/uart.html
ESP_ERROR_CHECK(uart_set_pin(UART_NUM_1, 4, 5, 18, 19));

 

I2C의 경우 : 

 

https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/i2c.html#inter-integrated-circuit-i2c
i2c_master_bus_config_t i2c_mst_config = {
    .clk_source = I2C_CLK_SRC_DEFAULT,
    .i2c_port = TEST_I2C_PORT,
    .scl_io_num = I2C_MASTER_SCL_IO,
    .sda_io_num = I2C_MASTER_SDA_IO,
    .glitch_ignore_cnt = 7,
    .flags.enable_internal_pullup = true,
};

 

I2S의 경우 :

https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/i2s.html
i2s_std_config_t std_cfg = {
    .clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(48000),
    .slot_cfg = I2S_STD_MSB_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_32BIT, I2S_SLOT_MODE_STEREO),
    .gpio_cfg = {
        .mclk = I2S_GPIO_UNUSED,
        .bclk = GPIO_NUM_4,
        .ws = GPIO_NUM_5,
        .dout = GPIO_NUM_18,
        .din = I2S_GPIO_UNUSED,
        .invert_flags = {
            .mclk_inv = false,
            .bclk_inv = false,
            .ws_inv = false,
        },
    },