沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置

目录

  • 沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置

CH32V208

CH32V208系列是沁恒32位RISC-V中比较新的一个系列, 基于青稞RISC-V4C内核, 最高144MHz主频, 64KB SRAM,128KB Flash, 供电电压2.5/3.3V.

这个型号的特点: 除了特有的硬件堆栈区、快速中断入口, 片上集成了 2Mbps低功耗蓝牙BLE 5.3, 10M以太网MAC+PHY, USB2.0全速设备+主机/设备接口, CAN控制器.

10M以太网是带 PHY 的, 可以直连网口, 省掉焊接LAN8720了

主要参数

  • Qingke V4C processor, up to 144MHz system clock frequency.
  • Single-cycle multiplication and hardware division.
  • 64KB SRAM, 128KB Flash.
  • Supply voltage: 2.5V/3.3V. GPIO unit is supplied independently.
  • Low-power modes: sleep/stop/standby.
  • Bluetooth Low Energy 5.3.
  • 10M Ethernet controller (MAC+PHY).
  • Power-on/power-down reset (POR/PDR), programmable voltage detector (PVD).
  • 2 amplifiers.
  • 16-channel 12-bit ADC, 16-channel TouchKey.
  • 5 timers.
  • USB2.0 full-speed host/device + device interface.
  • 4 USARTs.
  • One CAN interface (2.0B active).
  • 2 IIC interfaces, 2 SPI interfaces.
  • 53 I/O ports, can be mapped to 16 external interrupts.
  • CRC calculation unit, 96-bit unique ID.
  • Serial 2-wire debug interface.
  • Packages: LQFP64M, QFN68, QFN48, QFN28.

相关资料

  • CH32V208 产品页, 手册和示例下载 https://www.wch.cn/products/CH32V208.html

硬件部分

CH32V208WBU6 评估板

这个板比较大, 尺寸8.6cm * 9.5cm, 上面集成了蓝牙天线, RJ45网口, 两个USB-A母口

  • 有电源开关, 开关是用于控制TypeC口的供电的, 如果通过SWD口供电, 这个开关无效
  • 烧录是通过评估板右上角, 编号为4的2x5排针, 排针布局正好和WCH-Link 的排针布局一致
  • 三颗LED, 一颗电源指示, 两颗未连接但是有对应的排针(LED1和LED2), 可以自己用跳线连到其他pin口方便观察输出

烧录器 WCH-Link

烧录 CH32V208 可以用 WCH-Link 或 WCH-LinkE

软件部分

开发环境

Win10下的开发环境比较简单, 使用软件 MounRiver, 当前版本v1.84, 可以支持沁恒全系列的RISC-V芯片. 下载地址 http://mounriver.com/download

软件集成了代码编辑, 编译环境和烧录工具. 直接安装即可. 基于 Eclipse 开发, 需要熟悉一下 Eclipse 的快捷键.

注意要使用较新的版本, 旧版本不支持 CH32V208

MounRiver的使用说明参考官方专栏, 介绍得较为详细

示例代码

从 CH32V208 产品页 https://www.wch.cn/products/CH32V208.html 可以找到 CH32V208 评估板说明及应用参考例程 CH32V20xEVT.ZIP

下载后, 解压得到的目录结构如下, 其中 PUB 下是评估板的说明和电路图, EXAM 下是按外设区分的各个例程的子目录

|-- PUB: 
|      |-- CH32V20x评估板说明书.pdf:CH32V20x评估板说明及工程创建说明
|      |-- CH32V20xSCH.pdf:CH32V20x评估板原理图
|-- EXAM: 
|      |-- SRC  
|      |      |-- Core:内核系统头文件
|      |      |-- Debug:延时函数、串口调试源文件及头文件
|      |      |-- Ld:ld文件  
|      |      |-- Peripheral:基本外设驱动源文件及头文件
|      |      |-- Startup:启动文件。针对用户使用芯片型号包含下列相应的启动文件,同时在ch32v20x.h文件中选择匹配芯片型号定义 
|      |      |      |-- startup_ch32v20x_D6.S:适用于CH32V203F6-CH32V203G6-CH32V203K6-CH32V203K8-CH32V203C6-CH32V203C8系列
|      |      |      |-- startup_ch32v20x_D8.S:适用于CH32V203RB系列
|      |      |      |-- startup_ch32v20x_D8W.S:适用于CH32V208系列  
|      |-- ADC ADC 例程
|      |-- BLE ——仅适用于CH32V20x_D8W  
|      |-- BKP:BKP例程
|      |-- CAN  ——仅适用于CH32V20x_D6-CH32V20x_D8W
|      |-- CRC:CRC例程  
|      |-- DMA
|      |-- ETH ——仅适用于CH32V20x_D8-CH32V20x_D8W
|      |-- EXTI:外部中断线例程
|      |-- FLASH:FLASH的擦/读/写,以及快速编程
|      |-- FreeRTOS:FreeRTOS移植例程  
|      |-- GPIO:GPIO例程
|      |-- HarmonyOS:HarmonyOS移植例程  
|      |-- I2C
|      |-- INT
|      |-- IAP:IAP升级例程-内置Hex转Bin工具和IAP升级工具  
|      |-- IWDG:独立看门狗例程
|      |-- OPA:OPA4作电压跟随器输出例程
|      |-- PWR
|      |-- RCC
|      |-- RT-Thread:RT-Thread移植例程 
|      |-- RTC:日历例程  
|      |-- SPI
|      |-- TencentOS:TencentOS移植例程       
|      |-- TIM
|      |-- TOUCHKEY:TouchKey检测例程 
|      |-- USART
|      |-- USB
|      |-- WWDG:窗口看门狗例程

