rt-thread-official/bsp/wch/risc-v/ch32v208w-r0/README_ZN.md

257 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CH32V208W-R0 BSP 说明
**中文** | [英文](README.md)
## 1 开发板简介
CH32V208W-R0 是 WCH 推出的一款基于 RISC-V 内核的开发板,最高主频为 144Mhz。比较适合入门学习 RISC-V 架构。
![board](./figures/ch32v208.png)
**基本特性:**
- MCUCH32V208WBU6主频 144MHzFLASH和RAM可配置
- LED2个。
- 按键3个 Download ,Reset User 。
- USB2个Tpye-C。
- 网口1个内置 10M PHY。
- 板上无 WCH-Link 下载调试工具,需外接。
### 1.2 编译说明
板级包支持 RISC-V GCC 开发环境,以下是具体版本信息:
| IDE/编译器 | 已测试版本 |
| ---------- | -------------------- |
| GCC | WCH RISC-V GCC 8.2.0 |
### 1.3 使用说明
>本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
### 1.4 使用Env编译BSP
本节讲解如何使用Env工具来编译BSP工程。
#### 1.4.1 编译BSP
1. [下载WCH编译工具链](https://github.com/NanjingQinheng/sdk-toolchain-RISC-V-GCC-WCH/archive/refs/tags/V1.0.0.zip)
2. 下载Env工具[最新版本](https://github.com/RT-Thread/env-windows/releases)
3. 下载RT-Thread[最新源码](https://github.com/RT-Thread/rt-thread/archive/refs/heads/master.zip)
4. 并在当前BSP根目录下打开Env工具并执行 `scons --exec-path=D:\sdk-toolchain-RISC-V-GCC-WCH-1.0.0\bin` 命令,在指定工具链位置的同时直接编译。
5. 编译完成之后会生成 **rtthread.bin** 文件。
![sconscompile](./figures/sconscompile.jpg)
#### 1.4.2 硬件连接
使用数据线连接板载 wch-link 到 PC打开电源开关。
#### 1.4.3 下载
打开 WCH RISC-V MCU ProgrammerTool 下载软件,选择刚刚生成的 **rtthread.bin** 文件,进行下载。
![tool](./figures/tool.png)
#### 1.4.4 运行结果
在终端工具里打开板载 wch-link 串口WCHDapLink SERIAL默认115200-8-1-N复位设备后在串口上可以看到 RT-Thread 的输出信息:
![end](./figures/end.png)
### 1.5 使用VSCode编译工程
在Env终端中敲入命令 `scons --target=vsc` 来生成VSCode工程. 接着敲入命令 `code .` 来打开VSCode.
使用 **VSCode 终端** 敲入命令 `scons -j12 --exec-path=D:\sdk-toolchain-RISC-V-GCC-WCH-1.0.0bin` 来编译工程。
![vscode-terminal](./figures/vscode-terminal.png)
### 1.6 导入 RT-Thread Studio 工程
#### 1.6.1 导入
打开 RT-Thread Studio 后点击:文件->导入:
![import](./figures/import.png)
选择“RT-Thread Bsp 到工作空间中”:
![windows](./figures/windows.png)
填写项目信息Bsp 根目录为 `\rt-thread\bsp\wch\risc-v\ch32v307v-r1` 目录:
![config](./figures/config.png)
#### 1.6.2 配置环境
工程导入后进行编译环境的设置,首先点击“打开构建设置”进入设置界面:
![set](./figures/set.png)
将编译链路径复制到 Toolchain path 中:
![toolchain](./figures/toolchain.png)
如图更改 Prefix
![prefix](./figures/prefix.png)
进行工具设置:
![toolset](./figures/toolset.png)
#### 1.6.3 编译
编译结果如下:
#### ![success](./figures/success.png)
## 2 CH32V208W-R0上手指南
**中文** | [English](./CH32V208W-R0 Getting Started Guide.md)
CH32V208W-R0支持RT-Studio工程本上手指南以RT-Studio环境的开发说明举例。
### 2.1 准备阶段
- 拉取rt-thread的github仓库到本地[链接地址](https://github.com/RT-Thread/rt-thread)。
- 下载安装RT-Thread Studio,[链接地址](https://www.rt-thread.org/studio.html)。
- 准备ESP8266模块。
### 2.2 BSP上手阶段
#### 2.2.1 点击文件,选择导入选项。
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/1import.png" style="zoom:80%;" />
#### 2.2.2 选择导入RT-Thread Bsp 到工作空间中
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/2workspace.png" style="zoom:80%;" />
<div STYLE="page-break-after: always;"></div>
#### 2.2.3 按照示例填写工程信息
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/3info.png" style="zoom:80%;" />
### 2.4 配置工程
导入工程后在工程的根目录下存在参考文档readme,首先按照readme.md进行基础的配置
为了减小链接时添加的标准库带来的内存增大我们可以选择使用相对占用内存较小的newlib,具体操作如下:
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/13newlib.png" style="zoom:67%;" />
### 2.5 编译工程
点击编译选项:
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/4build.png)
编译结果:
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/5result.png)
工程编译通过,至此,准备阶段完成。
## 3 使用RT-Studio配置BSP驱动
RT-Thread每个BSP已经默认适配了若干片上外设驱动与板载外设驱动使用RT-Studio将相应的开关直接打开并依据使用环境配置相应参数即可使用。由于各个管脚存在复用功能所以并不是所有的片上外设驱动与板载外设驱动都可以同时使用使用时需要结合原理图来合理开启相应的外设驱动。
RT-Thread有许多软件软件包使用RT-Studio将相应软件包的开关打开便可将软件包添加至工程使用。
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/6pkgs.png" style="zoom:80%;" />
## 4 联网实操使用ESP8266模块联网
ESP8266是面向物联网应用的高性价比、高度集成的 Wi-Fi MCU,也可以将其作为一个单独的WIFI模块使用,其实物图如下。ESP8266模组通常支持[AT指令](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/at/at)的操作方式RT-Thread针对这些支持AT指令的模组提供了一个抽象层,本小结将使用AT组将与ESP8266通讯并连接WIFI。
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/7esp8266.png" style="zoom:60%;" />
### 4.1 配置板载UART外设
使用AT组件与ESP8266模组通讯采用串口通讯的方式所以需要再使能一路串口这里我们使用UART2串口驱动默认已经支持我们仅需要在使用时在RT-Studio中打开即可具体操作方式如下:
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/8setting.png)
开启选项后,`ctrl + s`保存设置串口2即被初始化。
### 4.2 使用RT-Studio配置AT组件
点击左侧的RT-Thread Settings选项弹出右侧的配置菜单在搜索栏中输入AT,选择`AT设备 `使能AT设备
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/9AT.png" style="zoom: 50%;" />
选择ESP8266并配置相应参数示例如下:
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/10wifinfo.png" style="zoom:80%;" />
### 4.3 ESP8266模组连接
将板子上的`PA2`管脚与模组的`RX`管脚连接,将`PA3`管脚与模组的`TX`管脚连接,并使用开发板引出的电源为模组供电。
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/11board.png" style="zoom: 25%;" />
### 4.4 使能内核调试功能。
为了更加直观的了解组件的初始化过程,我们可以使能内核调试功能来观察(不需要时可以关掉),操作方法如下:
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/12kdebug.png)
重新编译并烧录固件shell输出如下
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/14shellinfo.png)
### 4.5 wifi联网测试
我门在使用AT时已经配置了WIFI的ID与密码在shell中输入`ping www.baidu.com`命令测试WIFI连接情况。
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/15ping.png)
输出类似内容ESP8266模组便联网成功
## 5 RTduino组件
[RTduino](https://github.com/Yaochenger/RTduino)是RT-Thread实时操作系统的Arduino生态兼容层为[RT-Thread社区](https://github.com/RT-Thread/rt-thread)的子社区、Arduino开源项目的下游项目旨在兼容Arduino社区生态来丰富RT-Thread社区软件包生态如上千种分门别类的Arduino库以及Arduino社区优秀的开源项目并降低RT-Thread操作系统以及与RT-Thread适配的芯片的学习门槛。
### 5.1 配置RTduino
将板载设备驱动中的RTduino选项打开。
![](E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/16rtduino.png)
开启选项后,`ctrl + s`保存设置RTduino软件包即可添加至工程。
### 5.2 使用RTduino
在`arduino_main.cpp`中会看到熟悉的`void setup(void)`与`void loop(void)`,至此我们便可以在此像使用arduino官方板一样使用该BSP示例代码如下
```c++
#include <Arduino.h>
void setup(void)
{
/* put your setup code here, to run once: */
pinMode(LED_BUILTIN, OUTPUT);
}
void loop(void)
{
/* put your main code here, to run repeatedly: */
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
delay(100);
}
```
工程默认执行一个LED闪烁的功能ch32v208w-r0这款板子默认板载LED不与管脚直接连接用户在使用LED时需要使用杜邦线手动将LED与控制管脚连接起来,现象如下图所示:
<img src="E:/RTT/rt-thread/bsp/wch/risc-v/ch32v208w-r0/figures/17led.png" style="zoom: 25%;" />
至此ch32v208w-r0的基础环境便搭建测试完毕