TF卡,SD卡:【FatFs+SD+W25Q测试】@【Ai8051U】, AiCube
TF卡,SD卡:【FatFs+SD+W25Q测试】@【Ai8051U】, AiCube
整合了论坛两个例程到Ai8051U实验箱上,
项目使用AiCube框架。
FatFs可选择使用W25Q128或SD卡 / TF卡,
SDSC(512MB)卡格式化后可通过读卡器连接电脑读写文件。
几个遗留问题:
1.SD卡测试了SDHC(16GB)和SDSC(512MB)卡,可以读写,获取容量的协议解析还有点问题待研究,
暂时写了固定值512MB。
2.SDHC卡读写函数增加指令ACMD41才能正常读写,指令序列感觉不正确。
3.FatFs格式化SDHC卡为Fat32时大小不一致,写15GB格式化只剩3GB,且插在电脑上不识别
当前程序采用40M主频,SPI外设4分频,HSSPI 5分频,
可尝试进一步提升分频速度,也可加入DMA使用。
对SPI操作主要在SD.c中,调用SPI_WriteByte接口。
参考链接:
文件系统 FATFS@AI8051U,通用 FAT/exFAT - uCOS/FreeRTOS,GUI-uGFX/U8g2, 文件系统, 国产RTOS, 实时操作系统 国芯技术交流网站 - AI32位8051交流社区
TF卡读写和USB-CDC/虚拟串口数据传送例程-基于STC32 - USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备 国芯技术交流网站 - AI32位8051交流社区
先,【低速SPI通信上,如 400k/S,如 200k/S】,
可 I/O 模拟低速 SPI;
再,切换到 高速硬件SPI大数据传输。
这样兼容性好
SPI 读 SD卡 / TF卡,上面的 CRC校验,要软件算;
下面的这个 STC8H部分芯片支持的 CRC多项式,
和上面的CRC多项式不一致
关于Ai8051U实验箱FATFS+SD+W25Q128集成测试的技术分析及改进建议
一、系统架构实现分析
本方案基于AiCube框架成功整合了W25Q128 SPI FLASH与SD卡双存储介质,实现了FAT/exFAT文件系统的兼容支持。
通过抽象层设计,用户可通过配置参数灵活切换存储介质,其技术实现具有以下特点:
1. 采用分层架构:硬件驱动层(SPI/I²C)、物理接口层(SD/Flash)、FatFs中间件层和应用层结构清晰
2. 实现SD协议栈V2.0兼容,支持SDSC(标准容量)和SDHC(高容量)卡的基本读写功能
3. 通过块设备接口封装,使W25Q128与SD卡在FatFs层具有统一的访问接口
二、现存问题技术分析及解决方案
(一)SD卡容量检测异常
现象描述:SDHC(16GB)与SDSC(512MB)卡容量解析异常,暂用固定值替代。
技术分析:
1. CMD9(读取CSD寄存器)响应解析未正确处理版本差异
SDSC卡使用CSDv1结构(128bit)
SDHC/SDXC卡使用CSDv2结构(新计算方法)
2. CMD8(检查电压兼容性)阶段未正确设置检查模式
3. 容量计算算法未区分不同版本CSD结构
建议解决方案:
1. 改进CSD解析函数:
if(CSDSTRUCTUREVERSION == 1){
容量 = (CSIZE+1)(1
[本文内容由国芯人工智能辅助生成,仅供参考]
感谢分享 感谢分享,学习中 大佬,弄个SD卡升级用户程序的出来{:4_165:} 以前玩过振南的znFAT32,感觉真厉害,硬盘上都可以用,小小的51单片机,挂一个80G的硬盘 FatFs 文件系统是主流,MCU 应用 读写sd卡速度咋样? patch1582 发表于 2025-10-6 20:36
读写sd卡速度咋样?
根据之前测的刷屏速度,Ai8051U单看SPI速度应该也在1MB/s左右,等Ai8052U速度会翻四倍(卡支持的话)。
页:
[1]
2