运行LED闪灯示例代码

下面以最简单的GPIO示例走一遍编译烧录的过程

连线

开发板 —> WCHLink, 注意不要连USB口, 如果已经通过PC的USB口连接了开发板, 就不要连WCHLink VCC, 如果连了WCHLink VCC, 就不要接USB口

  • CLK -> SWCLK
  • DIO -> SWDIO
  • GND -> GND
  • VDD -> 3V3
  • TXD -> RX (可以不连)
  • RXD -> TX (可以不连)

开发板本身

  • 连接一个LED到 PA0, 用于观察PA0的输出

编译项目

下载的示例代码解压后, 在MounRiver中 File -> Load -> Project, 打开 EVT\EXAM\GPIO\GPIO_Toggle 目录下的 GPIO_Toggle.wvproj

按 Shift + F7 或通过工具栏按钮编译即可. 编译正常会显示

12:08:14 **** Build of configuration obj for project GPIO_Toggle ****
make -j4 all 
   text	   data	    bss	    dec	    hex	filename
   6908	    136	   2072	   9116	   239c	GPIO_Toggle.elf

12:08:19 Build Finished. 0 errors, 0 warnings. (took 5s.11ms)

示例项目中默认的构建结果为 hex 文件, 编译结束后在 obj 目录下能看到 GPIO_Toggle.hex

编译中的选项

1. 修改构建目标格式

  • 项目树中选中当前项目
  • 菜单 Project -> Properties
  • 对话框 C/C++ Build -> Settings -> GNU RISC-V Cross Create Flash Image -> General
  • 对话框 Output file format (-O): 选择 Raw Binary 编译会输出bin, Intel HEX 则会输出 hex

2. 显示完整编译命令和输出

完整编译命令和输出对判断问题非常重要, 可以通过菜单 Project -> Concise Build Output Mode 打开

  • 勾选则只显示简单提示, 默认是勾选
  • 取消勾选, 则显示完整编译命令和输出

3. 设置C编译参数, 修改目标MCU

GPIO_Toggle 示例代码, 使用的编译目标MCU是 CH32V20x_D6, 在 ch32v20x.h 中的这段代码中可以看到, 默认启用的是 CH32V20x_D6

#if !defined(CH32V20x_D8W) && !defined(CH32V20x_D8) && !defined(CH32V20x_D6)
#define CH32V20x_D6              /* CH32V203F6-CH32V203F8-CH32V203G6-CH32V203G8-CH32V203K6-CH32V203K8-CH32V203C6-CH32V203C8 */
//#define CH32V20x_D8              /* CH32V203RBT6 */
//#define CH32V20x_D8W             /* CH32V208 */

对于当前评估板应当使用 CH32V20x_D8W, 可以通过在 MounRiver 添加 GNU C 参数进行设置

  • 菜单 Project -> Properties
  • C/C++ General -> Paths and Symbols
  • #Symbols 标签页 -> GNU C
  • Add, 增加一项 CH32V20x_D8W, 不需要填值, 确定

返回到编辑器后, 能看到上面的代码段已经变灰, 编译命令中出现了对应的参数-DCH32V20x_D8W

riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized  -g -DCH32V20x_D8W -I"D:\WorkMRS\ch32v208_ws\EVT\EXAM\SRC\Debug" -I"D:\WorkMRS\ch32v208_ws\EVT\EXAM\SRC\Core" -I"D:\WorkMRS\ch32v208_ws\EVT\EXAM\GPIO\GPIO_Toggle\User" -I"D:\WorkMRS\ch32v208_ws\EVT\EXAM\SRC\Peripheral\inc" -std=gnu99 -MMD -MP -MF"User/system_ch32v20x.d" -MT"User/system_ch32v20x.o" -c -o "User/system_ch32v20x.o" "../User/system_ch32v20x.c"

