互联型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寄存器进行自动保存,中断返回后自动恢复。