找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2060|回复: 10
收起左侧

初玩RISC-V MCU(CH32V103)之感觉

[复制链接]
ID:71233 发表于 2023-4-26 10:58 | 显示全部楼层 |阅读模式
国产单片机近年的发展可谓是如雨后春笋、百花齐放。第一次看到国产的MCU采用RISC-V的,那是在浏览沁恒官方网站的时候,于是跟风申请个沁恒开发板来玩一玩。
CH32V103评估板板子做工都挺不错的,下面开始玩起吧。

51hei.jpg
这款板子的型号是CH32V103C-R1-1V1,板载的芯片是CH32V103C8T6。
一开始还认为那个USB typeC可以用来下载程序的,看了《CH32V103评估板说明书》,才知道这个接口只是用来USB主从设备接口的,它与USB_A是并联的,都是连接PA11(D-)PA12(D+),USB下载需要接PB6(D-)PB7(D+)。所以想用USB烧录,那不如用串口方式下载,串口方式还可以随时打印调试信息,当然,最方便的下载是用WCH Link下载器了。
编译环境MounRiver Studio V1.84是早就已经安装到电脑中的。21ic中有一篇关于CH32V103C应用开发的专题文章《RISC-V MCU应用开发系列教程之CH32V103 》,这个正好随手拈来,于是选择了 硬件I2C读写EEPROM例程试试。把压缩解压后,用MounRiver Studio打开、编译,编译速度还不错的!
主程序很简单:
int main(void)

{

    u8 data[SIZE];

Delay_Init();

USART_Printf_Init(115200);

    printf("SystemClk:%d\r\n",SystemCoreClock);

    AT24CXX_Init();

    printf("Start Write 24Cxx....\r\n");

    AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE);  //写入数据
    printf("24Cxx Write Sucess!\r\n");

    Delay_Ms(500);

    printf("Start Read 24Cxx....\r\n");

    AT24CXX_Read(100,data,SIZE);               //读取数据

    printf("The Data Readed Is: \r\n");

    printf("%s\r\n", data);                    //打印输出数据

    while(1);

}
WCH Link下载器还没有到手,暂时用串口下载吧。串口下载有点难,流程如下 :
1、BOOT0通过杜邦线接入3.3V电源。
51hei1.jpg
2、打开WCHISPTool 工具,选择相应串口下载方式,选择下载固件,勾选芯片配置,点击下载。
51hei2.jpg
3、BOOT0接地,重新上电,即可运行用户代码。
用串口查看打印信息,怎么只有前两行?
51hei3.jpg
而正常应该打印:
51hei4.jpg
后来通过查看电路原理图,才知道犯的是低级错误:板载24C的SDA 和SCL引脚还没有接入单片机的引脚。通过查看数据手册《CH32V103DS0》,将24C的SDA通过杜邦线接到PB11,24C的SCL接到PB10,结果完全正常。
在测试的过程,有几点想说一下:
1、沁恒单片机的下载机制独特,无论是串口下载还是USB下载,都得通过硬件方法让芯片从BOOT运行。以前玩CH552时,总想从软件方式来让芯片自动进入烧录模式,至今未果。自动下载模式有待以后再次研究。
2、烧录工具WCHISPTool如果能添加串口工具,会使用户调试更加方便些。
3、MounRiver Studio V1.84与Keil MDK使用方法基本相同,用户转型毫无障碍,一来支持中文显示,二来新建工程随即得到工程模板,方便快捷。也像VSCode一样支持函数跳转,阅读代码方便。沁恒的例程中有中文注解,咱不懂英文的中国人觉得蛮好的。
4、CH32V103与CH32F103,可以说是大同小异,代码也大同小异,所以从xx32F移植到CH32V,应该不会有大的难度。
51hei5.png
回复

使用道具 举报

ID:883242 发表于 2023-4-26 14:54 | 显示全部楼层
没有类似jlink的仿真器?
回复

使用道具 举报

ID:71233 发表于 2023-4-27 19:54 | 显示全部楼层
jlink仿真器不能用的,两者的架构不同,通讯协议也不同,就是相同是RISC-V架构,因不同厂商的烧录通讯协议,彼此的仿真器也不能通用。
回复

使用道具 举报

ID:584195 发表于 2023-4-29 11:59 | 显示全部楼层
这个他们可以申请到开发板吗?
回复

使用道具 举报

ID:883242 发表于 2023-4-29 20:27 | 显示全部楼层
我当然知道jlink不支持RISC-V,所以才说“类似jlink”的仿真器。

对于ARM来说调试部分是ARM内核一部分,并不是芯片厂家做的,像CM3的SWD是ARM内核,只要支持一种,其他同内核芯片全部都可以支持。

上电下载功能属于固件,芯片内置的一段程序,各个芯片厂自己定义的通讯协议不一样,不通用那是正常的。

但是楼主位最后一张表,写的调试接口是RVSWD,这个难道不是内核的一部分?而是厂家乱搞的???
回复

使用道具 举报

ID:77589 发表于 2023-5-4 13:47 | 显示全部楼层
玩玩,其实也很不错的
回复

使用道具 举报

ID:87631 发表于 2023-5-8 08:45 | 显示全部楼层
Longan.Wang 发表于 2023-5-4 13:47
玩玩,其实也很不错的

除ADC有点点小问题外,还是很OK的,厂家的FAE支持也很不错
回复

使用道具 举报

ID:272119 发表于 2023-5-8 09:36 | 显示全部楼层
Hephaestus 发表于 2023-4-29 20:27
我当然知道jlink不支持RISC-V,所以才说“类似jlink”的仿真器。

对于ARM来说调试部分是ARM内核一部分, ...

WCH的32位芯片支持他们独特独特的WCH-LINK下载器调试和下载,类似于STM32的SWD接口.还有更奇特的是他们的CH32V003芯片使用WCH-LINK下载器只要SWD pin一根线连接即可下载,下载速度比SWD快的多.
回复

使用道具 举报

ID:272119 发表于 2023-5-8 09:42 | 显示全部楼层
csgtli 发表于 2023-5-8 08:45
除ADC有点点小问题外,还是很OK的,厂家的FAE支持也很不错

ADC什么问题?之前一直用CH32F103C8T6 串口按秒发送9个ADC通道的数值没有发现问题,当然数值没有STC的H系列有ADC-REF pin的芯片稳定,后来看到CH32V203C8T6实在太便宜新案子就用这个了,目前调试验证没有发现问题呢.
回复

使用道具 举报

ID:430492 发表于 2023-5-10 10:37 | 显示全部楼层
国产RISC-V的MCU已经很多了,好几年前就玩过,这两年只是因为怕被arm卡脖子,所以更多厂家转向RISC-V。
回复

使用道具 举报

ID:87631 发表于 2023-5-17 11:19 | 显示全部楼层
qq603599910 发表于 2023-5-8 09:42
ADC什么问题?之前一直用CH32F103C8T6 串口按秒发送9个ADC通道的数值没有发现问题,当然数值没有STC的H系列 ...

精度与线性度
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表