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

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

3天内不再提示

sd卡的读写验证流程介绍

冬至子 来源:悠悠海 作者:悠悠海 2023-08-08 14:34 次阅读

原理图
下图是sdio的接线图
dat0-4 cmd 接了4.7k的上拉电阻。六根与mcu相连的线中均接了一个22欧的电阻,用于限制电流

1.jpg

下图是mcu的接线

1.jpg

dat0接引脚P2.0,dat1接P2.1,dat2接P2.2,dat3接P2.3,cmd接P2.4,clk接P2.5,

1.jpg

板子的sd卡座是弹簧式的,卡片压下去 ,弹片与地相接,mcu_sd_cd低电平,mcu可检测到当前有卡片插入。

1.jpg

英飞凌提供了两种驱动依赖:
PSoC 6 Peripheral Driver Library(PDL),Hardware Abstraction Layer (HAL)。

pdl接口大概对sdio的支持度不很好,不太完善,当前测试按照以下流程初始化会失败,
pdl接口位于HAl的上层,属于对hal接口的再次封装。

1.jpg

群里有位大佬使用了hal接口,初始化看起来问题不大,初始化效果如下,可以得到卡片的容量

1.jpg

rtt驱动结构
之前写linux驱动,学习rtt的驱动时,多少会带入linux的思维。
rtt的驱动要比linux的简单许多,大概框架相似。
整个系统结构分为三层,应用层,也就是我们的业务层。
第二层时rtt提供的中间层,虚拟文件驱动层。
第三层是针对具体硬件的硬件驱动层。
业务层直接调用虚拟驱动层,虚拟驱动层通过回调函数方式操纵硬件驱动代码了。

代码的文件结构如下图

1.jpg

1.jpg

application是存放应用层代码的文件夹。
rt-thread目录存放虚拟文件系统接口
libraries存放硬件驱动代码和厂商的bsp等支持代码。
调用官方的pdl接口导致硬件崩溃,对英飞凌的mcu了解不深,暂不知如何调查,借鉴群里大佬Vandoul的sdhc驱动代码,测试了一下接口。
接口dfs_filesystem_get_partition 有一个小bug,sd卡是64gb容量的卡片,格式化为ntfs格式,读出的分区表解析到的容量错误,如下图所示。

1.jpg

代码参考了vandoul大佬的代码,删除了一些异常判断等代码。
提供两个接口 sdrd 和sdwt,仅是直接测试sd卡存储空间的读写,不涉及到文件系统的挂载。
sdrd 带一个参数,读取地址
sdwt带两个参数,第一个是地址,第一个是数值
下图是命令使用效果。

1.jpg

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

    关注

    5

    文章

    346

    浏览量

    30260
  • 存储器
    +关注

    关注

    38

    文章

    7151

    浏览量

    162016
  • SD卡
    +关注

    关注

    2

    文章

    530

    浏览量

    63025
  • MCU控制
    +关注

    关注

    0

    文章

    45

    浏览量

    6651
  • RTThread
    +关注

    关注

    7

    文章

    129

    浏览量

    40523
收藏 人收藏

    评论

    相关推荐

    8G SD和2G以下SD读写方式一样吗?

    8G 的SD读写方式不对?我看很多资料读写SD都是些2G以下,难道8GSD
    发表于 03-20 18:42

    SD读写规范

    SD读写规范
    发表于 08-04 12:47

    SD读写模块

    本帖最后由 eehome 于 2013-1-5 10:07 编辑 SD读写模块
    发表于 08-13 14:39

    SD读写规范

    SD读写规范
    发表于 08-18 22:09

    求助SD可以读写仿真么?

    各位大神,SD可以读写仿真么?我只能找到一MMC的器件找不到SD的器件
    发表于 09-14 16:51

    读写SD问题

    读写SD的时候获取SD总容量和文件大小方面都是错的,但是如果是小文件比如20KB的就可以正确获取文件大小并能准确读出文件里的数据。文件
    发表于 09-17 21:52

    SD读写教程

    求教,谁有SD读写教程,发过来一份,谢谢。邮箱:pancanlonng@aliyun.com
    发表于 06-12 14:50

    利用msp430对sd读写问题

    求大神,给一段对SD读写的例程,还有就是对SD读写的时候地址怎么选择?从SD
    发表于 08-15 15:07

    sd读写程序

    哪位大神可以写基于NIOS 2的sd驱动单元的程序,实现读写
    发表于 05-14 13:01

    【NXP LPC54110试用体验】+SD读写

    SD读写在MCU的应用上很常见,主要应用来保存用户数据。这里我简单说一下对SD文件的读写
    发表于 08-29 08:18

    SPI读写SD问题如何解决

    最近在调试STM32读写SD,对SD初始化成功,能读取标识码寄存器的内容,但读扇区0的数据全为0,其他扇区也是。在发送CMD17命令成功
    发表于 06-08 03:41

    DMA及中断如何对SD读写

    原发及代码下载 http://sites.google.com/site/btvnlue/stm32/dmasd本文对STM32的SPI3读写SD进行讨论,读写使用直接模式,DMA模
    发表于 06-18 04:35

    如何测试SD读写速度

    前言SD读写速度,受限制于SD本身固有的性能之外,还跟读卡器,主CPU性能等有一定的关系。所以,同一张
    发表于 11-05 07:24

    如何对基于Numaker-IoT-M487开发板的SD进行功能验证

    简介本文主要介绍基于Numaker-IoT-M487开发板的SD功能验证,由于为初次使用RT-Thread系统,摸索了一下使用,感觉还是挺容易上手的系统,鉴于理解有限,后文中如有理解
    发表于 07-05 15:41

    基于FPGA的SD的数据读写实现(SD NAND FLASH)

    文章目录1、存储芯片分类2、NOR Flash 与 NAND Flash的区别3、什么是SD?4、什么是SD NAND?5、SD NAND的控制时序6、FPGA实现
    发表于 12-16 17:18