CH32V003

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

  • System Clock: 48MHz
  • SRAM: 2KB
  • Flash: 16KB
  • Power Supply: 3.3/5V
  • 多种低功耗模式: 睡眠, 待机
  • 上/下电复位, 可编程电压检测器
  • DMA: 1组1路通用
  • 运放比较器: 1组
  • ADC: 1组10位
  • Timer: 1个16位高级, 1个16位通用
  • WDG: 2个看门狗定时器和1个32位系统时基定时器
  • USART: 1
  • IIC: 1
  • SPI: 1
  • I/O: 18
  • UUID: 64bit
  • Debug port: 1-wire serial (SWDIO)
  • Package: TSSOP20, QFN20, SOP16, SOP8

硬件部分

开发板

  • 典型的WCH风格开发板, 土绿+密集的过孔+不计面积走长线.
  • 有开关, 但是没有专门的烧录口, 烧录是通过右边一排的 VCC, GND, PD1(SWDIO) 连接的.
  • 三颗LED, 一颗电源指示, 两颗未连接但是有排针, 可以自己用跳线连到其他pin口方便观察输出

烧录器 WCH-Link

CH32V003的烧录需要使用新出的WCHLink, 芯片是CH32V30x的这种, 据说旧的不支持但是我没实际测过.

软件部分

Win10下的开发环境是比较简单的, 软件就是MounRiver, 版本v1.82, 下载地址 http://mounriver.com/download

软件集成了代码编辑, 编译环境和烧录工具. 直接安装即可. 因为是基于 Eclipse 开发, 使用体验还不错.

注意要使用较新的版本, 旧版本不支持 CH32V003, 编译会报错 riscv-none-embed/bin/ld.exe: cannot find -lprint

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

运行LED闪灯示例代码

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

连线

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

  • VCC -> 3V3
  • GND -> GND
  • PD1 -> SWDIO

开发板本身

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

编译项目

下载示例代码: https://www.wch.cn/downloads/CH32V003EVT_ZIP.html

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

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

07:29:58 **** Build of configuration obj for project GPIO_Toggle ****
make -j4 all
text data bss dec hex filename
3396 40 520 3956 f74 GPIO_Toggle.elf 07:30:02 Build Finished. 0 errors, 0 warnings. (took 4s.306ms)

示例项目中默认的构建结果为 bin 文件, 编译结束后在 obj 目录下能看到 GPIO_Toggle.bin, 但是没有 GPIO_Toggle.hex, 与项目预设的烧录目标 (hex) 不同, 为避免后面报错, 需要将编译输出修改为 hex:

  • 项目树中选中当前项目
  • 菜单 Project -> Properties
  • 对话框 C/C++ Build -> Settings -> GNU RISC-V Cross Create Flash Image -> General
  • 对话框 Output file format (-O): 将 Raw Binary 修改为 Intel HEX

再次编译后, 在 obj 目录下就能看到生成的 GPIO_Toggle.hex 文件

烧录

菜单 Flash -> Config, 点击第一个图标 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" ------------
07:59:24:625 >> Current project vendor is WCH, debugger is WCH-Link 07:59:24:626 >> Attempt to open device and upgrade firmware if necessary...
07:59:24:629 >> WCH-Link no need to upgrade. Already the latest version. 07:59:24:711 >> Starting to Send Chip Type...
07:59:24:772 >> Send Chip Type Success 07:59:24:772 >> Starting to Check Read-Protect Status...
07:59:24:773 >> Read-Protect Status Currently Disabled 07:59:24:773 >> Starting to Erase All...
07:59:24:781 >> Erase All Success 07:59:24:841 >> Starting to Download & Verify...
07:59:25:278 >> Download & Verify Success 07:59:25:278 >> Starting to Reset...
07:59:25:295 >> Reset Success 07:59:25:295 >> Starting to Close Link...
07:59:25:296 >> Close Link Success
---------------------------------End ---------------------------------
Operation Finished (took 0s.672ms)

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

