目录

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.

相关资料

硬件部分

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

下载/烧录

通过 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灯常灭

沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置的更多相关文章

  1. 沁恒CH32V003F4P6 开发板上手报告和Win10环境配置

    CH32V003 沁恒最近推出的低价CH32V003系列, 基于青稞RISC-V2A内核, 48MHz主频, 2KB SRAM, 16KB Flash, 工作电压兼容3.3V和5V. 主要参数如下 S ...

  2. 联盛德 HLK-W806 (五): W801开发板上手报告

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  3. 合宙Air32F103CBT6开发板上手报告

    2022年6月初合宙新上市了 Air32F103 系列 MCU, 市面上 STM32F103 的克隆军队又增加了新的一员. 这次不知道是哪家的贴牌, 分 Air32F103CBT6 和 Air32F1 ...

  4. Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程

    前几天无聊就弄了弄这个玩,网上教程可能有点杂,在这里就总结一下. Digispark开发板(也就是badusb)能干什么,自己搜去,/坏笑. 1.准备材料:Attiny85微型 USB接口开发板 Di ...

  5. 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置

    目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...

  6. 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置

    目录 沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置 硬件准备 CH32V103 开发板 ...

  7. 蓝牙mesh组网实践(mesh组网的评估与沁恒蓝牙芯片选型)

    目录 沁恒的组网方式主要有2.4G私有协议组网和BLE mesh组网两大类.2.4G私有协议组网灵活性相对较高,对开发者的要求也相对较高.mesh组网本身有一系列规范,考虑到了可靠性.安全性.功能性等 ...

  8. 沁恒蓝牙系列芯片USB烧录故障排查

    目录 使用USB烧录时让ISP工具能够识别芯片的操作是按住评估板上的"Download"按键,或者将PB22短接到GND,同时给板子上电.若是第一次拿到芯片,codeflash中是 ...

  9. 沁恒CH32F103C8T6的开发和烧录配置说明

    概述 CH32F1系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制.多级电源管理. 通用DMA控制器等. 此系列具有 2 路 USB2.0接口.多通道 TouchKey. 1 ...

  10. 沁恒CH32F103C8T6(三): PlatformIO DAPLink和WCHLink下载配置

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...

随机推荐

  1. C/C++ 数据结构优先级队列的实现(使用二级指针)

    #include <iostream> #include <Windows.h> #include <iomanip> //优先级队列的实现 using names ...

  2. 联想拯救者R9000P风扇拉满加强散热的方法

    管软可以开野兽模式,但是风扇还不是最猛的.锻炼的时候为了保护硬件,牺牲风扇和噪音吧,方法如下:下载 RWEverything运行RW.exe点击笔记本图标+EC文字的图案 修改:B0+0D对应的数据, ...

  3. tableau连接mysql

    1.下载驱动地址:https://dev.mysql.com/downloads/connector/odbc/ 2.选择MSI Installer自动安装自动配置 3.本地127.0.0.1(其他I ...

  4. 总项目的pom文件

    注意修改子模块名称!!!!!!!!!!!!!!!!!!<?xml version="1.0" encoding="UTF-8"?> <proj ...

  5. NTP同步时间

    什么是NTPNTP:Network Time Protocol(网络时间协议) ️ NTP 是用于同步网络中计算机时间的协议.它的用途是把计算机的时钟同步到世界协调时UTC. UTC:Universa ...

  6. 在wxpython框架写的GUI中调用GIF格式图片,显示在指定行列的方法

    #首先需要从 wx.adv 模块导入 Animation, AnimationCtrl方法 from wx.adv import Animation, AnimationCtrl #然后在面板实现过程 ...

  7. 小霸王、红白机、FC游戏、街机游戏在线玩的网站

    前段时间小笨就想做一个红白机在线玩的网站,作为90后,也玩过不少小霸王fc游戏,于是花了两个星期时间做了出来.前端界面略丑,因为小笨不是专做前端的,就将就一下吧,哈哈!网站暂时添加了数款怀旧游戏,包括 ...

  8. 如何快速弄懂Java线程池

    Java线程池是一种高效的多线程编程技术,它可以帮助程序员有效地控制多线程的并发执行.它可以提高应用程序的性能.降低内存消耗和减少延迟. 线程池的原理是,程序员可以将每个任务放入线程池中,然后由线程池 ...

  9. STL常用容器用法总结

    vector 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begi ...

  10. 阿里巴巴为什么建议使用BigDecimal进行浮点数运算

    本文先引入一个例子,星期天你和女朋友去逛街,看到一家奶茶店.女朋友想喝奶茶了,你就去买了杯奶茶,然后你问了一下价格.店员说奶茶0.9元一杯.然后你给了1元钱.这个时候你忽然问了一下女友.服务员该找我们 ...