# ESP32-C3 Device Metadata # # Empty [`device.driver`] tables imply `partial` support status. # # If you modify a driver support status, run `cargo xtask update-chip-support-table` to # update the table in the esp-hal README. [device] name = "esp32c3" arch = "riscv" cores = 1 trm = "https://www.espressif.com/sites/default/files/documentation/esp32-c3_technical_reference_manual_en.pdf" peripherals = [ # Peripherals available in the PAC: "aes", "apb_ctrl", "apb_saradc", "assist_debug", "dma", "ds", "efuse", "extmem", "gpio", "gpio_sd", "hmac", "i2c0", "i2s0", "interrupt_core0", "io_mux", "ledc", "rmt", "rng", "rsa", "rtc_cntl", "sensitive", "sha", "spi0", "spi1", "spi2", "system", "systimer", "timg0", "timg1", "twai0", "uart0", "uart1", "uhci0", "uhci1", "usb_device", "xts_aes", ] virtual_peripherals = [ "adc1", "adc2", ] symbols = [ # Additional peripherals defined by us (the developers): "assist_debug_sp_monitor", "assist_debug_region_monitor", "gdma", "phy", "tsens", # ROM capabilities "rom_crc_le", "rom_crc_be", "rom_md5_bsd", # Wakeup SOC based on ESP-IDF: "pm_support_wifi_wakeup", "pm_support_bt_wakeup", "uart_support_wakeup_int", "gpio_support_deepsleep_wakeup", ] memory = [{ name = "dram", start = 0x3FC8_0000, end = 0x3FCE_0000 }] [device.adc] support_status = "partial" instances = [ { name = "adc1" }, { name = "adc2" }, ] [device.gpio] support_status = "supported" gpio_function = 1 input_signal_max = 100 output_signal_max = 128 constant_0_input = 0x1f constant_1_input = 0x1e instances = [ { name = "gpio", pins = [ { pin = 0, kind = ["input", "output", "analog", "rtc"] }, { pin = 1, kind = ["input", "output", "analog", "rtc"] }, { pin = 2, kind = ["input", "output", "analog", "rtc"], af_input = { 2 = "FSPIQ" }, af_output = { 2 = "FSPIQ" } }, { pin = 3, kind = ["input", "output", "analog", "rtc"] }, { pin = 4, kind = ["input", "output", "analog", "rtc"], af_input = { 2 = "FSPIHD" }, af_output = { 0 = "USB_JTAG_TMS", 2 = "FSPIHD" } }, { pin = 5, kind = ["input", "output", "analog", "rtc"], af_input = { 2 = "FSPIWP" }, af_output = { 0 = "USB_JTAG_TDI", 2 = "FSPIWP" } }, { pin = 6, kind = ["input", "output"], af_input = { 2 = "FSPICLK" }, af_output = { 0 = "USB_JTAG_TCK", 2 = "FSPICLK_MUX" } }, { pin = 7, kind = ["input", "output"], af_input = { 2 = "FSPID" }, af_output = { 0 = "USB_JTAG_TDO", 2 = "FSPID" } }, { pin = 8, kind = ["input", "output"] }, { pin = 9, kind = ["input", "output"] }, { pin = 10, kind = ["input", "output"], af_input = { 2 = "FSPICS0" }, af_output = { 2 = "FSPICS0" } }, { pin = 11, kind = ["input", "output"] }, { pin = 12, kind = ["input", "output"], af_input = { 0 = "SPIHD" }, af_output = { 0 = "SPIHD" } }, { pin = 13, kind = ["input", "output"], af_input = { 0 = "SPIWP" }, af_output = { 0 = "SPIWP" } }, { pin = 14, kind = ["input", "output"], af_output = { 0 = "SPICS0" } }, { pin = 15, kind = ["input", "output"], af_output = { 0 = "SPICLK_MUX" } }, { pin = 16, kind = ["input", "output"], af_input = { 0 = "SPID" }, af_output = { 0 = "SPID" } }, { pin = 17, kind = ["input", "output"], af_input = { 0 = "SPIQ" }, af_output = { 0 = "SPIQ" } }, { pin = 18, kind = ["input", "output"] }, { pin = 19, kind = ["input", "output"] }, { pin = 20, kind = ["input", "output"], af_input = { 0 = "U0RXD" } }, { pin = 21, kind = ["input", "output"], af_output = { 0 = "U0TXD" } }, ] }, ] [device.i2c_master] support_status = "supported" instances = [{ name = "i2c0" }] has_fsm_timeouts = true has_hw_bus_clear = true ll_intr_mask = 0x3ffff fifo_size = 32 has_bus_timeout_enable = true max_bus_timeout = 0x1F has_conf_update = true has_arbitration_en = true has_tx_fifo_watermark = true bus_timeout_is_exponential = true [device.interrupts] support_status = "partial" status_registers = 2 [device.rmt] support_status = "partial" ram_start = 0x60016400 channel_ram_size = 48 [device.spi_master] support_status = "supported" instances = [{ name = "spi2" }] [device.timergroup] instances = [{ name = "timg0" }, { name = "timg1" }] [device.uart] support_status = "supported" [device.ds] support_status = "not_supported" # Other drivers which are partially supported but have no other configuration: ## Crypto [device.aes] [device.rsa] [device.sha] [device.hmac] [device.rng] ## Interfaces [device.i2s] [device.ledc] [device.spi_slave] [device.twai] [device.usb_serial_jtag] ## Miscellaneous [device.assist_debug] [device.dma] [device.io_mux] [device.temp_sensor] [device.sleep] [device.systimer] ## Radio [device.wifi] [device.bt]