Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RA8-M85-vision-board
[RA8D1-Vision Board] sd卡实践
发布于 2024-04-26 21:17:22 浏览:377
订阅该版
[tocm] # 芯片中SDHI简介 阅读瑞萨官方手册得知RA8D1里有一个SDHI(Secure Digital Host Interface)控制器和一个用于emmc的控制器MultiMediaCard (MMC) Interface。其中SDHI(在手册里也被叫做SD1)支持一线、四线操作,支持sd卡和sdio卡,速度模式支持Default Speed mode, High Speed mode, SDR12和SDR25。而emmc控制器(在手册里是SD0)支持一线、四线、八线操作。这两控制器软件编程上其实是差不多的。另外简单看了控制器的寄存器布局,和所谓的SDHCI(Secure Digital Host Controller Interface)不一样,故而不是SDHCI兼容的。 # vision board板级情况 查阅vision board原理图可知板载一个tf卡插槽,信号都是3.3v,引脚都接入瑞萨手册里称之为SD1的控制器,tf卡槽的CD引脚是P503,vdd直接接3.3v未用gpio控制,所以板子开机tf卡就上电了 # fsp配置 由上述信息可以在fsp配置,fsp用法蛮简单的和cubemx有点像,这里略过。其实我们有一种偷懒办法--sdk有如下几个project配置了SDHI:doom, nes, vision_board_openmv。任意挑一个project,把它的ra,ra_cfg和ra_gen三个目录拷贝过来就可以用了 # RT-Thread配置 仿照nes/vision_board_mipi_2.0inch_nes弄了一个vision_board_sdhi目录。scons menuconfig配置时我们需要打开这几个选项:RT_USING_DFS, BSP_USING_SDCARD_FS, BSP_USING_SDHI1。 注意点: - SDHI Detection Pin Name设置为p503,默认就是这个引脚; - DFS版本选V1; - SDHI_USING_1_BIT可选可不选,理论上4bit模式速度应该更快(可见下面实际性能测试数据)。vision_board_sdhi项目默认配置是未选中SDHI_USING_1_BIT。 # sd卡测试程序 引入文件系统后,测试程序可以用普通的文件测试用例,RT-Thread的examples/file/目录下有现成的:readspeed.c、readwrite.c 、writespeed.c,把它们拷贝到board/ports/目录下. # 开机挂载sd卡 仿照nes project在src/hal_entry.c中插入如下代码挂载sd卡: ```c rt_device_t device; device = rt_device_find("sd"); while (device == NULL) { device = rt_device_find("sd"); rt_pin_write(LED_PIN, PIN_HIGH); rt_thread_mdelay(200); rt_pin_write(LED_PIN, PIN_LOW); rt_thread_mdelay(200); } ``` # 测试和性能数据对比 读写测试 ```bash msh />readwrite rttestfile [W/time] Cannot find a RTC device! [W/time] Cannot find a RTC device! [W/time] Cannot find a RTC device! read/write test successful! ``` 读性能数据 ```bash msh />readspeed /Image File read speed: 1416000 byte/s ``` 写性能数据 ```bash msh />writespeed rtwritetest [W/time] Cannot find a RTC device! [W/time] Cannot find a RTC device! File write speed: 249000 byte/s ``` Enable SDHI_USING_1_BIT后的读写性能数据: ```bash msh />readspeed /Image File read speed: 1103000 byte/s msh />writespeed /rtfiletest2 [W/time] Cannot find a RTC device! [W/time] Cannot find a RTC device! File write speed: 249000 byte/s ``` 由此可以看出读性能4bit模式比1bit模式高,写性能则没变化。 # 总结感想 RT-Thread文件系统这快做的很不错,通用化、模块化,甚至测试用例都给写好了。移植到新的芯片只要适配下存储相关的主控比如sdhi、spi/qspi/ospi flash控制器后,文件系统就自然可用了。 vision board sd卡读写性能应该还有大大优化的空间,理论上default speed频率上限是25MHZ,在四线模式下也该有12.5MB/s总线速度,需要研究下sdclk和SDHI控制器的时钟频率是不是最优。 # 后记 调试发现性能和block大小有关,默认512字节,如果用8192或81920字节,速度就上来了。 四线读写性能: ```bash msh />readspeed /Image 8192 File read speed: 6714000 byte/s msh />readspeed /Image 81920 File read speed: 6791000 byte/s msh />writespeed /rttwritetest 8388608 8192 [W/time] Cannot find a RTC device! [W/time] Cannot find a RTC device! File write speed: 1835000 byte/s ``` 可以看到block size由8192字节增加到81920字节,性能提升并不明显。再看看一线模式: ```bash msh />readspeed /Image 8192 File read speed: 2829000 byte/s msh />readspeed /Image 81920 File read speed: 2843000 byte/s msh />readspeed /Image 819200 File read speed: 2847000 byte/s msh />writespeed /rttwritetest 8388608 8192 [W/time] Cannot find a RTC device! [W/time] Cannot find a RTC device! File write speed: 1302000 byte/s ```
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
rvcore
这家伙很懒,什么也没写!
文章
10
回答
7
被采纳
1
关注TA
发私信
相关文章
1
Vision Board 兩個專案編譯問題
2
Vision-Board例程编译后不通过
3
Vision Board 示例7编译失败问题
4
Vision board OpenMV的摄像头画面有干扰条纹噪声
5
micropython能否增加一个tiny版本的yolov2目标检测功能?
6
Vision Board问题反馈:采集帧率低
7
RT-Thread Studio 编译OpenMV 工程出错 (RA8 Vision Board)
8
Vision Board如何接入外部摄像头
9
怎样把SCI当作SPI使用
10
Vision Board使用openmv无法下载脚本
推荐文章
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
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部