0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

贴片SD卡移植FATFS文件系统(SD NAND FLASH)

深圳市雷龙发展有限公司 2023-02-03 16:21 次阅读

一、前言
手头有一块深圳雷龙提供的贴片 CS 创世 SD NAND Flash,挂载个文件系统把玩一下。首先介绍一下使用的贴片 SD 卡,以前使用的都是拔插式的 SD 卡,下面这个样子:
SD NAND,贴片式TF卡,贴片式SD卡
深圳雷龙提供的CS创世 SD NAND Flash 如下图:
SD NAND,贴片式TF卡,贴片式SD卡
二、贴片 SD 卡介绍
深圳雷龙提供的 CS 创世 SD NAND 属于 LGA-8 封装,标准 SDIO 接口,兼容SPI/SD/eMMC接口,兼容各大MCU平台,可替代普通TF卡/SD卡,尺寸6x8mm毫米,内置SLC晶圆擦写寿命10万次,通过1万次随机掉电测试耐高低温,支持工业级温度-40°~+85°,机贴手帖都非常方便,速度级别Class10(读取速度23.5MB/S写入速度12.3MB/S)标准的SD2.0协议普通的SD卡可直接驱动。
贴片 SD 卡的使用很简单,管脚的连接方式和普通拔插的 SD 卡一致,所以我们设计硬件时按照普通 SD 的接线方式设计就行,以小熊派开发板为例子,单线 SDIO 硬件接线如下:
SD NAND,贴片式TF卡,贴片式SD卡
我使用小熊派开发板来挂载 FATFS 到雷龙这块 SD 卡上
三、配置 CubeMX 底层接口
首先使用 CubeMX 配置底层 SD 卡接口,选择单线模式,分频设置高一点,其他参数保持默认
SD NAND,贴片式TF卡,贴片式SD卡
配置完 SD 卡后开启 FATFS 的文件系统,选择挂载到 SD 卡,文件名选择 US ,buff 放到 STACK 上(注意调大栈空间)
SD NAND,贴片式TF卡,贴片式SD卡
配置完成后生成代码,cubemx 主要是以下两个初始化函数:
SD NAND,贴片式TF卡,贴片式SD卡
四、编写命令行测试代码
使用我之前移植的命令行框架,编写测试函数
void mount(char argc, char *argv)
{
if (argc > 1)
{
if (!strcmp("init", &argv[argv[1]]))
{
FRESULT ret = FR_INT_ERR;
ret = f_mount(&SDFatFS, SDPath, 1);
if (ret != FR_OK) {
shell_printf("mount init failed! %d\r\n", ret);
} else {
shell_printf("mount init succ!\r\n");
}
} else if (!strcmp("deinit", &argv[argv[1]])) {
FRESULT ret = FR_INT_ERR;
ret = f_mount(NULL, "", 1);
if (ret != FR_OK) {
shell_printf("mount deinit failed!\r\n");
} else {
shell_printf("mount deinit succ!\r\n");
}
}
}
else
{
shell_printf("mount need more arguments!\r\n");
}
};
void open(char argc, char *argv)
{
if (argc > 1)
{
FRESULT ret = FR_INT_ERR;
ret = f_open(&SDFile, &argv[argv[1]], FA_READ | FA_WRITE | FA_CREATE_NEW);
if (ret != FR_OK) {
shell_printf("open %s failed! code: %d \r\n ", &argv[argv[1]], ret);
} else {
shell_printf("open %s succ!\r\n", &argv[argv[1]]);
}
}
else
{
shell_printf("mount need more arguments!\r\n");
}
};
void close(char argc, char *argv)
{
if (argc > 1)
{
FRESULT ret = FR_INT_ERR;
ret = f_close(&SDFile);
if (ret != FR_OK) {
shell_printf("close %s failed!\r\n", &argv[argv[1]]);
} else {
shell_printf("close %s succ!\r\n", &argv[argv[1]]);
}
}
else
{
shell_printf("mount need more arguments!\r\n");
}
};
void write(char argc, char *argv)
{
if (argc > 1)
{
FRESULT ret = FR_INT_ERR;
uint32_t write_num = 0;
ret = f_write(&SDFile, &argv[argv[1]], strlen(&argv[argv[1]]), &write_num);
if (ret != FR_OK) {
shell_printf("write file failed!\r\n");
} else {
shell_printf("write file succ!\r\n");
}
}
else
{
shell_printf("mount need more arguments!\r\n");
}
};
void read(char argc, char *argv)
{
if (argc > 1)
{
FRESULT ret = FR_INT_ERR;
uint32_t read_num = 0;
uint8_t read_buff[100];
ret = f_read(&SDFile, read_buff, 50, &read_num);
if (ret != FR_OK) {
shell_printf("read file failed! %d\r\n", ret);
} else {
shell_printf("read file succ!\r\n");
shell_printf("read dat: %s, read num %d\r\n", read_buff, read_num);
}
}
else
{
shell_printf("mount need more arguments!\r\n");
}
};
将测试函数挂到命令行中:
const static_cmd_st static_cmd[] = {
{"ls", shell_ls_cmd},
{"mount", mount},
{"open", open},
{"close", close},
{"read", read},
{"write", write},
{"\0", NULL, NULL},
};
下载代码,在命令行测试挂载以及读写函数:
SD NAND,贴片式TF卡,贴片式SD卡
读的数据有些乱码,用读卡器读出来看看:
SD NAND,贴片式TF卡,贴片式SD卡
可以看到成功写入,SD 卡挂载 FATFS 成功,命令行操作文件系统功能正常
————————————————
【本文转载自CSDN,作者:Top嵌入式
深圳市雷龙发展专注存储行业13年,专业提供小容量存储解决方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NAND
    +关注

    关注

    16

    文章

    1546

    浏览量

    134801
  • FlaSh
    +关注

    关注

    10

    文章

    1551

    浏览量

    146689
  • SD卡
    +关注

    关注

    2

    文章

    530

    浏览量

    63022
  • TF卡
    +关注

    关注

    2

    文章

    60

    浏览量

    11920
