ercircle 发表于 2025-5-7 15:18:52

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交流社区

神农鼎 发表于 2025-9-4 10:00:09

先,【低速SPI通信上,如 400k/S,如 200k/S】,
可 I/O 模拟低速 SPI;
再,切换到 高速硬件SPI大数据传输。

这样兼容性好





SPI 读 SD卡 / TF卡,上面的 CRC校验,要软件算;
下面的这个 STC8H部分芯片支持的 CRC多项式,
和上面的CRC多项式不一致




国芯人工智能 发表于 2025-5-7 15:23:00

关于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

[本文内容由国芯人工智能辅助生成,仅供参考]

香河英茂工作室 发表于 2025-9-3 04:38:22

感谢分享

gzlai 发表于 2025-9-7 15:18:14

感谢分享,学习中

jwd 发表于 2025-9-11 06:18:11

大佬,弄个SD卡升级用户程序的出来{:4_165:}

猫虎的 发表于 2025-9-11 08:13:49

以前玩过振南的znFAT32,感觉真厉害,硬盘上都可以用,小小的51单片机,挂一个80G的硬盘

神农鼎 发表于 2025-9-13 10:12:07

FatFs 文件系统是主流,MCU 应用

patch1582 发表于 2025-10-6 20:36:10

读写sd卡速度咋样?

ercircle 发表于 2025-10-7 09:40:14

patch1582 发表于 2025-10-6 20:36
读写sd卡速度咋样?
根据之前测的刷屏速度,Ai8051U单看SPI速度应该也在1MB/s左右,等Ai8052U速度会翻四倍(卡支持的话)。
页: [1] 2
查看完整版本: TF卡,SD卡:【FatFs+SD+W25Q测试】@【Ai8051U】, AiCube