沁恒RISC-V开发板CH32V103-EVT评测
扫描二维码
随时随地手机看文章
“这个世界上本没有节日,谐音梗多了,就有了节日。”——鲁迅从2014年起,中国的互联网圈把10月24日定为程序员节,到今年2021年已经是第1000个程序员节了。祝各位开发者节日快乐!
. 关于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. 配套软硬件文档
对于MCU开发,除了开发环境外,比较重要的有4个文档:数据手册、参考手册、固件库、使用例程。除了以上文档之外,沁恒还提供有评估板说明书、原理图、芯片SCH/PCB封装等。目前,半导体厂商的集成开发环境主要可分为2类。- 通用平台
- 定制平台
. CH32V103工程创建
使用MRS创建示例工程非常简单,全程无需写一行代码,无论是裸机工程还是RTOS工程,软件会自动添加所需要的驱动库和示例代码,而且已经实现了延时函数和UART printf支持。在使用MRS新建RTOS工程时,支持创建基于3种常见RTOS的工程模板,分别是FreeRTOS、RT-Thread和Harmony LiteOS-M,当创建完成之后,你就获得了一个基于RTOS的工程模板,无需任何修改,直接编译下载,就可以运行,非常方便。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产品等等。- 集成低功耗蓝牙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配套的软硬件资料还是非常齐全的,主要包括中文数据手册、参考手册、评估板原理图和说明书、外设使用例程、开发环境等等。. 总结
很明显,无论是硬件配置还是开发方式,CH32V103对标的是STM32F103,对于想更换MCU平台的用户可以非常快速的完成迁移。对于早期使用沁恒ARM内核的用户,迁移到RISC-V内核也非常方便,因为两者除了内核不同,资源配置,外设操作这些应用层面的几乎一致。最近两年,受益于国家的投入与政策的支持,叠加全球“芯片荒”,中国半导体产业进入发展“黄金期”,国产RISC-V芯片也如雨后春笋般涌现。国产芯片的发展,强大的生态是关键,文档手册、开发板、固件库,交流社区,技术支持,创意竞赛,大学计划等等。我想经历过美国技术卡脖子、芯片缺芯之后,更多的用户会选择国产芯片来替代进口芯片,这对国产芯片是很有利的,但也不能盲目乐观,由于芯片研发技术门槛高、资金大、周期长,爆雷事件也偶有传出。未来一段时间,脚踏实地才能保证确保我国集成电路产业良性发展。. 更多
- FPGA固件如何进行在线升级?
- 基于STM32的FPGA下载器USB Blaster
- 开源、低成本的Xilinx FPGA下载器
- 手把手教你制作Jlink-OB调试器
- 手把手教你用Qt写一个串口助手控制LED
- 嵌入式软硬件都开源的项目