【CPKCOR-RA8D1】介绍、环境搭建、工程测试
本文介绍了 CPKCOR-RA8D1B 开发套件的相关信息,包括核心板和扩展板资源特点、原理图、参数功能,并完成 FSP 开发环境搭建,通过运行官方 Demo 例程,实现核心板、底板、摄像头模块、显示屏模块的工程测试
介绍
瑞萨 RA8D1 套件包括核心板和扩展板,带显示屏和摄像头模块,支持 MIPI-DSI 显示输出接口。 板上除了实现RA8D1 最小系统外,还搭载了实用的外设功能。CPKEXP-EKRA8X1 扩展板和核心板配合,可以方便地评估RA8x1 MCU的大部分功能。
瑞萨提供多种 CPK 开发板和扩展板,各个 CPK 板和目录的对应关系如下:
核心板
CPKCOR-RA8D1B 板使用 224BGA 封装的 RA8D1 MCU(U1),支持 MIPI-DSI 显示输出接口。
Top view

板上除了实现RA8D1最小系统外,还搭载了实用的外设功能,包括:
- 16位SDRAM(U2),32M字节容量
- QSPI Flash(U3),16M字节容量 - USB 2.0高速主机/设备,JUSB Type-C 2.0接口,支持主/从功能自动切换
- 板载Segger Jlink调试器,同时支持一路虚拟串口,JDBG Type-C 2.0 设备接口
- 电源LED(白色),用户LED-PA01(绿色),复位按键和用户按键-P008
- 2.54mm间距的通孔扩展接口
- J901 串行口扩展
- J902 外接调试器接口
- JA,JD通用扩展接口
Bottom view

在开发板的底面,预留了丰富的扩展接口,包括:
- TF卡槽,支持3.3V信号电平(DS和HS速度模式)
- J1,J2 两个80管脚的高密度板对板连接器
- HRS DF40C-80DP-0.4V(51)
- 对应的扩展板用接插件有多种合高选择,1.5/2.0/3.0/3.5/4.0mm
详见:RA-Eco-RA8D1-224PIN-V2.0 | Gitee .
原理图
主控 MCU


供电

Type-C

JLINK

Flash

SDRAM

BTB

排针

扩展板
CPKEXP-EKRA8X1 是适用于CPK-RA8x1系列核心板的通用扩展板,扩展板上提供了和EK-RA8x1类似的接口,其中部分接口和EK-RA8x1管脚兼容,可以方便地评估RA8x1 MCU的大部分功能。
此通用扩展板也可作为一个设计样例,当用户有特定的功能需求时,可以自行修改,快速设计出符合需求的原型系统。
详见:cpkexp_ekra8x1 | ra生态工作室 .
外观
Top view

Bottom view

安装
通用扩展板可以配合以下核心板使用:
- CPKCOR-RA8D1B
- CPKHMI-RA8D1B
CPK-RA8x1核心板可以贴装不同类型的RA8x1 MCU,配合通用扩展板时能实现的功能也有所不同,需参考不同核心板 J1 和 J2 接口的信号定义。
- 安装核心板时,将核心板的螺丝孔和扩展板的螺丝孔位置对准,用力按下核心板,确认连接可靠即可;
- 取下核心板时,接插件连接较为紧密,且两个板子间空间较小(缺省连接器合高1.5mm),建议使用塑料撬棒,在各个螺丝孔位置轻轻将核心板与扩展板分离。

原理图
Arduino

CAN

Connector

MIPI

OV 摄像头

外设

排针

PMOD

SDHI

