全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

sd卡的读写验证流程介绍

时间:2023-08-08 14:34

人气:

作者:admin

标签: RT  上拉电阻  MCU控制  SD卡 

导读:dat0-4 cmd 接了4.7k的上拉电阻。六根与mcu相连的线中均接了一个22欧的电阻,用于限制电流。...

原理图
下图是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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信