add ch32v evb start doc

add ch32v evb start doc
This commit is contained in:
Supowang
2022-05-15 17:17:53 +08:00
parent 10816214f3
commit e21869f48b
45 changed files with 337 additions and 0 deletions

View File

@@ -0,0 +1,337 @@
# CH32V_EVB开发套件TencentOS Tiny 入门指南
| Revision | Date | Description |
| -------- | --------- | ----------- |
| 1.0 | 2022-05-15 | CH32V_EVB开发套件TencentOS Tiny 入门指南 |
## 一、定制开发板CH32V_EVB硬件简介
### 1.1 开发板简介
CH32V_EVB是腾讯物联网操作系统TencentOS tiny 团队联合沁恒微电子设计的一款物联网评估板用于TencentOS tiny 基础内核、RISC-V IP核架构和IoT组件功能体验和评估。
开发板实物如下图:
![](image/CH32V_EVB_guide/CH32V_EVB.png)
### 1.2 开发板特性
- 内置TencentOS Tiny开源物联网操作系统
- 开发板采用沁恒RISC-V MCU CH32V307VCT6芯片CH32V305/7系列是基于沁恒自研RISC-V架构微处理器青稞V4系列设计的32位工业级互联型微控制器配备了硬件堆栈区、快速中断入口在标准RISC-V基础上大大提高了中断响应速度。加入单精度浮点指令集扩充堆栈区具有更高的运算性能。扩展串口UART数量到8组定时器到10组其中4组高级定时器。提供USB2.0高速接口480Mbps并内置了PHY收发器以太网MAC升级到千兆并集成了10M-PHY模块。
- 64KB SRAM256KB Flash
- 板载Type-C接口WCH-LINK仿真器
- 板载esp8266 WiFi模组支持腾讯云固件
- 板载以太网接口
- 板载物联网俱乐部WAN Interface接口可支持NB-IoT、WiFi、4G cat1、LoRa等模组
- 板载物联网俱乐部E53 Interface接口可扩展全系E53传感器以及音频模块
- 板载标准24P DVP摄像头接口可支持最高500万像素摄像头
- 板载1.54寸 IPS高清显示屏支持240*240分辨率
- 预留SD卡、用户按键、SPI Flash
- 扩展IO口方便开发者扩展硬件模块
### 1.3 开发板硬件详解
#### 1.3.1 电源电路
* 电源稳压电路
外部USB输入电压一般为5V但这并不能直接作为电源给开发板供电CH32V_EVB上的元器件供电电压范围普遍在1.8V-3.6V推荐电压均为3.3V因此需要将5V的电平转换成3.3V供给开发板上数字IC使用这里使用TLV62569DBVR作为3.3V稳压器芯片。
TLV62569DBVR是TI出品的一款高效率脉冲宽度降压型DC/DC转换器。输入电压2.5V-5.5V输出电压可调范围为0.6V-5.5V输出电流可以达到2A。在我们提供的电路中将输出调节至3.3V,让开发板正常工作。
![](image/CH32V_EVB_guide/power_sch.png)
#### 1.3.2 CH32V最小系统电路
单片机最小系统或者叫最小硬件单元电路指用最少元器件组成的单片机可以正常工作的系统。最小系统基本由电源、单片机、晶振、按键复位电路、用户LED等接口组成电源使用3.3V直接供电,其他部分原理图如下:
![](image/CH32V_EVB_guide/mcu_sch.png)
#### 1.3.3 WCH-Link仿真器下载器电路
板载仿真器可以让开发调试更方便。WCH-Link是沁恒微电子官方提供的MCU仿真器方案可以支持CH32V系列risc-v MCU下载调试也可以支持ARM Cortex M核下载调试同时支持虚拟串口功能电路如下
![](image/CH32V_EVB_guide/sch_wchlink.png)
#### 1.3.4 LCD显示电路
TFT LCD液晶显示模块用来向用户显示系统状态、参数或者要输入系统的功能。为了展示良好的视觉效果开发板使用ST7789V 控制器驱动的TFT LCD显示屏分辨率为240*240。该款LCD使用SPI接口由于SPI接口空闲时引脚要上拉因此下面的原理图中接了10k电阻上拉然后才接入MCU引脚。
![](image/CH32V_EVB_guide/sch_lcd.png)
#### 1.3.5 以太网电路
开发板主控CH32V307芯片内置了以太网控制器这里外围电路只需要使用一个RJ45以太网变压器 HY911105AE即可HY911105AE带变压器和LED灯电路如下图所示
![](image/CH32V_EVB_guide/sch_net.png)
#### 1.3.6 USB HOST/Device电路
开发板主控CH32V307芯片内置了一个高速和低速USB控制器这里开发板将两个UCB都通过TYPE-C口引出了电路如下
![](image/CH32V_EVB_guide/sch_usb.png)
#### 1.3.7 存储电路扩展
开发板带有一个SPI Nor Flash芯片扩展和单bit SD卡扩展可用于用户存储一部分数据和存储空间扩展电路图如下
![](image/CH32V_EVB_guide/sch_flash.png)
#### 1.3.8 多串口切换电路
开发板带有多串口切换功能通过跳线帽可以切换串口映射关系通过组合可以使用PC机上的串口助手发送AT命令来调试WAN口的通信模组或者板载WiFi也可以使用正常模式通过MCU串口来控制WiFi和WAN口模组同时wch-link虚拟串口连接PC可以做日志输出。串口切换电路图如下
![](image/CH32V_EVB_guide/sch_uart_switch.png)
#### 1.3.9 E53 传感器扩展接口
开发板设计有E53接口的传感器扩展板接口该接口可兼容所有E53接口的传感器扩展板实现不同物联网案例场景的快速搭建。该接口可接入UART、SPI、I2C、ADC等通信协议的传感器也可以扩展音频模块其原理图如下图所示。
![](image/CH32V_EVB_guide/sch_e53_interface.png)
#### 1.3.10 WAN通信模块扩展接口
开发板设计有通信扩展板的扩展接口该接口可接入WIFI、NB-IoT、2G、腾讯定制IoT模组、LoRaWAN等不同通信方式的通信扩展板以满足不同场景上云的需求其原理图如下图所示。
![](image/CH32V_EVB_guide/sch_wan_interface.png)
#### 1.3.11 ESP8266 WIFI电路
开发板板载了一个esp8266 WiFi模块通过串口AT命令进行控制电路如下图所示
![](image/CH32V_EVB_guide/sch_wifi.png)
#### 1.3.13 摄像头电路
开发板板载了标准的DVP 24P摄像头接口可以接OV2640 OV5640等摄像头模组MCU芯片内置DVP摄像头控制器电路图和控制引脚参考如下
![](image/CH32V_EVB_guide/sch_camera.png)
#### 1.3.12 扩展IO
开发板多余的IO引脚全部引出如下图所示
![](image/CH32V_EVB_guide/sch_pinmap.png)
## 二、 定制开发板CH32V_EVB软件开发环境准备
### 2.1 MounRiver Studio IDE下载与安装
MounRiver StudioMRS是一款面向RISC-V、ARM等内核MCU的集成开发环境提供专业嵌入式项目所需的开发、调试环境、烧录工具已经完善的项目管理能力是目前使用相对方便的国产自研RISC-V开发环境。这里我们使用该IDE来进行risc-v相关应用开发。首先我们到MounRiver Studio官网下载软件安装包下载地址http://www.mounriver.com/download
![](image/CH32V_EVB_guide/MRS_Download.png)
安装完成后打开软件可以进入到欢迎界面
![](image/CH32V_EVB_guide/MRS_welcome.png)
### 2.2 新建CH32V工程
菜单栏点击File->New->MounRiver project 开始创建工程
![](image/CH32V_EVB_guide/PR_001.png)
进入工程向导后,按照如下图所示选择芯片,填写工程信息。
![](image/CH32V_EVB_guide/PR_002.png)
完成后会生成工程,如图所示:
![](image/CH32V_EVB_guide/PR_003.png)
### 2.3 编译下载调试CH32V工程
MRS IDE默认集成了TencentOS Tiny工程模板一键即可生成TencentOS TIny 内核基础工程,点击如下图所示图标编译工程,编译完成后可以在控制台输出看到编译结果。
![](image/CH32V_EVB_guide/PR_004.png)
如下图所示使用USB线连接和PC机和开发板点击debug按钮就可以进入调试模式程序下载到开发板上可以打断点、单步、跳步执行全速执行查看寄存器反汇编、内存等
![](image/CH32V_EVB_guide/PR_005.png)
全速运行后可以看到串口助手打印TencentOS Tiny的日志信息可以看到两个任务交替运行。
![](image/CH32V_EVB_guide/PR_006.png)
除了调试按钮外,我们也可以点击下载按钮直接将程序烧写到开发板上,如下图所示:
![](image/CH32V_EVB_guide/PR_007.png)
## 三、基于TencentOS Tiny 和CH32V_EVB开发板对接腾讯云物联网平台和腾讯连连小程序
基于TencentOS Tiny CH32V_EVB RISC-V 开发板要完成腾讯云IoT Explorer对接需要完成两个部分的工作。
一是腾讯云IoT explorer 上完成项目、产品、设备创建、参数配置
二是基于TencentOS Tiny完成应用开发向腾讯云上报业务数据。
### 1. 云端操作步骤
1.1. 新建项目
登录[腾讯云物联网开发平台](https://cloud.tencent.com/product/iotexplorer),点击新建项目,填写项目名称和简介:
![](image/CH32V_EVB_guide/c001.png)
1.2. 新建产品
点击项目名称进入到该项目中,点击新建产品:
![](image/CH32V_EVB_guide/c002.png)
产品新建成功后,可在产品列表页查看到:
![](image/CH32V_EVB_guide/c003.png)
1.3. 数据模板
进入产品点击【数据模板】点击【导入JSON】导入下面的JSON代码
```json
{
"version": "1.0",
"properties": [
{
"id": "power_switch",
"name": "电灯开关",
"desc": "控制电灯开灭",
"required": true,
"mode": "rw",
"define": {
"type": "bool",
"mapping": {
"0": "关",
"1": "开"
}
}
},
{
"id": "brightness",
"name": "光照强度",
"desc": "",
"mode": "r",
"define": {
"type": "int",
"min": "0",
"max": "20000",
"start": "0",
"step": "1",
"unit": "lx"
},
"required": false
}
],
"events": [],
"actions": [],
"profile": {
"ProductId": "TCC64FUFGD",
"CategoryId": "3"
}
}
```
导入之后自动根据json文件创建的属性如下
![](image/CH32V_EVB_guide/c004.png)
1.4. 创建设备
点击【设备调试】,进入后点击【新建设备】,创建真实设备:
![](image/CH32V_EVB_guide/c005.png)
创建成功之后进入设备查看到产品ID、设备名称、设备秘钥,记录下来,一会终端程序会使用到。
![](image/CH32V_EVB_guide/c006.png)
### 2. 基于TencentOS Tiny 完成设备侧应用开发
CH32V-RISC-V物联网操作系统TencentOS-Tiny案例实践指南
https://github.com/OpenAtomFoundation/TencentOS-tiny 上clone整个代码仓源码进入 < TencentOS-tiny\board\TencentOS_Tiny_CH32V307_EVB> 目录,打开 CH32V_EVB_TencentOS_Tiny_IoT_Explorer工程。
![](image/CH32V_EVB_guide/c007.png)
2.1. 修改WIFI接入信息
打开`mqtt_iot_explorer.c`文件编辑在mqtt_demo_task函数中修改要接入WIFI的名称和密码建议使用手机热点不要有特殊字符
![](image/CH32V_EVB_guide/c008.png)
2.2. 修改云端对接信息
终端的MQTT客户端需要对应的产品ID、设备ID密码我们使用前面从云端获取到的产品ID、设备名称、设备密钥
![](image/CH32V_EVB_guide/c009.png)
2.3. 编译工程
点击编译按钮编译整个工程并将程序下载到开发板由于GD-Link的设计问题这里下载到RISC-V开发板会非常慢大家耐心等待一下。
下载完成打开热点复位开发板我们可以看到终端输出相关log如下图
![](image/CH32V_EVB_guide/c011.png)
![](image/CH32V_EVB_guide/c012.png)
### 3. 云端平台查看设备数据
回到腾讯云物联网开发平台,可以看到设备状态变为【在线】:
![](image/CH32V_EVB_guide/c013.png)
点击【设备日志】一栏,可以看到设备上报的光照强度:
![](image/CH32V_EVB_guide/c014.png)
点击【在线调试】一栏,修改属性【期望值】后点击【发送】,可以对灯泡进行远程控制。
![](image/CH32V_EVB_guide/c015.png)
### 4、腾讯连连小程序操作步骤
1. 添加家庭
手机端在【微信】搜索【腾讯连连】小程序,首次使用需要进入后点击【我的】->【家庭管理】,添加一个你喜欢的名称即可。
2. 添加调试设备
返回【首页】,点击右上角“加号”图标:
![](image/CH32V_EVB_guide/a001.png)
进入后点击右上角扫码图标:
![](image/CH32V_EVB_guide/a002.png)
在腾讯云物联网开发平台进入【设备调试】,点击对应设备后的【二维码】:
![](image/CH32V_EVB_guide/a003.png)
腾讯连连扫描此二维码即可成功添加设备,添加成功之后如图:
![](image/CH32V_EVB_guide/a004.png)
点击此设备即可实时查看数据,并下发控制指令:
![](image/CH32V_EVB_guide/a005.png)
3. 修改腾讯连连显示面板
进入【交互开发】,点击【面板配置】一栏:
![](image/CH32V_EVB_guide/a006.png)
在此页面中可以自己根据喜好配置小程序显示面板,保存之后,在腾讯连连小程序删除设备,重新扫描绑定设备即可生效。

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB