SPI协议读写SD卡介绍

2023-10-27

前言

在前面的文章中,我们主要介绍了如何利用SDIO协议对SD卡进行读写操作的流程及注意事项。虽然SDIO协议读写SD卡的效率很高,但是,操作却比较麻烦,另外,还需要使用的芯片具有SDIO外设。这对于不具备SDIO外设的芯片而言,绝对是一个灾难。但值得庆幸的是,SD卡还支持利用SPI协议实现对SD卡的操作。比如,目前流行的DSP28335芯片便不具备SDIO外设。所以,如果想利用该DSP芯片扩展SD卡,就需要使用SPI协议。当然,该芯片是具备SPI外设的,即使没有,我们也可以通过软件进行模拟。然而在实际应用中,为了更进一步提高数据的传输效率,我们还可以使用McBSP外设,该外设的SPI模式同样可以实现SPI协议读写SD卡。
本文,我们主要介绍利用SPI协议读写SD卡的一些重要的知识。

SDIO协议与SPI协议的比较

SDIO协议与SPI协议相较而言,SDIO协议读写SD卡的速度更快,再加上其支持4线模式,即利用4条数据线,同时发送4Bits数据,数据的传输效率就更高了,但是由于使用的引脚较多,所以也导致了控制相对比较困难。
而SPI外设只具有两条数据线MISO和MOSI,分别用作数据的输入和输出,由于引脚较少,所以控制相对较容易。但是,数据的传输效率相对而言就比较低了。
但是,两中协议的共同之处在于:均是通过命令实现对SD卡的控制,仍然是结合状态机实现编程。

SD卡如何工作在SPI模式下

当SD卡上电之后,只有第一次发送的CMD0命令才可以选择SD卡工作在SPI模式下。这意味着,当SD卡处于SPI模式下时,仅能通过重新上下电,才能再次选择SD卡的通讯模式,即选择SDIO模式或者SPI模式,否则SD卡将一直处于SPI模式下。并且,SPI模式下的SD卡不支持 V2.0版本之后新增的命令。

卡识别模式与数据传输模式的切换

与SDIO协议一样,SPI模式下的SD卡同样具有两种工作模式—卡识别模式数据传输模式。状态机流程如下:
在这里插入图片描述

初始化SD卡

SPI模式下初始化SD卡的状态机如下:
在这里插入图片描述

主机读取SD卡中的数据

SPI模式下,仍然支持读取单块数据或者多块数据,时序图如下。

读取单块数据

在这里插入图片描述

读取多块数据

在这里插入图片描述

主机向SD卡写入数据

与读取数据一样,主机也可以选择向SD卡写入单块数据或者多块数据,时序图如下。

写入单块数据

在这里插入图片描述

写入多块数据

在这里插入图片描述

注意事项

1、工作在SPI模式下的SD卡,不再具备速度等级之分,将被当作class 0的速度等级进行处理;
2、SPI模式不支持SDIO模式下的一些命令;
3、SPI模式与SDIO模式下相同的命令,可能具有不同的作用。
4、SPI模式下的命令和响应的详细信息,请参考SD协议,有详细介绍。

总结

本文主要介绍了SD卡工作在SPI模式的一些重要知识点,但是同样不涉及程序实现部分。但是相信大家已经对如何实现控制SD卡有了一个大概的轮廓,相信实现起来也不是很难。由于本文能力有限,文章难免有不足或错误之处,还望各位读者可以及时指正,谢谢大家!

 

 

https://blog.csdn.net/IssacMi/article/details/102785961?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-9-102785961.nonecase&utm_term=spi%E8%AF%BB%E5%86%99sd

 