收藏 人收藏

    评论

    相关推荐

    STM32F412使用SD,SDIO,FATFS系统SD挂载文件系统失败的原因?

    求助,STM32F412RET6 使用SD,使用SDIO接口,FATFS系统SD挂载
    发表于 04-11 07:15

    stm32 CubeMx 怎么实现SD/sd nand FATFS读写测试

    。)   CSNP1GCR01-AOW的优势:   不用写驱动程序自带坏块管理的NAND Flash贴片式TF),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装
    发表于 01-09 17:37

    基于RT-Thread快速上手SD NAND 虚拟文件系统

    默认开启FatFS.   支持多种类型的存储设备,如 SD Card、SPI FlashNand Flash 等。   在 RT-Thr
    发表于 12-15 17:29

    【MCU】SD NAND芯片之国产新选择

    : 大家好,请问有没有SD芯片,可以直接焊接到PCB板上的。 项目需要保存900M以上字节,nand flash 比较贵。或者有什么便宜的存储芯片提供。谢谢! 传统做法无非如下几种:
    发表于 11-23 17:25

    CS创世SD NAND的存储芯片应用方案

    NAND FLASH,嵌入式sd卡,工业级sd卡,单片机 nand flash
    的头像 发表于 11-15 18:09 248次阅读
    CS创世<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>的存储芯片应用方案

    DSP+FPGA+FATFS+SD

    项目背景,在DSP上挂Fatfs文件系统,而SD是挂在FPGA上的,DSP需要通过FPGA与SD
    发表于 11-14 09:30

    FAT32文件系统详细分析 (格式化SD nand/SD)

    析: 3.3.1 FAT1 3.3.2 FAT2 3.4 数据区分析: 总结 1. 前言 续上一篇文章 : FATFS文件系统详解:关于如SDS
    发表于 10-18 16:58

    如何移植FatFs文件系统SD卡内

    SD卡的FatFs文件管理系统
    的头像 发表于 09-19 09:11 899次阅读
    如何<b class='flag-5'>移植</b><b class='flag-5'>FatFs</b><b class='flag-5'>文件系统</b>到<b class='flag-5'>SD</b>卡内

    FATFS文件系统详解:关于SD卡、SD nand、spi nor flash等众多存储设备

    文章目录FATFS文件系统详解1.简介2.基础概念3.FAT文件系统组成介绍4.FAT文件系统分析4.1采用FAT格式格式化SDnand/sd
    的头像 发表于 09-07 17:58 984次阅读
    <b class='flag-5'>FATFS</b><b class='flag-5'>文件系统</b>详解:关于<b class='flag-5'>SD</b>卡、<b class='flag-5'>SD</b> <b class='flag-5'>nand</b>、spi nor <b class='flag-5'>flash</b>等众多存储设备

    FATFS文件系统详解:关于如SDSD nand、spi nor flash等众多存储设备

    文章目录 FATFS文件系统详解 简介 基础概念 FAT文件系统组成介绍 FAT文件系统分析 4.1 采用FAT格式格式化SD
    发表于 08-29 17:45

    SD NAND FLASH : 什么是pSLC?

    景 CS创世推出的2GB pSLC SD Nand,尺寸为6.2*8mm,使用标准SD2.0协议,可以无需修改软件直接替换SD和TF
    发表于 08-11 10:48

    贴片SD Card介绍】贴片式tf/SD NAND/SD2.0协议

    封装,标准SDIO接口,兼容SPI/SD接口。 标准的SD 2.0协议可以直接移植标准驱动代码,支持TF启动的SOC都可以用SD
    发表于 07-28 16:23

    STM32+SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

    这篇文章就手把手教大家,在STM32上完成FATFS文件系统移植;主控芯片采用STM32F103ZET6, 存储芯片我这里采用(雷龙) CS创世 SD
    的头像 发表于 07-17 17:24 4581次阅读
    STM32+<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>(<b class='flag-5'>贴片</b><b class='flag-5'>SD</b>卡)完成<b class='flag-5'>FATFS</b><b class='flag-5'>文件系统</b><b class='flag-5'>移植</b>与测试

    STM32CubeMx入门教程(10):Fatfs文件系统的应用

    导语"fatfs是一个小型的文件系统,在小型的嵌入式系统中使用非常的广泛,STM32CubeMx自带该文件系统,我们通过简单的配置就能够使用,将前面的
    发表于 07-12 11:39 2631次阅读
    STM32CubeMx入门教程(10):<b class='flag-5'>Fatfs</b><b class='flag-5'>文件系统</b>的应用

    stm32 CubeMx 实现SD/sd nand FATFS读写测试

    没什么区别。 关于 SD/SDnand 的驱动,有了CubeMx之后其实基本上都自动生成了对应的驱动了,基本上把驱动配置一下之后,自己写一些应用就可以完成基本的读写了,同时关于FATFS
    发表于 06-02 17:01