[评测分享]
【RISC-V 沁恒微-CH585M-R1开发板试用体验】+上电点灯
#板卡评测
715 人阅读
|
0 人回复
|
2025-06-23
TA的每日心情 | 奋斗 昨天 11:29 |
|---|
签到天数: 2642 天 连续签到: 34 天 [LV.Master]伴坛终老
司徒
- 积分
- 40453
|
本帖最后由 yinwuqing 于 2025-6-24 00:00 编辑
一、概述
收到开发板有段时间了,前段时间由于感冒了,因此没来及即时发帖。今天来分享一下开箱点灯的过程。
CH585是集成BLE无线通讯和高速USB及NFC的RISC-V MCU/SoC。片上集成了2Mbps低功耗蓝牙BLE通讯模块、USB全速控制器及收发器、USB高速控制器及收发器(480Mbps)、NFC近场通信无线接口、段式LCD驱动模块、LED点阵屏接口、2个SPI、4个串口、14路ADC、触摸按键检测模块等丰富的外设资源。CH585评估板配有以下资源:
①. 开关 S1 :供电开关,用于切断或连接外部5V供电或USB供电。
②. 按键 RESET :复位按键,用于外部手动复位(注意需要开启芯**动复位功能)。
③. 按键 DOWNLOAD :下载按键,在 ISP 下载时使用。
④. 两个USB 接口:主芯片的USB 通讯接口:一个高速USB;一个全速USB,具有Host 和Device功能。
⑤. 插排P2/P3:包括芯片功能、电源、LED灯负载操作引脚。
⑥. NFC和BLE天线:负责无线信号的传输。
二、资料获取
关于该板的SDK包,我们可以通过沁恒官网获取,用户跳转https://www.wch.cn/products/CH585.html获取CH585的开发资料。当然包括数据手册,以及官网提供的IDE:MounRiver Studio(MRS)。软件包CH585EVT.ZIP中的PUB目录下也包含了该开发板的原理图。
三、实物开箱
拿到的开发板实物如下,板子天线射频部分电路占板空间比较大,整块板子采用PCB天线,
背面没有设计其它小元器件,PCB走线清晰,过孔连线非常规范、标准。
四、环境搭建
首先是安装“MounRiver Studio”开发工具,最好是最新版本的,笔者使用的是v1.92版。其界面构造与Eclipse相似,用起来也比较顺手;其次需要准备好“CH585EVT.ZIP”资料包,并解压到一个无中文字符的简短路径下;最后需要准备ISP下载工具,用户可通过链接:WCHISPTool_Setup.exe获取。同样也建议更新到最新版本,笔者这里采用的是v3.70。
准备好上述工作后,进入到“\EVT\EXAM\LED”目录下,直接双击打开“LED.wvproj”文件,然后点击编译图标,即完成工程编译。
五、代码编写
根据PUB文件夹下的“CH585SCH”原理图可知,板上的LED0、LED1的管脚分布,这里笔者自备了一块RGB灯板,与板上的逻辑电平刚好相反,板上的LED0、LED1是低电平有效,而RGB灯板的逻辑是高电平有效。
这里用到PA0、PA1、PA2、PA3、PA5即对应LED0~LED4,在LED工程中的main.c中编写如下:
- #include "CH58x_common.h"
- #include "ch58x_drv_ledc.h"
- void RGB_Led_Contol(uint8_t color)
- {
- switch(color)
- {
- case 0:
- GPIOA_SetBits(GPIO_Pin_2);
- GPIOA_ResetBits(GPIO_Pin_3);
- GPIOA_ResetBits(GPIO_Pin_5);
- break;
- case 1:
- GPIOA_ResetBits(GPIO_Pin_2);
- GPIOA_SetBits(GPIO_Pin_3);
- GPIOA_ResetBits(GPIO_Pin_5);
- break;
- case 2:
- GPIOA_ResetBits(GPIO_Pin_2);
- GPIOA_ResetBits(GPIO_Pin_3);
- GPIOA_SetBits(GPIO_Pin_5);
- break;
- case 3:
- GPIOA_SetBits(GPIO_Pin_2);
- GPIOA_SetBits(GPIO_Pin_3);
- GPIOA_SetBits(GPIO_Pin_5);
- break;
- default:
- GPIOA_ResetBits(GPIO_Pin_2);
- GPIOA_ResetBits(GPIO_Pin_3);
- GPIOA_ResetBits(GPIO_Pin_5);
- break;
- }
- }
- int main()
- {
- HSECFG_Capacitance(HSECap_18p);
- SetSysClock(CLK_SOURCE_HSE_PLL_62_4MHz);
-
- //LED 0
- GPIOA_ModeCfg( GPIO_Pin_0, GPIO_ModeOut_PP_5mA );
- //LED 1
- GPIOA_ModeCfg( GPIO_Pin_1, GPIO_ModeOut_PP_5mA );
- //LED 2
- GPIOA_ModeCfg( GPIO_Pin_2, GPIO_ModeOut_PP_5mA );
- //LED 3
- GPIOA_ModeCfg( GPIO_Pin_3, GPIO_ModeOut_PP_5mA );
- //lED 4
- GPIOA_ModeCfg( GPIO_Pin_5 , GPIO_ModeOut_PP_5mA );
- while(1)
- {
- GPIOA_ResetBits(GPIO_Pin_0);
- GPIOA_SetBits(GPIO_Pin_1);
- DelayMs(100);
- GPIOA_SetBits(GPIO_Pin_0);
- GPIOA_ResetBits(GPIO_Pin_1);
- DelayMs(100);
- GPIOA_ResetBits(GPIO_Pin_0);
- GPIOA_SetBits(GPIO_Pin_1);
- DelayMs(100);
- GPIOA_SetBits(GPIO_Pin_0);
- GPIOA_SetBits(GPIO_Pin_1);
- RGB_Led_Contol(0);
- DelayMs(300);
- RGB_Led_Contol(1);
- DelayMs(300);
- RGB_Led_Contol(2);
- DelayMs(300);
- RGB_Led_Contol(3);
- DelayMs(300);
- }
- }
复制代码 编译ok,即在LED工程文件夹下的“obj”文件夹下生成编译后的“LED.hex”文件。
六、硬件连接
硬件接口实物连线如下图所示:
板上的LED0、LED1是悬空在板上的,需要自行使用杜邦线将P2排针上的LED0与PA0、LED1与PA1相连接。再者需要采用ISP下载hex文件,因此需要将PB22管脚与GND短接(在没有上电前短接后,再上电,此时ISP功能才能正常识别到下载接口)。
按照《CH585评估板说明书.pdf》操作,自动搜索到下载接口,加载编译后生成的hex文件,点击“下载”即可完成程序更新。
七、点灯效果
程序更新完后,板子自动断开ISP下载工具,更新后的闪灯效果正如程序中所设定的。
|
|
|
|
|
|
|
|
|