https://www.csdn.net/gather_22/Mtjacg3sNzk2OTQtYmxvZwO0O0OO0O0O.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SPI协议读写SD卡介绍 的相关文章

  • 芯片的SD/MMC控制器以及SD卡介绍

    1 MMC SD卡 eMMC介绍 1 1 三者关联 1 最早出现的是MMC卡 卡片式结构 按照MMC协议设计 相较于NandFlash芯片来说 MMC卡有2个优势 第一是卡片化 便于拆装 第二是统一了协议接口 兼容性好 2 后来出现SD卡
  • SPI协议读写SD卡介绍

    前言 在前面的文章中 我们主要介绍了如何利用SDIO协议对SD卡进行读写操作的流程及注意事项 虽然SDIO协议读写SD卡的效率很高 但是 操作却比较麻烦 另外 还需要使用的芯片具有SDIO外设 这对于不具备SDIO外设的芯片而言 绝对是一个
  • 基于SD卡的FatFs文件系统(FatFs移植到STM32)

    平台 STM32ZET6 核心板 ST LINK V2 SD卡 USB串口线 一 移植 工程介绍 主要文件在USER组中 bsp sdio sdcard c bsp sdio sdcard h和main c 另外FatFs是用来后面移植文件
  • FATFS文件系统详解

    FATFS文件系统详解 文章目录 FATFS文件系统详解 1 简介 2 基础概念 3 FAT文件系统组成介绍 4 FAT文件系统分析 4 1 采用FAT格式格式化SD nand sd卡 4 2 引导扇区分析 4 3 分区偏移及大小计算 4
  • FATFS 0.13 f_mount(&fs,““,1)挂载失败的原因

    这两天学着用了一下FATS文件系统 虽然工作中没用到 但是对个人的经验积累还是有用的 看了一下 代码并不多 但是精简啊 指针跳来跳去的一不小心就晕了 所以也遇到了不少问题啊 这里就讲一下我遇到的第一步就懵逼的问题 那就是 FRESULT f
  • STM32的简单的SD卡读写

    导读 SD卡一般支持两种读写模式 SPI和SDIO模式 SD卡的引脚排序如下图所示 SPI模式下有几个重要的操作命令 分别是 SD卡R1回应的格式如下SPI模式下的典型初始化过程如下 1 初始化硬件配置 SPI配置 IO配置等 SD卡一般支
  • S3C2440读写sd卡的一些总结

    整理硬盘的时候发现这个文档 以前写2440操作sd卡程序的时候总结的 1 我的2440 sdi对sd卡发送ACMD41时总是反馈crc fail 但是可以得到正确的response sd卡可以正常使用 2 sd卡可以没有mbr 在物理的 0
  • SD卡SPI模式 读写block

    声明 第一次写教程 如若有错误 请指出更正 看了很多网上的教程 还是觉得很多教程中 写多个块的时候有些问题 因此经过3天的奋斗 写出自己的教程 本教程中 没有挂载文件系统 单纯读写Block 会破坏分区和数据 下节再 装上文件系统Fatfs
  • SD卡/TF卡简记

    文章目录 MicroSD卡与SD卡关系与区别 对比NM卡 XQD卡 CFexpress卡 SD规格标识 FAQ 拍摄1080p或2k视频需要什么速度的sd卡 拍摄4k视频需要什么速度的sd卡 拍摄8k视频需要什么速度的sd卡 MicroSD
  • STM32 SPI方式读写SD卡

    前段时间在51上模拟SPI实现了对SD卡的读取 效果还算不错 最近将其移植到STM32上 不过使用硬件SPI和使用软件SPI还是有差别的 代码如下 void User SPIInit void GPIO InitTypeDef GPIO I
  • fatfs移植和使用(在SPI_FLASH上建立文件系统)

    文件系统对于嵌入式系统的重要性是不言而喻的 有了文件系统管理数据和外设变得方便许多 同时简化了应用的开发 今天我们来以在SPI FLASH上建立文件系统为例 看看FATFS文件系统怎么移植和使用 需要准备的材料有 1 FATFS文件系统源码
  • MMC、SD、TF、SDIO、SDMMC简介

    MMC 概念 MMC的全称是 MultiMediaCard 所以也通常被叫做 多媒体卡 是一种小巧大容量的快闪存储卡 特别应用于移动电话和数字影像及其他移动终端中 外形及接口定义 如上图所示 MMC存贮卡只有7pin 可以支持MMC和SPI
  • 发布一个在读写sd卡时,此时sd卡拔出造成死机的处理方法

    发布一个在读写sd卡时 此时sd卡拔出造成死机的处理方法 同时也在此记录一下 以备后用及有需要人们参考 stm32f4xx hal sd c 红色的代码是增加上去的 函数名称 static HAL SD ErrorTypedef SD Cm
  • STM32F407移植FATFS文件系统(版本 R0.09b)支持长文件名和中文名称

    FatFs文件系统 默认是不支持长文件名和中文名称的 要想支持长文件名和中文名称 需要打开ffconf h文件进行配置 一 支持长文件名 FatFs文件系统 默认是不支持长文件名的 要想支持长文件名 需要打开ffconf h文件进行配置 找
  • SD卡、TF卡读写速率测试

    请注意 可以在未经过博主同意下转载 但必须注明出处 谢谢 1 运行HDBENCH软件 点击确定 2 弹出如下图所示界面 配置选项并测试 选择待测TF卡 Removable可移动存储设备 图示所插入的TF卡是 I 盘 请根据实际情况选择 选择
  • SD卡 FATFS CSV 文件中的 逗号和换行

    RFC 4180 Common Format and MIME Type for Comma Separated Values CSV Files 要点有 1 CSV的换行符号要使用CRLF 即 回车符 换行符 的形式 2 文字可以使用双引
  • FATFS实现数据追加功能(原文不覆盖)

    在对FATFS的应用中我们经常需要把采集的数据存入的文件中 用作保存 也许我们的系统是一个长期的运行过程 但是我们的数据可能不是持续采集的 所以我们这样写代码 注册一个工作区域 f mount 0 fs 打开创建一个新文件 res f op
  • SD卡初始化以及命令详解

    SD卡是嵌入式设备中很常用的一种存储设备 体积小 容量大 通讯简单 电路简单所以受到很多设备厂商的欢迎 主要用来记录设备运行过程中的各种信息 以及程序的各种配置信息 很是方便 有这样几点是需要知道的 SD 卡是基于 flash 的存储卡 S
  • 关于如何修复烧写镜像文件失败的SD卡

    前言 使用某些软件 比如 win32 Disk Imager 向SD卡烧写镜像文件时 很有可能出现烧写失败的情况 通常如果烧写失败 系统会弹出请求格式化SD卡的提示框 此时不要点格式化 点了可能会造成不可挽救的结果 也可能不会 而是进行以下
  • 【正点原子探索者STM32F407开发板例程连载+教学】第30章 SPI通信实验

    第三十章 SPI 实验 mw shl code c true 1 硬件平台 正点原子探索者STM32F407开发板 2 软件平台 MDK5 1 3 固件库版本 V1 4 0 mw shl code 本章我们将向大家介绍STM32F4的SPI

