ESPRESSIF
ESP32 핀 선택 - Any GPIO란 무엇 인가 ?
DeviceIN
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, }, }, |