互联型RISC-V单片机CH32V307基于32位RISC-V内核青稞V4设计的互联型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。加入单精度浮点指令集,扩充堆栈区,具有更高的运算性能。扩展串口UART数量到8组,电机定时器到4组。提供USB2.0高速接口(480Mbps)并。我最看重的是内置了PHY收发器,以太网MAC升级到千兆并集成了10M-PHY模块。
开发板上图:


MCU架构:

产品特点
- 青稞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
- 选型:
-
原理图;

RT-Thread Studio 傻瓜式开发:
基于开发板:


代码:
- /********************************** (C) COPYRIGHT *******************************
- * File Name : main.c
- * Author : WCH
- * Version : V1.0.0
- * Date : 2021/06/06
- * Description : Main program body.
- * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
- * SPDX-License-Identifier: Apache-2.0
- *******************************************************************************/
- #include "ch32v30x.h"
- #include <rtthread.h>
- #include <rthw.h>
- #include "drivers/pin.h"
- #include <board.h>
- /* Global typedef */
- /* Global define */
- #define LED0_PIN 35 //PC3
- /* Global Variable */
- /*********************************************************************
- * @fn main
- *
- * @brief Main program.
- *
- * @return none
- */
- int main(void)
- {
- rt_kprintf("MCU: CH32V307\n");
- rt_kprintf("SysClk: %dHz\n",SystemCoreClock);
- rt_kprintf("www.wch.cn\n");
- LED1_BLINK_INIT();
- GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1);
- while(1)
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_0);
- rt_thread_mdelay(500);
- GPIO_ResetBits(GPIOA,GPIO_Pin_0);
- rt_thread_mdelay(500);
- GPIO_SetBits(GPIOA,GPIO_Pin_1);
- rt_thread_mdelay(500);
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- rt_thread_mdelay(500);
- }
- }
有点困混的是芯片自身256+64K,需要打开箭头所示的192ROM+128KRAM ,RTT才运行。

RT-Thread Studio 自带终端打印;

RISC-V架构特权模式包括机器模式、监督模式、用户模式。赤菟V307中实现了其中两种,即机器模式和用户模式。机器模式下具有最高的权限,可以访问所有的CSR,同时也可以访问PMP锁定之外的所有物理地址区域。用户模式下具有最低的权限,访问限定的CSR,且仅能访问PMP允许访问的物理地址区域。当发生异常或中断时,其进入机器模式处理异常和中断。

V307的通用寄存器如下图所示,其中x0-x31为整形寄存器,f0-f31为浮点寄存器。
对于中断函数,需要对所有caller saved寄存器保存。V307支持硬件压栈,使能硬件压栈后当发生中断或异常时会对整形的caller saved寄存器进行自动保存,中断返回后自动恢复。