嵌入式大赛初探之CH32V307介绍(上)

   作为记录贴,记录下本次参加嵌入式大赛的经过,关于RISC-V架构与沁恒系列芯片,新的知识,从最基础学起。

一、沁恒微电子及赤菟开发板

本次嵌入式大赛我选择的是沁恒赛道,利用赤菟CH32V307开发板完成项目。

产品特点

青稞V4F处理器,最高144MHz系统主频
支持单周期乘法和硬件除法,支持硬件浮点运算(FPU)
64KB SRAM,256KB Flash
供电电压:2.5/3.3V,GPIO单元独立供电
多种低功耗模式:睡眠、停止、待机
上/下电复位、可编程电压检测器
2组18路通用DMA
4组运放比较器
1个随机数发生器TRNG
2组12位DAC转换
2单元16通道12位ADC转换,16路触摸按键TouchKey
10组定时器
USB2.0全速OTG接口
USB2.0高速主机/设备接口(480Mbps 内置PHY)
3个USART接口和5个UART接口
2个CAN接口(2.0B主动)
SDIO接口、FSMC接口、DVP数字图像接口
2组IIC接口、3组SPI接口、2组IIS接口
千兆以太网控制器ETH(内置10M PHY)
80个I/O口,可以映射到16外部中断
CRC计算单元,96位芯片唯一ID
串行2线调试接口
封装形式:LQFP64M、LQFP100

性能分析
赤菟CH32V307是沁恒开发的一款基于32位RISC-V指令集的互联型微控制器,外设丰富,用途广泛。可以看到,青稞处理器最高支持144MHz主频,性能对标STM32F4系列,同时比STM系列更加有性价比。
赤菟CH32V307采用沁恒微电子自研的RISC-V青稞内核。赤菟是三国中的一匹战马,像老虎一样凶猛的神驹。兔取菟字意思,解释为老虎,乃是马中的皇者,渡水登山,辅佐英雄;青稞这种植物极其耐寒、适应性广,生命力旺盛,是战马的饲料。
不同于CH32V103系列开发板(几乎是裸板,各类引脚外设需要自行外接设备及定义),赤菟开发板加入丰富的板载外设,可以应用于人机交互,无线传输,工业控制,AIoT等领域。这颗芯片及这块开发板,能带给用户战马般的速度和力量,提升开发体验,作为通用MCU,赋能社区和开发者。
图片:赤菟开发板

二、编译环境介绍:MounRiver Studio

MRS既可以编译ARM架构,也可以编译RISC-V架构,其内部集成了多种型号芯片的示例代码,因此不需要像keil一样完成复杂的初始化各类文件,直接按照教程即可建立工程。
(1)首先下载安装开发环境-MRS
进入官网下载页面(http://mounriver.com/download)) 下载,具体安装过程省略。注意可以将语言设置为中文。
(2)建立第一个工程
①点击 创建MounRiver Studio

②选择工程所用芯片 CH32V307
③选择 CH32V307VCT6
④编辑工程名
⑤选择工程存放路径
⑥点击 完成

三、MounRiver Studio实例项目分析

#include "debug.h"//包含ch32库文件

接下来是最简单的点灯程序,首先初始化GPIO,如下图,格式类似于STM32标准库,初始化引脚PA0,输出模式为上拉输出。

void GPIO_Toggle_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

主函数主要是对中断、系统时钟、延时、串口、GPIO初始化。
SystemCoreClockUpdate():更新SystemCoreClock的值,与系统频率一致。
while循环里,执行的是对PA0的LED间断闪烁的功能,一开始是低电平,然后是高电平,这样循环往复。

int main(void)
{
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    SystemCoreClockUpdate();
    Delay_Init();
    USART_Printf_Init(115200);	
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );

    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    {
        Delay_Ms(250);
        GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
    }
}

四、MounRiver Studio其他说明

(1)WCH LINK烧录下载功能
由于赤菟开发板板载WCH一键下载功能,因此当使用编译成功后,左侧管理器栏目会在obj目录生成.hex文件。

右键hex文件,进入下载配置,在下载配置菜单下,可以配置下载的芯片型号、编程地址、目标文件,还可以对芯片的读保护进行加密和解密操作。对于下载的过程可以选择全片擦除、校验、复位(复位勾选即表示在下载完成后芯片会自动复位)。

(2)关于Debug功能,后期将补充。

物联沃分享整理
物联沃-IOTWORD物联网 » 嵌入式大赛初探之CH32V307介绍(上)

发表评论