随机推荐

  • 前端 JQuery

    jquery 理解 function 这是为了防止文档在完全加载 就绪 之前运行 jQuery 代码 换句话说 写在这里面的JQuery代码都是文档加载好之后的 就不会有获取一个还没有加载好的图片这种问题了 另一种写法 document r
  • 香港服务器微信js接口无法,微信jssdk分享接口不能正常使用

    调用的分享接口完全一样 只是在不同网页调用 但是有的可以有的不可以分享 不知道怎么回事 调用的代码如下 appId 认证的appid appsecret 认证的appsecret timestamp time jsapi ticket ma
  • 头文件

    头文件
  • flutter text 左对齐_Flutter 基础布局Widgets之Stack详解

    概述 Stack 组件是一种层叠式布局 即组件覆盖另一个组件 覆盖的顺序取决于在children中放置的顺序 使用场景比如在图片上加上一些文字描述 即将文本Widget覆盖在图片组件 详见下面的小例 构造函数 Stack Key key t
  • C# 连接Sql Server 数据库

    class DataBaseUtil static string dataSource server 数据库地址 database 数据库表名 uid 用户 pwd 密码 数据库连接字符串 public static SqlConnecti
  • 区块链 (数据结构)

    区块链是分布式数据存储 点对点传输 共识机制 加密算法等计算机技术的新型应用模式 区块链 Blockchain 是比特币的一个重要概念 它本质上是一个去中心化的数据库 同时作为比特币的底层技术 是一串使用密码学方法相关联产生的数据块 每一个
  • Anconda基本操作指令

    1 查看anconda版本基本信息 查看版本 conda v 默认进入base环境 conda config set auto activate base true 默认退出base环境 conda config set auto acti
  • 【基础知识】BSS段,数据段,代码段,堆栈段

    在了解BSS段他们之前 我们先来看一下他们在内存中的位置 BSS段 bss segmen BSS 是 Block Started by Symbol 的简称 通常是指用来存放程序中未初始化的全局变量的内存区域 属于静态内存分配 在可执行文件
  • swiper的使用,一次显示多个,竖着排列,多行多列

  • C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C 的时候 这几个输入函数弄的有点迷糊 这里做个小结 为了自己复习 也希望对后来者能有所帮助 如果有差错的地方还请各位多多指教 本文所有程序均通过VC 6 0运行 1 cin 2 cin get 3 cin getline 4 getli
  • 数据库连接池概念、原理、运行机制浅谈

    概述 数据库连接池是负责分配 管理和释放数据库连接 它允许应用程序重复使用一个现有的数据库连接 而不是再重新建立一个 那么其中的运行机制又是怎样的呢 今天主要介绍一下数据库连接池原理和常用的连接池 01 为什么要使用连接池 数据库连接是一种
  • NoPadding填充方式不会对明文块进行填充,就会出现“Input length not multiple of 8 bytes“

    DES ECB PKCS5Padding和DES ECB NoPadding的区别 DES是一种对称加密算法 它可以使用不同的模式和填充方式进行加密 在Java Cipher API中 提供了四种DES加密模式 ECB CBC CFB和OF
  • 微信小程序实现类3D轮播图

    在写微信小程序时 有写到实现3D轮播图的效果 可以直接使用微信小程序中自带的组件swiper来实现 效果图如下 1 swiper的相关属性 indicator dots 是否显示小圆点 也可以自己重新设置小圆点 circular 是否衔接滑
  • 网安入门须知:注释的危害居然这么大?——注释漏洞导致的信息泄露

    隔壁大娘收到了一条匿名短信 里面记录了大娘跟隔壁老王的开房记录 并勒索二百五十块巨款 大娘略加思索后 便提着刀冲到狗剩家门口 一刀砍在门口的卷帘门上 隔壁大娘 狗剩 你给我出来 注释导致的信息泄露 一 什么是信息泄露漏洞 二 信息泄露有什么
  • 百度刘超

    百度总监爆料刘超这几年在做什么 2016年百度用户体验部总监刘超创立百度UE讲堂的线上课 同年7月在IXDC大会上演讲引起热议和批评 2016年7月百度迫于压力免去刘超总监职位 从此刘超在媒体上消失 事情已经过了4年了 刘超这几年在做什么
  • NVIDIA安装驱动不成功的解决方式

    很多小朋友在重装或升级nvidia驱动时出现这样的错误 或是GeForce Experience安装不成功 如果排除了显示型号不对 系统没打补丁等原因 那么主要就是因为系统自动安装的驱动或是第三方安装的驱动赖在系统里 与你下载的新驱动产生冲
  • High-Resolution Image Synthesis with Latent Diffusion Models论文阅读+代码复现

    摘要 扩散模型在图像数据和其他数据上实现了最先进的合成结果 并且它的公式允许引导机制来控制图像生成的过程而无需重新训练 然而 这种模型直接在像素空间上操作 因此 功能强大的扩散模型通常需要花费大量的计算资源与推理时间 为了在有限的计算资源上
  • Elasticsearch6.4专题之杂记:遇到的异常与解决方案2

    11 lucene util BytesRefHash MaxBytesLengthExceededException bytes can be at most 32766 in length got 56965 解决方案 设置keywor
  • python界面怎么改颜色_Python界面怎么换颜色?求解!!!

    打开电脑 找到idle 并打开idle界面 打开之后默认经典的编码界面如下 白色背景 中文字体 字号也比较小 点击如图所示options选项 工具栏第五个按钮选择 这个按钮下方有一个configure idle选项 意思是配置idle 选中
  • SPI协议读写SD卡介绍

    前言 在前面的文章中 我们主要介绍了如何利用SDIO协议对SD卡进行读写操作的流程及注意事项 虽然SDIO协议读写SD卡的效率很高 但是 操作却比较麻烦 另外 还需要使用的芯片具有SDIO外设 这对于不具备SDIO外设的芯片而言 绝对是一个