Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
瑞萨_Renesas
HMI-Board
Renesas HMI Board挑战赛——FSP工具使用
发布于 2023-08-25 15:56:19 浏览:533
订阅该版
##1.1硬件平台介绍 RT-Thread和瑞萨推出的HMI-Board上的主控芯片型号为R7FA6M3AH3CFB。 瑞萨电子 RA6M3 微控制器 (MCU) 群组使用高性能 Arm® Cortex®-M4 内核,提供具备 2D 加速器和 JPEG 解码器的 TFT 控制器。此外,RA6M3 MCU 提供具有单独 DMA 和 USB 高速接口的以太网 MAC,可确保大的数据吞吐量。RA6M3 MCU 采用高效的 40nm 工艺,由开放且灵活的生态系统概念提供支持,即基于 FreeRTOS 的灵活配置软件包 (FSP),能够扩展以使用其他 RTOSes 和中间件。RA6M3 适用于需要 TFT、以太网、安全性、大型嵌入式 RAM 和 USB 高速 (HS) 的物联网应用。芯片的特性如下: - 20MHz Arm® Cortex®-M4 - 1MB - 2MB 闪存以及 640kB SRAM - 与 EEPROM 存储数据功能类似的 64kB 数据闪存 - 可从 100 引脚封装扩展至 176 引脚封装 - 具备 DMA 的以太网控制器 - TFT 控制器/2D 加速器/JPEG 解码器 - 电容式触摸传感单元 - USB 2.0 全速/USB 高速 - CAN 2.0B - SCI(UART、简单 SPI、简单 I2C) - SPI/ I2C 多主机接口/SDHI 在RT-Stuido的工程创建界面可以看到板卡的芯片数据手册、使用手册,以及开发板的原理图。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/193bdeb4b059a4d18d53ba0c09d6aa1c.png.webp) ##1.2 瑞萨FSP配置安装和代码生成 RT-Thread框架如下所示。 ![screenshot_architecturezh.png](https://oss-club.rt-thread.org/uploads/20230825/4ccb80e0fb5901a3a5d07b1b1d69dcb4.png.webp) 其中针对开发板的BSP驱动部分,使用瑞萨推出的FSP配置工具RASC来生成板卡的硬件驱动程序。在Github上的可以下载到不同版本的FSP。HMI-Board使用的RASC的版本为v3.5.0。下载完成后,采用默认安装即可。 ##1.3 尝试生成Keil工程 使用RASC生成的工程是面向Keil或者IAR等第三方工具,本文选择使用Keil开发环境。 在之前安装好的的FSP目录下打开rasc.exe。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/dd22c09a4ff5754d85871d43f3b3baff.png.webp) 在弹出的工程创建界面中,输入要创建的工程名称以及路径。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/ce35e38016e2e27f5ef2329067ddbbbc.png.webp) 由于HMI-Board不是Renesas官方推出的开发板,在Board栏中选则“Cunstom User Board(Any Device)”,芯片选择R7FA6M3AH3CFB,IDE Project Type 选择Keil MDK Version5。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/1b8c7c701ac8fefd0643b266f361257d.png.webp) 在RTOS选择页选择”No RTOS”,不需要操作系统支持。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/300b42d5f47cd9938a5dd68f7ada2ea1.png) 在工程模板选择中选择“Bare Metal - Minimal”,创建出的工程不会进行任何操作,在此基础上,可以根据Renesas定义的函数接口来实现用户自定义的功能。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/23eda0b55cc7ffba03e4dd8519ba2886.png.webp) 工程创建完成后在FSP Configuration的配置页中,对芯片的外设、模块、协议栈等进行添加和配置。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/ac9bf34b34b3d5ef6f1a9925f5ce02dd.png.webp) 查看开发手册可以看到P209和P210上外接了两个LED灯,P205(TX)和P206(RX)为串口4的引脚。在FSP->Configuration的Stack中添加相应的IO模块和串口模块。添加完成后的模块组成如图所示。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/b1b63631ee76cc3de9ebcdd92c3021c4.png) 模块添加完成后,需要根据硬件的参数对其进行相应的配置,主要是引脚和使用到的串口号。LED控制属于通用GPIO输出。IO模块的参数采用默认参数即可。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/41eeb33ceffc41cd0cb880d59e980095.png.webp) 串口模块需要指定使用的串口号、波特率、数据位、校验位、停止位以及引脚等信息,模块的配置如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/4f8151da484aa8f252aa9091694bd036.png.webp) 其他外设的配置方式与此类似,这里就不在进行介绍了。点击Generate Project Content生成相应的工程,就可以在工程使用上述模块的接口函数,不再需要自己编写底层的代码。 生成的Keil工程的目录如下图所示。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/7d0851671eaac218bfbdb02afb23ec8c.png.webp) RASC会自动生成的代码都在Flex Software标签下,而工程相关的代码则存在其它的文件目录中。 **注:目前使用过程中,在RASC中添加新的模块并重新生成Keil工程后,会把Keil中的配置选项重置,这对开发是一个不友好的功能,不知道该如何解决。** 1.4 串口通讯和IO控制 在RASC中配置的IO和串口模块在hal_data.c中定义了xx_data.c中定义了相关模块的配置、接口和实例变量。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/410f0f48d1b89211c8f4efcd2cfb6ed2.png.webp) 在瑞萨的提供的HAL库中,函数的接口定义格式为: ```C R_
_
(
); ``` 比如 ```C err = R_SCI_UART_Open (&g_uart4_ctrl, &g_uart4_cfg); err = R_SCI_UART_Write (&g_uart4_ctrl, p_msg, msg_len); R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_02_PIN_09,pin_level); ``` 串口的中断函数在RASC声明为user_uart4_callback,定义如下: ```C void user_uart4_callback(uart_callback_args_t *p_args) { g_data_received_flag=true; } ``` 定义功能函数 ```c fsp_err_t uart_ep_demo(void) { /* Holds level to set for pins */ bsp_io_level_t pin_level = BSP_IO_LEVEL_LOW; while (true) { if(g_data_received_flag) { g_data_received_flag = false; R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_02_PIN_09,pin_level); R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_02_PIN_10,pin_level); /* Toggle level for next write */ if (BSP_IO_LEVEL_LOW == pin_level) { pin_level = BSP_IO_LEVEL_HIGH; } else { pin_level = BSP_IO_LEVEL_LOW; } } } } ``` 在入口函数hal_entry中调用上述的函数 ```c void hal_entry(void) { /* TODO: add your own code here */ ...... /* Initializing IOPORT */ err=R_IOPORT_Open(&g_ioport_ctrl,&g_bsp_pin_cfg); if(err!=FSP_SUCCESS) { APP_PRINT ("\r\n ** IO PORT INIT FAILED ** \r\n"); APP_ERR_TRAP(err); } /* Initializing UART */ err = uart_initialize(); if (FSP_SUCCESS != err) { APP_PRINT ("\r\n ** UART INIT FAILED ** \r\n"); APP_ERR_TRAP(err); } /* User defined function to demonstrate UART functionality */ err = uart_ep_demo(); if (FSP_SUCCESS != err) { APP_PRINT ("\r\n ** UART EP Demo FAILED ** \r\n"); deinit_uart(); APP_ERR_TRAP(err); } #if BSP_TZ_SECURE_BUILD /* Enter non-secure code */ R_BSP_NonSecureEnter(); #endif } ``` 编译前勾选使用“Use MicroLIB” ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/a115e4e3fb3c006c1b9665c1c5d8d9a2.png.webp) 编译完成后,在下载时需要在调试器的配置界面设定以下参数,这些参数中的RAM项和指定MCU的SRAM空间分布相关,需要查看使用手册来确定。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230825/740f4517e662f69f570bbd5b778fdd9e.png.webp) 下载后运行,通过串口发送任意字符,可以观察到板卡上的LED灯在闪烁。下面可以下载的工程 [HMI_RA6M3_UART_LED.7z](https://club.rt-thread.org/file_download/eda2ac5c2ff257ec)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
EPTmachine
Big Maker
文章
4
回答
4
被采纳
0
关注TA
发私信
相关文章
1
Renesas Ra6m2串口接收事件触发定时器启动失败
2
瑞萨RA2E1芯片移植发生的问题
3
RT-Thread有对应瑞萨MCU的版本吗?
4
瑞萨RA2L1 SPI相关问题
5
瑞萨RH850系列的芯片有移植过rt thread吗
6
瑞萨RL78系列的芯片有移植过rt thread吗
7
使用瑞萨的 FSP里面不小心把配置属性的界面给删除掉了,然后就找不回来这个页面了,这啥软件啊叉掉了就找不回了,重装也不行
8
2023开发者大会动手实验环境搭建
9
Vision Board 兩個專案編譯問題
10
Vision-Board例程编译后不通过
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
5
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部