CH32V003及其开发环境

发布时间 2023-08-11 22:22:21作者: fxzq

CH32V003是南京沁恒微电子股份有限公司推出的一颗工业级通用微控制器芯片(单片机)。它基于32位RISC-V指令集及架构设计,采用该公司自主开发的青稞V2A(QingKeV2)内核,基于RV32EC指令集,具有2级流水线,支持2级中断嵌套,支持2级硬件堆栈。支持48MHz系统主频,具有宽压(3.3/5V)、单线调试(SWDIO)、低功耗、超小封装等特点。此外,该芯片的价格也非常诱人,目前不到0.5元。
CH32V003内置有1组DMA控制器、1组10位模数转换ADC、1组运放比较器、多组定时器以及标准通讯接口USART、IIC、SPI等,其系统结构框图如下所示。

目前CH32V003系列芯片有多个型号及多种封装形式,其中最常见的CH32V003F4P6外形如下图所示。

从上图中可以看出,它一共有20个引脚,其中的18个都是通用输入输出引脚(GPIO),一共分为三组:PA、PC和PD。其中PA只引用出了两个引脚PA1和PA2,PC和PD都分别引出了8个引脚(PC0~PC7、PD0~PD7)。余下的2个脚中,一个正电源引脚(Vdd)、一个地引脚(Vss)。具体的引脚功能如下图所示。

从上图中可以看出,CH32V003引脚复用的功能很多,包括复位(RESET)端都复用在了PD7脚,所以CH32V003没有独立的复位引脚,不过在默认状态下,PD7是复位端(第一功能)。另外,CH32V003其实还有很多的可移动引脚功能,可通过配置芯片内部的相关寄存器来把它们分配到物理引脚上(电源引脚除外)。

CH32V003系列芯片内部都自带24MHz的RC振荡器,并且在其上电(或复位)时默认使用片内的RC作为主时钟源,所以在默认情况下,CH32V003上电就可运行。CH32V003的RC振荡精度还可以通过其内部的寄存器来进一步校准,已经足以应付一般的应用场景。另外,CH32V003内部已经集成了上电复位,所以不需要外加RC元件来进行上电复位。CH32V003的最小系统如下图所示,可见只需要接上电源就要正常工作了,最多再在PD7引脚上加个复位按键(低电平有效),非常简洁。如果需要外接晶振,要占用PA1和PA2两个引脚。

要开发基于CH32V003的系统,首先必须选择一个合适的开发工具。对于CH32系列的MCU,沁恒公司推荐使用MounRiver工作室开发的一款采用开源项目Eclipse制作的开发工具,称为MounRiver Studio。该软件可以通过MounRiver的网站免费下载。本教程使用的是MRS1.85版本,它结合了程序编辑、编译、查错、调试、仿真等功能,功能强大,使用方便。下图是它的运行界面。

MRS开发环境基本上不需要配置就可以使用,点击菜单File->New->MounRiver Project新建一个工程,会弹出下面的对话框。 

上图中,只需要在右侧选择具体的CH32V003型号(对应不同的封装)就可以了,点击Finish按钮后,开发环境会为你自动生成一个包含有所有库文件的工程,非常方便。