沁恒CH32V003F4P6 开发板上手报告和Win10环境配置的更多相关文章

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

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

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

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

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

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

  4. 友坚恒天.开发板(Cotex-A9 Exynos4412 开发板)

    友坚恒天.开发板 Cotex-A9 Exynos4412 开发板

  5. 【鸿蒙开发板试用报告】用OLED板实现FlappyBird小游戏(中)

    小伙伴们久等了,在上一篇<[开发板试用报告]用OLED板实现FlappyBird小游戏(上)>中,我们本着拿来主义的原则,成功的让小鸟在OLED屏幕上自由飞翔起来,下面我们将加入按钮交互功 ...

  6. Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。

    前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...

  7. 沁恒CH32V103C8T6开发环境笔记

    CH32V103C8T6 CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用2级流水线处理,设置了静态分支预测.指令预取机制,支持DMA. 主要参数如下 ...

  8. 【开发板试用报告】鸿蒙OS环境搭建及代码烧录

    鸿蒙系统的代码编译环境需要linux系统,软件开发和代码烧录需要windows环境. Linux环境 参考官方链接:https://gitee.com/openharmony/docs/blob/ma ...

  9. 【STM32-V5】STM32F407开发板开源, 丰富软件资源, 强劲硬件配置, 配套500实例, 10套手册带视频教程2019-12-12

    淘宝购买地址:购买地址链接 从2013年5月份发布至今,开发板硬件更新过6个版本,软件资料更新过85次.当前标准库最新版本V8.8,HAL库最新版本V1.1 安富莱微信公共平台,欢迎大家关注(打造高质 ...

随机推荐

  1. React性能优化,六个小技巧教你减少组件无效渲染

    壹 ❀ 引 在过去的一段时间,我一直围绕项目中体验不好或者无效渲染较为严重的组件做性能优化,多少积累了一些经验所以想着整理成一片文章,下图就是优化后的一个组件,可以对比优化前一次切换与优化后多次切换的 ...

  2. 开源图编辑库 NebulaGraph VEditor 的设计思路分享

    本文首发于 NebulaGraph 公众号 NebulaGraph VEditor 是一个拥有高性能.高可定制的所见即所得图可视化编辑器前端库. NebulaGraph VEditor 底层基于 SV ...

  3. ceph 007 双向池同步 rgw对象网关配置 s3对象存储

    增量导入导出要基于快照 导出的过程当中害怕镜像被修改所以打快照.快照的数据是不会变化的 镜像级别的双向同步 镜像主到备,备到主.一对一 就算是池模式的双向同步,镜像也具有主备关系 双向同步,池模式 [ ...

  4. dpdk读字节,却触发了两次tlp

    在通过vfio框架透传设备到vm中,并且在vm中运行dpdk的驱动. 我们发现,dpdk偶尔的一次pread 2字节,却触发了两次tlp. 原因在于: do_io_rw { else if (fill ...

  5. GIL互斥锁与线程

    GIL互斥锁与线程 GIL互斥锁验证是否存在 """ 昨天我们买票的程序发现很多个线程可能会取到同一个值进行剪除,证明了数据是并发的,但是我们为了证明在Cpython中证 ...

  6. pydantic 支持Dotenv 文件设置变量

    1. 安装 pip install pydantic pip install pydantic[dotenv] 注意: 安装pip install pydantic[dotenv]时会提示no mat ...

  7. 对DDD使用的一些建议

    群里经常看到类似于"看了DDD之后就不会写代码了"的情况,趁最近学车的间隙,写写我的看法. 关于这个事儿,我是觉得:当没有DDD的时候,如果你知道怎么做,那就那么做好了,不要考虑D ...

  8. 并发与并行,同步和异步,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang并发编程之GoroutineEP13

    如果说Go lang是静态语言中的皇冠,那么,Goroutine就是并发编程方式中的钻石.Goroutine是Go语言设计体系中最核心的精华,它非常轻量,一个 Goroutine 只占几 KB,并且这 ...

  9. CF -1679C

    Problem - 1679C - Codeforces 题意:当t=1加入一个点,每个点可以影响一行和一列,t=2删除某个点,t=3判断这个矩形内的每个点是否都可以影响. 思路:开始时直接暴力,T了 ...

  10. 华为云计算灾备产品BCManager 及eBackup的组网方式

    BCManager的作用 OceanStor BCManager是面向企业数据中心存储容灾业务的管理软件,实现容灾.双活.两地三中心等容灾环境的管理,具备多种数据库应用与虚拟化环境的容灾管理功能,简单 ...