mirror of
https://github.com/micropython/micropython.git
synced 2025-12-16 01:40:14 +01:00
esp32: Add support for ESP32-C5 SoCs.
Signed-off-by: yuan_mo <2286087148@qq.com> Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
21
ports/esp32/lockfiles/dependencies.lock.esp32c5
Normal file
21
ports/esp32/lockfiles/dependencies.lock.esp32c5
Normal file
@@ -0,0 +1,21 @@
|
||||
dependencies:
|
||||
espressif/mdns:
|
||||
component_hash: 46ee81d32fbf850462d8af1e83303389602f6a6a9eddd2a55104cb4c063858ed
|
||||
dependencies:
|
||||
- name: idf
|
||||
require: private
|
||||
version: '>=5.0'
|
||||
source:
|
||||
registry_url: https://components.espressif.com/
|
||||
type: service
|
||||
version: 1.1.0
|
||||
idf:
|
||||
source:
|
||||
type: idf
|
||||
version: 5.5.1
|
||||
direct_dependencies:
|
||||
- espressif/mdns
|
||||
- idf
|
||||
manifest_hash: 3b18b5bbac91c9fe5098d3759a37c84ed0828546d8cbc92e26e4c1698e689c8a
|
||||
target: esp32c5
|
||||
version: 2.0.0
|
||||
@@ -100,6 +100,13 @@ static const machine_adc_obj_t madc_obj[] = {
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_3, GPIO_NUM_3},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_4, GPIO_NUM_4},
|
||||
{{&machine_adc_type}, ADCBLOCK2, ADC_CHANNEL_0, GPIO_NUM_5},
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_0, GPIO_NUM_1},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_1, GPIO_NUM_2},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_2, GPIO_NUM_3},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_3, GPIO_NUM_4},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_4, GPIO_NUM_5},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_5, GPIO_NUM_6},
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_0, GPIO_NUM_0},
|
||||
{{&machine_adc_type}, ADCBLOCK1, ADC_CHANNEL_1, GPIO_NUM_1},
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "driver/i2c_master.h"
|
||||
#else
|
||||
#include "driver/i2c.h"
|
||||
#include "esp_clk_tree.h"
|
||||
#include "hal/i2c_ll.h"
|
||||
#endif
|
||||
|
||||
@@ -224,6 +225,8 @@ int machine_hw_i2c_transfer(mp_obj_base_t *self_in, uint16_t addr, size_t n, mp_
|
||||
#if SOC_I2C_SUPPORT_XTAL
|
||||
#if CONFIG_XTAL_FREQ > 0
|
||||
#define I2C_SCLK_FREQ (CONFIG_XTAL_FREQ * 1000000)
|
||||
#elif CONFIG_XTAL_FREQ == 0 && CONFIG_IDF_TARGET_ESP32C5
|
||||
// The crystal is auto-detected, so the I2C sclk frequency will be computed at runtime.
|
||||
#else
|
||||
#error "I2C uses XTAL but no configured freq"
|
||||
#endif // CONFIG_XTAL_FREQ
|
||||
@@ -257,7 +260,13 @@ static void machine_hw_i2c_init(machine_hw_i2c_obj_t *self, bool first_init) {
|
||||
.master.clk_speed = self->freq,
|
||||
};
|
||||
i2c_param_config(self->port, &conf);
|
||||
int timeout = i2c_ll_calculate_timeout_us_to_reg_val(I2C_SCLK_FREQ, self->timeout_us);
|
||||
#if CONFIG_IDF_TARGET_ESP32C5
|
||||
uint32_t i2c_sclk_freq;
|
||||
check_esp_err(esp_clk_tree_src_get_freq_hz(I2C_CLK_SRC_DEFAULT, ESP_CLK_TREE_SRC_FREQ_PRECISION_APPROX, &i2c_sclk_freq));
|
||||
#else
|
||||
uint32_t i2c_sclk_freq = I2C_SCLK_FREQ;
|
||||
#endif
|
||||
int timeout = i2c_ll_calculate_timeout_us_to_reg_val(i2c_sclk_freq, self->timeout_us);
|
||||
i2c_set_timeout(self->port, (timeout > I2C_LL_MAX_TIMEOUT) ? I2C_LL_MAX_TIMEOUT : timeout);
|
||||
i2c_driver_install(self->port, I2C_MODE_MASTER, 0, 0, 0);
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ static mp_obj_t machine_pin_obj_init_helper(const machine_pin_obj_t *self, size_
|
||||
// reset the pin to digital if this is a mode-setting init (grab it back from ADC)
|
||||
if (args[ARG_mode].u_obj != mp_const_none) {
|
||||
if (rtc_gpio_is_valid_gpio(index)) {
|
||||
#if !(CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !(CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6)
|
||||
rtc_gpio_deinit(index);
|
||||
#endif
|
||||
}
|
||||
@@ -163,6 +163,11 @@ static mp_obj_t machine_pin_obj_init_helper(const machine_pin_obj_t *self, size_
|
||||
CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_USB_PAD_ENABLE);
|
||||
}
|
||||
#endif
|
||||
#if CONFIG_IDF_TARGET_ESP32C5 && !MICROPY_HW_ESP_USB_SERIAL_JTAG
|
||||
if (index == 13 || index == 14) {
|
||||
CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_USB_PAD_ENABLE);
|
||||
}
|
||||
#endif
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 && !MICROPY_HW_ESP_USB_SERIAL_JTAG
|
||||
if (index == 12 || index == 13) {
|
||||
CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_USB_PAD_ENABLE);
|
||||
|
||||
@@ -111,6 +111,32 @@
|
||||
#define MICROPY_HW_ENABLE_GPIO20 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO21 (1)
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
|
||||
#define MICROPY_HW_ENABLE_GPIO0 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO1 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO2 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO3 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO4 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO5 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO6 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO7 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO8 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO9 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO10 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO11 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO12 (1)
|
||||
#if !MICROPY_HW_ESP_USB_SERIAL_JTAG
|
||||
#define MICROPY_HW_ENABLE_GPIO13 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO14 (1)
|
||||
#endif
|
||||
#define MICROPY_HW_ENABLE_GPIO23 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO24 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO25 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO26 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO27 (1)
|
||||
#define MICROPY_HW_ENABLE_GPIO28 (1)
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
|
||||
#define MICROPY_HW_ENABLE_GPIO0 (1)
|
||||
|
||||
@@ -172,6 +172,8 @@
|
||||
#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "mpy-esp32c2"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3
|
||||
#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "mpy-esp32c3"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "mpy-esp32c5"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "mpy-esp32c6"
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user