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

    文章

    1748

    浏览量

    140469
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154738
  • SD卡
    +关注

    关注

    2

    文章

    583

    浏览量

    67846
  • TF卡
    +关注

    关注

    2

    文章

    89

    浏览量

    12918
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解锁SD NAND、TFSD的应用密码

    在科技飞速发展的今天,数据存储的需求渗透到生活与工作的每一个角落——从手腕上的智能手表,到专业摄影师的相机,再到工厂里的工业路由器,都离不开高效可靠的存储介质。SD NAND、TFSD
    的头像 发表于 11-24 11:04 250次阅读
    解锁<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、TF<b class='flag-5'>卡</b>、<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的应用密码

    解锁存储密码:SD NAND、TFSD的应用全景

    在数据洪流的时代,存储介质就如同数字世界的基石,支撑着各类设备的正常运转。SD NAND、TFSD,虽同属
    的头像 发表于 10-29 14:24 238次阅读

    SD NAND写保护问题的分析

    “安全移除”、长期使用产生坏块、空间已满等,系统为避免进一步数据损坏,可能将自动挂为“只读” 。 恶意程序篡改分区表、文件系统设置,甚至设置隐藏的只读/写保护属性,导致无法写入或格式化。 如 ​Windows​ 驱动不兼容、用
    的头像 发表于 10-21 10:28 286次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>写保护问题的分析

    如何使用 FatFs 显示 SD 中的 JPEG 文件

    使用 FatFs 显示 SD 中的 JPEG 文件
    发表于 09-04 06:20

    一文读懂 SD NAND,小白也能秒变存储技术大神

    SD NAND 是一种贴片式存储芯片,内部集成 NAND FlashSD 控制器,兼容
    的头像 发表于 08-19 14:40 1602次阅读
    一文读懂 <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>,小白也能秒变存储技术大神

    SD—雷龙 SD NAND

    一、SD介绍 1.基本介绍 本质:nand flash + 控制芯片 1.SD ,Secur
    的头像 发表于 07-21 17:59 3261次阅读
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>—雷龙 <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    【嵌入式开发】SD—雷龙 SD NAND

    Digital Ultra Capacity) 假如对SD的操作跟EEPROM或者NOR FLASH操作一样,读写数据并验证数据的正确性,不需要FAT文件系统
    发表于 07-21 17:56

    NAND FlashSD NAND的存储扇区架构差异

    NAND Flash 和 SDSD NAND)的存储扇区分配表都是用于管理存储设备中扇区的分
    的头像 发表于 03-13 15:20 1591次阅读
    <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b>与<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>的存储扇区架构差异

    Nand flashSDSD NAND)存储扇区分配表异同

    SD NAND)是基于 NAND Flash的存储设备,其存储扇区分配表建立在 SD
    发表于 03-13 10:45

    [上手体验]雷龙SD NAND:比TF更小更耐用

    和SPI FLASH以及 NAND FLASH,基本没听说过SD NAND。查阅了雷龙官方介绍),得知S
    发表于 03-08 14:28

    CS创世SD NAND贴片sd】的测试使用说明

    今天收到了来自深圳市雷龙发展有限公司寄来的存储,它是一款自带坏块管理的贴片NAND Flash,适用于嵌入式系统
    的头像 发表于 02-17 15:45 766次阅读
    CS创世<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'>卡</b>】的测试使用说明

    CS创世SD NAND贴片sd】的测试使用说明

      今天收到了来自深圳市雷龙发展有限公司寄来的存储,它是一款自带坏块管理的贴片NAND Flash,适用于嵌入式系统
    发表于 02-12 15:05

    雷龙SD NAND试用

    了解以便测试与使用。 芯片不用写驱动程序自带坏块管理的NAND Flash贴片式TF),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装,标准SDIO接口,兼容S
    发表于 01-19 13:26

    SD NAND、SPI NAND 和 Raw NAND 的定义与比较

    问题,再也不用为SD的接触稳定性操心! SD nandSD 、SPI Nor
    的头像 发表于 01-15 18:16 1430次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、SPI <b class='flag-5'>NAND</b> 和 Raw <b class='flag-5'>NAND</b> 的定义与比较

    SD NAND、SPI NAND 和 Raw NAND 的定义与比较

    问题,再也不用为SD的接触稳定性操心!   SD nandSD 、SPI Nor
    发表于 01-15 18:15