summaryrefslogtreecommitdiff
path: root/bsp/ESP/ESP32_C6/README.md
blob: e5c557af2db0be787a43bd66c3ba1ab65a2d8a6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# ESP32-C6-DevKitC-1 BSP 说明

## 1 开发板简介

ESP32-C6-DevKitC-1 是乐鑫推出的一款基于 RISC-V 内核的开发板,模组为 ESP32-C6-WROOM-1。本板读到的芯片 revision 是 v0.2。

**基本特性:**

- MCU:ESP32-C6,主频 160MHz,Flash 8MB
- 晶振:40MHz
- USB:2 个 Type-C。标着 UART 的口是 CP210x,接到 UART0(TX GPIO16,RX GPIO17)
- 不用 WCH-Link

更多信息请访问 [ESP32-C6-DevKitC-1](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitc-1/user_guide.html)

## 外设支持

本 BSP 目前对外设的支持情况如下:

| **片上外设** | **支持情况** | **备注** |
| :----------- | :----------: | :------- |
| GPIO         |     支持     | GPIO1 作输入。接 3V3 为 high,接 GND 为 low |
| UART         |     支持     | UART0,TX GPIO16,RX GPIO17。115200,能进 msh |
| ADC          |     支持     | ADC1 通道 1(GPIO1)。接地 2167,接 3V3 为 4095,没有校准 |
| GDBStub      |     支持     | 打开 `BSP_ENABLE_GDBSTUB` 后,出错会停进 stub。默认关闭 |
| I2C          |    待支持    |          |
| SPI          |    待支持    | GPIO7 接到 GPIO2,发出 `0xA5`,收回 `0xA5000000`,对不上一字节 |
| PWM          |    待支持    |          |
| Wi-Fi        |    待支持    |          |
| BLE          |    待支持    |          |
| 802.15.4     |    待支持    |          |

### IO 在板级支持包中的映射情况

| IO     | 板级包中的定义        |
| ------ | --------------------- |
| GPIO16 | UART0_TX              |
| GPIO17 | UART0_RX              |
| GPIO1  | 已测输入,兼 ADC1 通道 1 |

## 2 编译说明

板级包支持 RISC-V GCC 开发环境,以下是具体版本信息:

| IDE/编译器 | 已测试版本 |
| ---------- | ---------- |
| GCC        | Espressif riscv32-esp-elf GCC 15.2.0 |

## 3 使用说明

> 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果。

### 3.1 使用 Env 编译 BSP

1. 下载 [riscv32-esp-elf GCC 15.2.0](https://github.com/espressif/crosstool-NG/releases/download/esp-15.2.0_20251204/riscv32-esp-elf-15.2.0_20251204-x86_64-w64-mingw32.zip)(Windows)。Linux 用同版本的 `linux-amd64` 包。
2. 下载 Env 工具 [最新版本](https://github.com/RT-Thread/env-windows/releases)
3. 将 [esp-idf 提交 `4fa003074a73774369d38123749fe64b7b4acbd3`](https://github.com/cms19859230182-lang/esp-idf/commit/4fa003074a73774369d38123749fe64b7b4acbd3)(`bsp/esp32c6-scons`)放到 `packages/ESP-IDF-latest`。官方 `RT-Thread-packages/esp-idf` 里还没有这些 C6 源码,`pkgs --update` 下到的包编不过。SConstruct 发现包里没有 C6 时,拉取的也是这一次提交,不跟分支尖走。
4. 在当前 BSP 目录下执行 `scons --exec-path=工具链的bin目录`
5. 编译完成之后会生成 **rtthread.bin** 文件。默认打开 GPIO、UART0 和 ADC。

### 3.2 硬件连接

串口用板上标着 UART 的 USB 口。不用杜邦线,也不用 WCH-Link。

### 3.3 下载

bootloader 和分区表在 `builtin_imgs`。bootloader 必须是这份 ESP32-C6 的,不能用 ESP32-C3 的。

```sh
esptool.py --chip esp32c6 -p COMx -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m 0x0 builtin_imgs/bootloader.bin 0x8000 builtin_imgs/partition-table.bin 0x10000 rtthread.bin
```

### 3.4 运行结果

在终端工具里打开串口(115200-8-1-N),先打开串口再复位,可以看到 RT-Thread 的输出信息和 `msh >`。`help`、`version` 有回应。

GDB 默认关闭。要在出错后停住,打开 `BSP_ENABLE_GDBSTUB` 再烧录,然后用本目录的 `esp32c6.gdb`。