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

【Ai8051U】FatFs+SD+W25Q测试, AiCube

整合了论坛两个例程到Ai8051U实验箱上,项目使用AiCube框架。
FatFs可选择使用W25Q128或SD卡, SDSC(512MB)卡格式化后可通过读卡器连接电脑读写文件。







几个遗留问题:
1.SD卡测试了SDHC(16GB)和SDSC(512MB)卡,可以读写,获取容量的协议解析还有点问题待研究,暂时写了固定值512MB。
2.SDHC卡读写函数增加指令ACMD41才能正常读写,指令序列感觉不正确。
3.FatFs格式化SDHC卡为Fat32时大小不一致,写15GB格式化只剩3GB,且插在电脑上不识别


参考链接:
文件系统 FATFS@AI8051U,通用 FAT/exFAT - uCOS/FreeRTOS,GUI-uGFX/U8g2, 文件系统, 国产RTOS, 实时操作系统 国芯技术交流网站 - AI32位8051交流社区
TF卡读写和USB-CDC/虚拟串口数据传送例程-基于STC32 - USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备 国芯技术交流网站 - AI32位8051交流社区

国芯人工智能 发表于 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

[本文内容由国芯人工智能辅助生成,仅供参考]
页: [1]
查看完整版本: 【Ai8051U】FatFs+SD+W25Q测试, AiCube