下载/烧录

通过 WCH-Link 连接开发板之后, 在 MounRiver 中通过菜单 Flash -> Configuration 可以打开下载设置

点击第一个图标 Query Status 查询芯片状态, 连接成功后底下会显示 0000#07:48:33:283>> Query Success, 同时会显示红色的 Code Read-Protect Status Disabled 或绿色的 Code Read-Protect Status Enabled, 红色的表示读保护关闭, 这时候可以烧录, 如果是绿色表示读保护打开, 需要关闭后才能烧录. 下面 Target 中会显示检测到的MCU类型, 写入开始地址 0x08000000, 以及要写入的文件 obj\GPIO_Toggle.hex

以上无误后, 应用保存, 按 F8 或点击工具栏图标烧录, 烧录过程输出

------------ Begin flash process of "obj\GPIO_Toggle.hex" ------------ 
12:14:11:930 >> Current project vendor is WCH, debugger is WCH-Link

12:14:11:930 >> Attempt to open link device and upgrade firmware if necessary...
12:14:11:987 >> Link Device is CH549. Already the latest version v2.8, no need to upgrade

12:14:12:059 >> Starting to Send Chip Type...
12:14:12:102 >> Send Chip Type Success

12:14:12:102 >> Starting to Check Read-Protect Status...
12:14:12:103 >> Read-Protect Status Currently Disabled

12:14:12:103 >> Starting to Erase All...
12:14:12:242 >> Erase All Success

12:14:12:244 >> Starting to Download & Verify...
12:14:13:077 >> Download & Verify Success

12:14:13:077 >> Starting to Reset...
12:14:13:090 >> Reset Success

12:14:13:090 >> Starting to Close Link...
12:14:13:092 >> Close Link Success
---------------------------------End ---------------------------------
Operation Finished (took 1s.166ms)

烧录成功后就能看到连接的LED开始闪烁

问题处理

WCH CMSIS-DAP 驱动不识别(黄色感叹号)

当使用过旧版 WCH-DAPLink 或者安装中未正常升级, 在连接DAPLink模式的 WCH-Link 后, 设备管理器显示带黄色警告的WCH CMSIS-DAP, 此时在 WCH-LinkUtility里是无法找到WCHLink的, 需要先安装驱动. 沁恒并没有单独提供这个驱动的下载, 但是在安装了 MounRiver 之后, 其目录下实际上是包含了对应驱动的.

  1. 在 WCH CMSIS-DAP 上右键更新驱动
  2. 选择浏览电脑, 搜索路径设成 MounRiver 的安装目录 (默认为 C:\MounRiver), 勾选包含子文件夹
  3. 下一步, 就会自动安装

WCH CMSIS-DAP 切换为 RISC-V 模式的 WCH-Link

首先电脑要能正确识别 CMSIS-DAP 模式的 WCH-Link, 如果驱动未安装, 可以参考上一步. 在 CMSIS-DAP 模式下, WCH-Link 的 CON 灯是常亮的.

  1. 打开 WCH-LinkUtility, 点击下方 Active WCH-Link Mode 右边的 GET, 就能看到当前的模式为 WCH-LinkDAP-WINUSB
  2. 在模式中选择 WCH-LinkRV, 再点击 SET, 就会开始更新固件, 切换到 RISC-V 模式
  3. 切换完成后, CON灯常灭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15737.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习第J8周:Inception v1算法实战与解析

目录 一、Inception v1 1.简介 2. 算法结构 二、pytorch代码复现1.前期准备 2.代码复现 3.训练运行 3.2指定图片进行预测 三、总结 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作…

Linux:网络基础1

网络协议分层 所有网络问题,本质都是通信距离变长了,为了尽可能减少通信成本,定制了协议。 协议分层的优势: 软件设计方面的优势 - 低耦合 一般我们的分层依据: 功能比较集中,耦合度比较高的模块-- 一层 &#xff0c…

2023五一数学建模A题完整思路

已更新五一数学建模A题思路,文章末尾获取! A题完整思路: A题是一个动力学问题,需要我们将物理学概念运用到实际生活中,我们可以先看题目 问题1: 假设无人机以平行于水平面的方式飞行,在空中投…

代码审计笔记之开篇

思想 代码审计是从软件测试发展而来,早起一般采用常规软件测试与渗透测试的手段来发现源码漏洞,但是随着软件规模的越来越大,架构越来越复杂,安全漏洞和后门也越来越多越来越隐蔽,这使得传统的软件测试方法很难检出源…

达梦数据库中注释的使用

在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋…

你可能需要的IDEA-Java开发插件

