沁恒RISC-V开发板CH32V103-EVT评测
扫描二维码
随时随地手机看文章
“这个世界上本没有节日,谐音梗多了,就有了节日。”——鲁迅从2014年起,中国的互联网圈把10月24日定为程序员节,到今年2021年已经是第1000个程序员节了。祝各位开发者节日快乐!虽然搞嵌入式开发的也能算半个码农,但是,啥时候能有真正属于咱电子人的节日?可能有些读者朋友注意到了,我好久没有更新原创文章了!因为最近一直忙着换工作、租房子、搬家等一些琐事,现在入职新公司有1个月的时间了,还在熟悉公司业务。其实这些都是借口,就是懒!哈哈!很长时间没发过板卡评测的文章了,今天我们来评测沁恒的一款RISC-V开发板。提到沁恒这个名字,可能有些朋友感到陌生,但是有一款芯片你肯定知道,那就是CH340——一款USB-TTL串口的转换芯片。记得我大学期间,第一次接触的单片机是51系列,如STC89C51,它的下载方式是通过串口下载,所使用的的模块就是基于CH340,后来接触到STM32,也可以通过它进行串口下载,或者通过串口输出调试信息。而CH340的厂家,就是WCH沁恒微电子!今天我们要评测的是沁恒新出的RISC-V开发板——CH32V103R8T6-EVT-R1评估板。它长这样↓↓↓是不是很熟悉,其实也可以称之为CH32V103R_NUCLEO。
. 关于RISC-V
CH32V103是一款RISC-V内核芯片,在进行评测之前我们有必要了解一下RISC-V架构。记得第一次认识RISC-V,是2019年4月参加在北航举办的RISC-V技术沙龙,也是我第一次参加线下的技术交流活动,第一次了解这个和ARM、x86完全不同的另一种全新的架构:RISC-V,当时国产的RISC-V内核芯片还寥寥无几,短短两年时间,很多国产RISC-V内核芯片量产:兆易GD32V、沁恒CH32V、乐鑫ESP32-C3、全志D1、阿里平头哥等等。关于RISC-V更多的介绍,可以查看之前发的几篇关于RISC-V的文章:- RISC-V当真是中国处理器产业的最后一次机会?
- 兆易半导体RISC-V内核MCU上线,MCU架构真要三分天下?
- 《手把手教你设计CPU——RISC-V处理器》读书笔记
- 阿里平头哥首次交货——玄铁910是个啥?是芯片吗?
- NXP恩智浦VEGA织女星开发板免费申请!
. 板载硬件资源
熟悉了RISC-V架构,我们来看看板子都有哪些资源吧!- 主控:RISC-V内核MCU—CH32V103R8T6,LQFP64M封装
- 调试器:板载WCH-Link调试器,集成CDC串口功能,基于沁恒8051内核MCU CH549G实现,Type C接口,预留WCH-Link调试跳线,可以自由选择是否使用板载调试器
- 按键:两路轻触按键,一个复位,一个用户可编程
- LED:6路,3路用于调试器指示状态,2路用户LED,1路电源指示
- 开关:核心板电源开关,当需要重启时,不需要插拔USB口
- GPIO:预留Arduino UNO接口,可以直接连接Arduino外设模块,GPIO通过2.54mm间距排针引出,包括BOOT选择。
- USB:1路USB2.0通过Type C和USB母座引出,可以用于来连接U盘、键鼠等USB设备。
. CH32V103R8T6资源
CH32V103是沁恒RISC-V内核MCU系列中的32位通用MCU产品,采用自研RISC-V3A处理器,最高80MHz主频。芯片内部框图- RISC-V内核32位通用MCU,基于RISC-V3A处理器,最高80MHz系统主频。
- 20KB SRAM、64KB Flash、51个用户GPIO
- 2.7-5.5v宽供电范围,-40~85℃工业级温度范围
- 16路ADC/触摸按键通道
- 7个定时器:3个通用、1个高级、2个看门狗、1个系统时钟
- 2路SPI、2路I2C、3路USART,1路USB 2.0,支持主机/设备模式
. 板卡细节
主控芯片,CH32V103R8T6板载WCH-Link调试器,而且集成了CDC串口功能,基于CH549G方案,目前常用的数据线通常是TypeC接口,所以这款板卡也采用的TypeC接口。EPSON 晶振,8M和32.768k。拨动电源开关,只用于核心板电源控制,调试器电源不会被断开。USB 2.0接口,芯片只有1路USB2.0,板卡提供了Type C和USB母座两种接口形式,可以做一些USB相关的应用,比如外接U盘、鼠标或键盘等。USB连接器为富士康品牌两路按键,1个复位,1个用户可编程。. 配套软硬件文档
对于MCU开发,除了开发环境外,比较重要的有4个文档:数据手册、参考手册、固件库、使用例程。除了以上文档之外,沁恒还提供有评估板说明书、原理图、芯片SCH/PCB封装等。目前,半导体厂商的集成开发环境主要可分为2类。- 通用平台
- 定制平台
. CH32V103工程创建
使用MRS创建示例工程非常简单,全程无需写一行代码,无论是裸机工程还是RTOS工程,软件会自动添加所需要的驱动库和示例代码,而且已经实现了延时函数和UART printf支持。在使用MRS新建RTOS工程时,支持创建基于3种常见RTOS的工程模板,分别是FreeRTOS、RT-Thread和Harmony LiteOS-M,当创建完成之后,你就获得了一个基于RTOS的工程模板,无需任何修改,直接编译下载,就可以运行,非常方便。从驱动库函数来看,大部分函数名和STM32一样,对于STM32的用户迁移到CH32V103平台非常方便,整体代码不需要做太多的修改。部分外设驱动库函数:void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_AFIODeInit(void);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
. 沁恒RISC-V产品线
可能有些开发者以为沁恒只有USB、以太网、PCI等这些专用的接口转换芯片,其实沁恒还有很多通用MCU产品,包括E8051内核、ARM Cortex-M0/M3内核,RISC-V内核的MCU产品等等。其中RISC-V内核产品是近两年才推出,主要有3个系列:低功耗蓝牙、32位通用和超高速接口。- 集成低功耗蓝牙MCU:CH573/583系列,BLE 5.1,最低睡眠电流0.2uA,USB 2.0等
- 32位通用MCU:CH32V10x/20x/30x,最高144MHz主频,ADC/DAC/SPI/I2C/UART外设,USB2.0等
- 超高速接口MCU:CH569/5,千兆以太网、3.8G高速接口口,USB3.0 OTG
. 资料下载
CH32V103配套的软硬件资料还是非常齐全的,主要包括中文数据手册、参考手册、评估板原理图和说明书、外设使用例程、开发环境等等。MRS集成开发环境V151安装包:http://file.mounriver.com/upgrade/MounRiver_Studio_Setup_V151.zipMRS集成开发环境V151补丁包:http://file.mounriver.com/upgrade/MounRiver_Update_V151.zip以上资料包可以到官方网站下载:http://www.wch.cn/products/CH32V103.html或者关注公众号,后台回复:211023,获取资料打包下载链接。. 总结
很明显,无论是硬件配置还是开发方式,CH32V103对标的是STM32F103,对于想更换MCU平台的用户可以非常快速的完成迁移。对于早期使用沁恒ARM内核的用户,迁移到RISC-V内核也非常方便,因为两者除了内核不同,资源配置,外设操作这些应用层面的几乎一致。最近两年,受益于国家的投入与政策的支持,叠加全球“芯片荒”,中国半导体产业进入发展“黄金期”,国产RISC-V芯片也如雨后春笋般涌现。国产芯片的发展,强大的生态是关键,文档手册、开发板、固件库,交流社区,技术支持,创意竞赛,大学计划等等。我想经历过美国技术卡脖子、芯片缺芯之后,更多的用户会选择国产芯片来替代进口芯片,这对国产芯片是很有利的,但也不能盲目乐观,由于芯片研发技术门槛高、资金大、周期长,爆雷事件也偶有传出。未来一段时间,脚踏实地才能保证确保我国集成电路产业良性发展。. 更多
- FPGA固件如何进行在线升级?
- 基于STM32的FPGA下载器USB Blaster
- 开源、低成本的Xilinx FPGA下载器
- 手把手教你制作Jlink-OB调试器
- 手把手教你用Qt写一个串口助手控制LED
- 嵌入式软硬件都开源的项目