功能
板载硬件功能
- USB-FS Type-C 接口,通过2.0mm跳线组合选择Host或Device功能,支持RA8x1 MCU的USB-Boot功能。
- 2路CAN-FD 收发器,通过2.54mm跳线座连接MCU,可灵活适配需要使用的CAN通道和管脚。
- 百兆以太网,使用LAN8720AI PHY。
- H0233S001 2.33英寸全接口LCD模组,支持MIPI-DSI/RGB666/SPI显示接口(可选装)。
- QSPI Flash,WSON 6x8封装,可贴装NAND Flash (缺省不贴装)。
- RESET按键和NMI中断按键,1个用户按键。
- 1个电源LED,2个用户LED
扩展接口
所有的扩展接口都可以作为GPIO扩展来使用,但在管脚分布上,同一外设功能的I/O尽量分布在一起。排针接口的规格均为2.54mm间距。
- PMOD接口,支持Type2A扩展SPI接口(缺省)以及Type3A扩展UART接口(需修改跳接电阻)。
- Arduino UNO扩展接口。
- Grove接口1,仅支持I2C功能。
- Grove接口2,可选I2C、I3C或模拟接口功能。
- 50pin FPC LCD触摸屏扩展接口,支持MIPI-DSI(2 Lane)、RGB666、SPI显示,I2C触摸屏。
- 40pin 双排针 LCD触摸屏接口,支持RGB888显示,I2C触摸屏(与EK-RA8D1兼容)。
- 24pin FPC CEU接口(DVP摄像头接口),可以直接连接OV7725摄像头模组。
- 30pin 双排针 摄像头接口,其中前20pin的管脚定义和EK-RA8D1兼容。
- 20pin FPC接口,用于扩展OSPI设备(需要禁用核心板上的QSPI存储)。
- 20pin 双排针 SDIO/MMC接口。
- 24pin 双排针 GPIO信号扩展。
- 10pin 双排针 USB FS及调试烧录控制。
- 10pin CMSIS-DAP调试接口。
- 20pin ETM调试接口(未实装)。
电源选项
- 当USB Type-C接口配置为Device时,可以通过USB Type-C接口为扩展板(以及核心板)提供5V电源,限流2A。
- 扩展板上有电源选择区域,可以选择是否将核心板的电源信号连接到扩展板,也可通过扩展板上的电源脚为核心板提供独立的供电(例如模拟电源等)。
- 电池供电接口,可以为核心板提供VBATT电源。
缺省配置
CPKCOR-RA8D1B核心板 + CPKEXP-EKRA8x1扩展板,组成CPK-RA8x1开发套件,本手册以此套件为例,介绍通用扩展板的各个功能。
核心板上RA8x1 MCU的大部分功能管脚都通过2个80Pin的高密高速接口J1/J2连接到扩展板的各个接口,可以进行灵活的配置。 开发板套件在缺省状态下(出厂设置),可以直接使用以下接口。
- 核心板上的所有功能,包括SDRAM,QSPI NOR Flash,JLink,USB-HS,MicroSD卡,J901扩展口。
- LCD接口,通过MIPI-DSI连接分辨率为222x480的LCD屏。
- OV7725摄像头接口(背面),直接连接OV7725 24Pin的摄像头模组。
- USB-FS Type-C 2.0接口,缺省配置为Device,可通过跳线配置为Host。
- 1路CAN-FD接口。
- Arduino UNO 扩展接口。
- PMOD接口,Type 2A扩展SPI模式。
- 两个Grove接口,I2C模式。
跳线设置
瑞萨提供CPK-RA8D1B开发板套件的BSP,下载地址:CPKEXP-EKRA8X1 BSP Pack ;
瑞萨提供了 Excel 表格,详细记录 BSP 对应的各个管脚的功能设置
BSP 缺省配置对应的跳线及开关设置如下。
- USB-FS接口设置为USB Device,并将P407作为USB-FS的VBUS检测引脚(可以支持USB Boot)。红色跳线块为USB电源设置,绿色为信号连接。
- 显示输出缺省使用板载2.33寸LCD(H0233S001),跳线设置如下。红色为LCD电源(3.3V),LCD接口模式为MIPI-DSI(IM0=0,IM1=1),LCD背光设置为常亮(BLK-EN=VCC)。 这个跳线模组采用了安全设计,使用2pin跳线块时,即使不小心插错跳线块,也不会造成系统短路或MCU管脚短接。
- CEU摄像头和以太网复用,BSP缺省使用CEU摄像头功能,以太网PHY的RESET信号拉低。以太网RMII接口数据线上的跳线可以不用断开,但REFCLK50需要断开(以太网PHY的REFCLK50管脚一直有时钟信号输出,会干扰CEU接口的数据)。配套的OV7725摄像头的接口PCB底面,信号上接方式。安装后摄像头应朝着板的正面。
- CAN-FD使用CAN-FD收发器1,P208/P209端口作为CAN-FD功能使用,P005作为Standby控制。
- Grove2接口功能为I3C/I2C/Analog可选,缺省使用I2C功能,S2和S3开关拨到中间位置。
确认设置完成后,即可运行 CEU 样例程序,确认摄像头和显示屏是否工作正常。
详见:cpkexp_ekra8x1 -_overview | ra生态工作室 .
环境搭建
板载 J-Link 调试器,可使用多种环境实现程序调试。
注意:不需要单独安装 e² studio,FSP 平台安装程序会安装 e² studio 和使用 FSP 所需的所有其他工具。
-
由于这里使用 RA8D1 主控,仅安装 RA 系列软件包即可;
-
安装工具链时注意勾选官方 Demo 例程所需的 LLVM Embedded Toolchain for ARM ;

-
如果已安装 e2 studio 软件,需要增加 LLVM 工具链,方法如下:

