项目因为网口需要测评CH32V317W-R0开发板:
主控芯片
型号:CH32V317W-R0(基于青稞RISC-V V4F内核)
主频:最高支持144MHz,支持单精度浮点指令和快速中断响应,零等待执行性能。
存储:默认配置256KB Flash + 64KB SRAM,最高可扩展至512KB Flash + 128KB SRAM。
外设资源:
网络:集成千兆以太网MAC控制器,支持10/100/1000Mbps速率,内置PHY收发器(部分型号需外接)。
USB:内置USB2.0高速PHY(480Mbps),支持OTG功能。
接口:8组USART/UART、3组SPI(含2组I2S)、2组I2C、4组电机PWM高级定时器、SDIO、DVP数字图像接口。
模拟:4组模拟运放(OPA)、双12位ADC(1Msps采样率)、双12位DAC。
开发板扩展
网络接口:通常配备RJ45网口,支持RMII/RGMII模式连接PHY芯片(如YT8512H)。
调试接口:两线调试接口(SWD),需使用WCH-Link或WCH-LinkE仿真器。
其他接口:USB Type-C(供电与调试)、CAN总线、RS485、LED指示灯、按键等。
软件开发点灯:
- /********************************** (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.
- * Attention: This software (modified or not) and binary are used for
- * microcontroller manufactured by Nanjing Qinheng Microelectronics.
- *******************************************************************************/
- /*
- *@Note
- GPIO routine:
- PA0 push-pull output.
- */
- #include "debug.h"
- /* Global define */
- /* Global Variable */
- /*********************************************************************
- * @fn GPIO_Toggle_INIT
- *
- * [url=home.php?mod=space&uid=247401]@brief[/url] Initializes GPIOA.0
- *
- * [url=home.php?mod=space&uid=266161]@return[/url] none
- */
- 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_InitTypeDef GPIO_InitStruct = {0};
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; // PC0, PC1
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOC, &GPIO_InitStruct);
- }
- /*********************************************************************
- * @fn main
- *
- * @brief Main program.
- *
- * @return none
- */
- 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(GPIOC, GPIO_Pin_0 | GPIO_Pin_1, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
- }
编译下载OK!!!
遇到不能下载需要WCHISPStudio解锁:参考程序下载模式。
CH32V30x/CH32V317的BOOT0功能总结:- 程序下载模式(ISP模式)
- 硬件连接:将BOOT0引脚接VCC(高电平),BOOT1引脚接GND(低电平)。
- 操作逻辑:此配置使芯片从系统存储器启动,允许通过串口或USB使用工具(如WCHISPTool)下载程序。下载完成后,需将BOOT0接回GND,重新上电或复位,使芯片切换到从程序闪存(Flash)启动,运行新下载的程序。
- 常规启动模式(从Flash运行程序)
- 硬件连接:将BOOT0引脚接GND(低电平),BOOT1引脚接GND(低电平)。
- 操作逻辑:此配置为默认启动模式,芯片上电后直接从Flash中读取并执行用户程序。
- RAM调试模式(特殊场景)
- 硬件连接:将BOOT0引脚接VCC(高电平),BOOT1引脚接GND(低电平)。
- 操作逻辑:需配合修改链接脚本(ld文件)和启动文件,使程序从内部SRAM启动。此模式适用于需要高频调试或动态修改代码的场景,但需注意SRAM容量限制(CH32V307默认64KB SRAM,最高可配置至128KB)。
- 启动模式切换:系统复位或电源复位会重新锁存BOOT0/BOOT1引脚状态,因此每次修改连接后需重新上电或复位。
- 工具兼容性:使用WCH-Link下载时,需确保调试器处于RISC-V模式(蓝色指示灯不亮),避免模式冲突导致下载失败。
- 硬件设计建议:若需频繁切换启动模式,可通过跳线帽或拨码开关连接BOOT0引脚,简化操作流程。
- 效果如下:
-
|