Idea开发插件 Alibaba Cloud AI Coding Assistant 阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI编程助手,它提供代码智能补全和代码示例搜索能力,帮助你更快更高效地写出高质量代码。 让我觉得比较有意思的…

CentOS防火墙的常用快捷命令

CentOS是免费开源的Linux发行版之一,它兼容RHEL并由社区进行维护,大多数美国服务器提供对该系统支持。在使用CentOS系统时,您需要了解一些常用命令,比如开启、查看、关闭防火墙等。本文将介绍下CentOS防火墙的常用命令。 CentOS是一种面向企业级服务器环境的Linux发行版,…

直击德国PLS展,联诚发倾力打造沉浸式视觉盛宴!

当地时间4月25-28日,备受关注的2023德国法兰克福国际专业灯光音响展ProlightSound(以下简称“PLS展”)在德国法兰克福盛大召开。联诚发携多款创新产品及多领域的应用解决方案精彩亮相,为全球客户打造沉浸式视觉盛宴,展…

JavaScript详解

一、前置知识 1.1第一个JS程序 JavaScript 代码可以嵌入到 HTML 的 script 标签中。 1.2JS书写格式 1.2.1行内样式 直接嵌入到html元素内部 1.2.2内嵌格式 1.2.3外部格式 注意这种情况下,script标签中间不能写任何代码,必须空着,就算…

java内存占用过大分析,mat内存快照分析

背景 最近功能模块上线后,生产内存占用显著提升,查看gc日志发现年轻代频繁从2G回收到60M左右,猜测是在方法中频繁创建大对象导致,由于一时间无法通过review代码找出问题所在,只好将生产jvm内存快照dump后通过java mem…

HCIA-RS实验-STP和RSTP(2)

接上一篇文章;其他的不多说,新建一个新的配置设备;如果接上一个实验的配置的话,建议先把所有配置删除后再执行;新的拓扑也与上一个实验一致; 目录 创建新配置 配置RSTP 查看stp版本 配置边缘端口 …

深度学习 GNN图神经网络(四)线性回归之ESOL数据集水溶性预测

线性回归之ESOL数据集水溶性预测 一、前言二、ESOL数据集三、加载数据集四、数据拆分五、构造模型六、训练模型七、测试结果八、分类问题参考文献 一、前言 本文旨在使用化合物分子的SMILES字符串进行数据模型训练,对其水溶性的值进行预测。 之前的文章《深度学习…

vue - pc端实现对div的拖动功能

实现对div的拖动功能,需要先要知道以下的一些原生事件和方法; 1,事件: 方法描述onmousedown鼠标按钮被按下onmousemove鼠标被移动onmouseup鼠标按键被松开 2,方法: 方法描述event.clientX返回当事件被触发时鼠标指针相对于浏览…

02 【Sass语法介绍-变量】

sass有两种语法格式Sass(早期的缩进格式:Indented Sass)和SCSS(Sassy CSS) 目前最常用的是SCSS,任何css文件将后缀改为scss,都可以直接使用Sassy CSS语法编写。 所有有效的 CSS 也同样都是有效的 SCSS。 Sass语法介绍-变量 1.前言 Sass …

【VM服务管家】VM4.0平台SDK_2.5 全局工具类

目录 2.5.1 全局相机:全局相机设置参数的方法2.5.2 全局相机:获取全局相机列表的方法2.5.3 全局通信:通信管理中设备开启状态管理2.5.4 全局通信:接收和发送数据的方法2.5.5 全局变量获取和设置全局变量的方法 2.5.1 全局相机&…

2023-4-27-深入理解C++指针类型间强制转换

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

记一次峰回路转的注入

0X01 背景 自己之前写过一篇记录,当时是由于之前是一位校友刚做开发,叫我友情帮忙测试一波,由于是开发的新手,漏洞比较多,所以直接从注入开始讲起,但是到getshell的过程也算是一场峰回路转再跌跌撞撞的路程…

【Java笔试强训 17】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥杨辉三角…

洞见数字时代的创新原力,数云原力大会暨2023TECH第五届数字中国技术年会开幕

4月25日,神州控股、神州信息、神州数码集团共同主办的数云原力大会暨2023TECH第五届数字中国技术年会开幕。开幕式上,数百位投身并关注数字技术、数字产业发展的学者、技术专家、从业者、行业用户齐聚一堂,围绕云原生、数字原生、大数据、金融…

这一次,让Kotlin Flow 操作符真正好用起来

前言 Kotlin Flow 如此受欢迎大部分归功于其丰富、简洁的操作符,巧妙使用Flow操作符可以大大简化我们的程序结构,提升可读性与可维护性。 然而,虽然好用,但有些操作符不太好理解,可惜的是网上大部分文章只是简单介绍其…