-
工具链安装完成后,可在工程配置时方便地进行选择。
工程测试
为了测试板载显示屏和摄像头模块,这里直接使用 e^2^ studio 打开官方示例 Demo 工程 ceu_cpkexp_ra8d1_ep,实现工程测试的相关流程。
Demo 下载
- 在目标存储文件夹右键打开 Git,执行指令
git clone https://gitee.com/ramcu/cpk_examples.git 克隆官方示例工程;

导入工程
- 导入或加载 CEU 工程,路径为
...\cpk_examples\cpkexp_ekra8x1\ceu_cpkexp_ra8d1_ep\e2studio_llvm ;

工具链配置
- 右键工程文件夹,进入属性页面;
- 依次进入
C/C++ 构建 - 设置 - Toolchain,在 Change Toolchain 模块下选择对应的工具链;

流程图
根据 hal_entry.c 给出代码程序对应的流程图

代码
打开主函数所在文件 src\hal_entry.c ,代码如下
#include "hal_data.h"
#include "common_utils.h"
#include <stdio.h>
#include "ov7725.h"
#include "ceu.h"
#include "board_sdram.h"
#include "graphics.h"
#include "mipi_dsi_ep.h"
FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER
uint8_t g_image_vga_sram [ VGA_WIDTH * VGA_HEIGHT * YUV422_BYTE_PER_PIXEL ] ;
extern volatile bool g_vsync_flag;
void hal_entry(void)
{
fsp_err_t err = FSP_SUCCESS;
bsp_sdram_init();
err = R_IIC_MASTER_Open(&g_i2c_master1_ctrl, &g_i2c_master1_cfg);
if(err != FSP_SUCCESS){
APP_PRINT( "** IIC MASTER Open API failed ** \r\n");
}
#if 1
err = ov7725_open();
if(err != FSP_SUCCESS){
APP_PRINT( "** ov7725_open API failed ** \r\n");
}
OV7725_Window_Set(VGA_WIDTH, VGA_HEIGHT, 1);
#else
ov5640_init();
ov5640_set_output_format(OV5640_OUTPUT_FORMAT_RGB565);
ov5640_auto_focus_init();
ov5640_set_output_size(VGA_WIDTH,VGA_HEIGHT);
ov5640_set_exposure_level(OV5640_EXPOSURE_LEVEL_8);
#endif
err = ceu_init(g_image_vga_sram, VGA_WIDTH, VGA_HEIGHT);
if(err != FSP_SUCCESS ){
APP_PRINT( "** ceu_init API failed ** \r\n");
}
graphics_init();
mipi_dsi_entry();
gp_frame_buffer = gp_single_buffer;
while(1){
gp_frame_buffer = (gp_frame_buffer == gp_single_buffer) ? gp_double_buffer : gp_single_buffer;
err = ceu_operation(g_image_vga_sram);
if(err != FSP_SUCCESS ){
APP_PRINT( "** ceu_operation API failed ** \r\n");
}
#if(0)
yuv422_to_rgb565(&g_image_vga_sram[0], &g_image_rgb565_sdram_buffer[0], VGA_WIDTH, VGA_HEIGHT);
graphics_draw_frame(&g_image_rgb565_sdram_buffer[0], (uint8_t*) gp_frame_buffer, VGA_WIDTH, VGA_WIDTH, VGA_HEIGHT);
#else
graphics_draw_frame(&g_image_vga_sram[0], (uint8_t*) gp_frame_buffer, VGA_WIDTH, VGA_WIDTH, VGA_HEIGHT);
#endif
R_GLCDC_BufferChange (&g_display_ctrl, (uint8_t*) gp_frame_buffer, DISPLAY_FRAME_LAYER_1);
g_vsync_flag = RESET_FLAG;
while (g_vsync_flag);
}
#if BSP_TZ_SECURE_BUILD
R_BSP_NonSecureEnter();
#endif
}
代码结构见流程图,保存并构建工程。
工程调试
- 在左侧
项目资源管理器 窗口的项目文件夹上右键,选择 构建项目 ;
- 当工程编译完成,下方控制台输出无错误,表明工程构建完成;

-
使用 Type-C 数据线连接核心板的 Debug USB 接口和电脑;
-
右键工程,选择 调试方式 - 调试配置 ,选择编译完成的 _Flat 文件,调试器选择 J-Link ARM;

-
点击 调试 按钮,进入调试界面,点击菜单栏 运行 按钮执行程序;
效果
当工程运行时,板载 TFT 显示屏在完成色彩显示初始化和自检后,显示摄像头采集画面;

动态效果
见底部视频。
总结
本文介绍了 CPKCOR-RA8D1B 开发套件的相关信息,包括核心板和扩展板资源特点、原理图、参数功能,并完成 FSP 开发环境搭建,通过运行官方 Demo 例程,实现核心板、底板、摄像头模块、显示屏模块的工程测试,为后续深入开发做好铺垫,也为相关产品的开发设计和快速应用提供了参考。