SD Nand 与 SD卡 SDIO模式应用流程

news2025/1/8 5:57:26

SD Nand/SD卡 SDIO模式应用流程

文章目录

    • SD Nand/SD卡 SDIO模式应用流程
    • 1. 前言
      • 1.1 参考文档
      • 1.2 概述
    • 2. Response响应类型及格式
    • 3. 各步骤流程
      • 3.1 卡识别流程
      • 3.2 通讯速率及总线宽度修改流程
      • 3.3 擦除流程
      • 3.4 单块读流程
      • 3.5 单块写流程
      • 3.6 多块读流程
      • 3.7 多块写流程
    • 4. 结束语

SD Nand 与 SD卡操作上没有太大的区别,因此均可通用

1. 前言

1.1 参考文档

关于SD协议,推荐参考文档,建议全文阅读:

  • 《SD 2.0协议 翻译版本》
  • SD V2.0协议 SD Specifications Part 1 Physical Layer Simplified

1.2 概述

  1. 本文主要梳理 SD nand / SD卡 以下流程:

    • 上电识别
    • 通讯速率 / 总线宽度修改
    • 块擦除
    • 单块读写
    • 多块读写
  2. 本文重点在于梳理以上关键操作的基础流程,不过多叙述数据结构、软件框架设计逻辑。

  3. 本文采用的SD卡/SD nand为 2.0 版本。

  4. 本文以stm32 demo为参考,但流程分析与控制器无关,因此可忽略。

  5. 本博文已流程图叙述为主,建议结合流程图以及相关代码进行阅读,推荐 ST 官方demo或野火SDIO驱动demo。

2. Response响应类型及格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 各步骤流程

以下流程主要以流程图叙述为主,建议结合代码以及SD2.0协议共同阅读学习

3.1 卡识别流程

在这里插入图片描述


3.2 通讯速率及总线宽度修改流程

在这里插入图片描述


3.3 擦除流程

在这里插入图片描述


3.4 单块读流程

在这里插入图片描述


3.5 单块写流程

在这里插入图片描述


3.6 多块读流程

在这里插入图片描述


3.7 多块写流程

在这里插入图片描述

4. 结束语

以上便是关于SD卡/SD nand的基本操作的所有流程。

关于SD卡/SD nand的操作,关键还是在于什么时候改发送什么命令,同时在实际使用过程中需要更多的是注意各种类型的命令的参数、返回值以及数据线是否有数据传输,关于这些细节大家可以在SD V2.0的协议中查看到具体的详细说明。

创作不易,转载请注明出处,点赞收藏+关注,找我不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java初识泛型 | 如何通过泛型类/泛型方法实现求数组元素最大值?

目录 一、引言 二、编程分析 1、泛型类实现 思路 代码 2、泛型方法实现 思路 代码 三、拓展:数组排序(以冒泡排序为例) 1、int类型 原代码 2、泛型类 3、泛型方法 一、引言 给定一个整型数组,求数组中所有元素的最大…

JVM知识体系学习三:class文件初始化过程、硬件层数据一致性(硬件层)、缓存行、指令乱序执行问题、如何保证不乱序(volatile等)

文章目录前言一、class文件初始化过程1、概述2、初始化过程-案例1a、代码T001_ClassLoadingProcedure 类加载过程b、解析3、初始化过程-案例2a、代码b、解析二、单例模式-双重检查三、硬件层数据一致性1、硬件层的并发优化基础知识b、Intel 的缓存一致性协议:MESI四…

Vivado综合设置之-keep_equivalent_registers

-keep_equivalent_registers即保留等效寄存器,所谓等效寄存器是指共享输入端口(输入时钟端口clk和输入数据端口rst)的寄存器。 勾选它时,意味着Vivado不会对等效寄存器进行优化; 不勾选它时(默认情况&…

eclipse安装UML插件

安装AmaterasUML AmaterasUML 是一个用于 Eclipse 的轻量级 UML 和 ER 图编辑器。 将AmaterasUML的3个jar包拷到Eclpise的plugins文件下: 重启eclipse 在新建菜单中可以发现已经出现了UML文件选项 安装GEF插件(Eclipse2018-12 以后无需安装&#xf…

②电子产品拆解分析-电动牙刷

②电子产品拆解分析-电动牙刷一、功能介绍二、电路分析以及器件作用1、振动电机开关控制电路2、锂电池供电与充电电路三、本产品的优缺点1、优点:2、缺点:一、功能介绍 ①5档工作模式;②2分钟倒计时停止工作;③工作续航一个星期以…

【MySQL】详解索引操作

索引什么是索引?索引的优势和劣势索引类型按数据结构分类按物理存储分类按字段特性分类主键索引唯一索引普通索引全文索引前缀索引按字段个数分类索引操作创建索引创建主键索引唯一索引的创建普通索引的创建全文索引的创建explain工具查询索引删除索引索引最好设置为…

SQL 注入学习路线

学习路线(大致) HTML > SQL > Python > SQL 注入(使用 sqli-labs 靶场来学习 SQL 注入) HTML 视频 【前端开发入门教程,web前端零基础html5 css3前端项目视频教程】 要求 使用该视频进行 HTML 基础部分…

Python之字符串的特点

1.布尔值 Python2中没有布尔值,直接用数字0表示Flase,用数字1表示True。Python3中,把True和False定义成了关键字,但他们的本质还是1和0,甚至可以和数字相加。 >>> a True >>> b 3 >>> …

[多图,秒懂]如何训练一个“万亿大模型”?

1. 背景近几年,随着“大模型”概念的提出,深度学习模型越来越大,如何训练这些大模型成为一个亟待解决的工程问题。最初的视觉模型只有几百兆的参数量,而现在的语言模型中,动则百亿,千亿的参数量&#xff0c…

[golang工作日记] for range 踩坑

1、for range指针赋值 Ops的数据保存在两个表中,一个是ops_tab,另一个是staff_tab,其中ops_tab的staff_id是staff_tab的外键,两个表都有staff_id字段。 type OpsDetail struct {OpsId stringStaffId stringOps *model.Ops…

Node.js安装配置

目录1. 下载node2. 安装3. 检查是否安装成功4. 配置缓存路径5. 实现一个demo1. 下载node 官方地址https://nodejs.org/en/下载长期支持版本 2. 安装 一路next node一起安装npm 这个地方不要勾选 安装成功 3. 检查是否安装成功 cmd运行下面命令 # 查看node的版本 node -v # …

【博客571】“时序敏感应用“ 如何prometheus自定义上报时间戳

“时序敏感应用” 如何prometheus自定义上报时间戳 1、场景 在物理网络监控中,对于流量趋势是极其敏感的,物理网络监控流量的点通常是秒级别甚至毫秒级别,此时这些时许点通过各种上报上传到监控系统中,由于网络波动,可…

Kubernetes v1.24.2高可用部署

sskubeasz 1、Kubeasy简介 kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。 kubeasz 从每…

【lc刷题 day12】堆/栈/队列

BM42 用两个栈实现队列 easy import java.util.Stack;public class Solution {Stack<Integer> stack1 new Stack<Integer>();Stack<Integer> stack2 new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if(st…

随便聊聊浪潮开务数据库

今天这个话题挺随意&#xff0c;我们来聊聊浪潮开务数据库&#xff0c;原因主要是我的微信朋友圈被这个数据库刷屏了。当然我对这款号称多模数据库的非开源数据库也很感兴趣&#xff0c;也有很多疑问&#xff0c;希望各位专家能帮忙答疑解惑&#xff0c;揭开这款即将发布的 Kai…

机器学习--多层感知机、卷积神经网络、循环神经网络

目录 一、多层感知机 二、卷积神经网络 三、循环神经网络 总结 一、多层感知机 手工提取特征&#xff08;用人的知识进行&#xff09; --> 神经网络来提取特征。 神经网络&#xff08;可能更懂机器学习&#xff09;来提取 可能对后面的线性或softmax回归可能会更好一…

【UE4 第一人称射击游戏】23-添加子弹伤害

上一篇&#xff1a;https://blog.csdn.net/ChaoChao66666/article/details/128589063?spm1001.2014.3001.5501本篇效果&#xff1a;步骤&#xff1a;创建一个蓝图类&#xff08;父类为Character&#xff09;&#xff0c;命名为“SimpleAI”双击打开“SimpleAI”&#xff0c;点…

非对称加密实战(一):JDK生成keystore获取公钥私钥及代码验证【附源码】

目录使用说明非对称加密生成keystore文件公钥私钥互相解密获取fd-alias.keystore中的公钥私钥使用生成公钥私钥进行解密源码地址使用说明 非对称加密 非对称加密算法主要有&#xff1a;RSA、Elgamal、背包算法、Rabin、D-H、ECC&#xff08;椭圆曲线加密算法&#xff09;。下…

TensorRT学习笔记--基于FCN-ResNet101推理引擎实现语义分割

目录 前言 1--Pytorch模型转换为Onnx模型 2--Onnx模型可视化及测试 2-1--可视化Onnx模型 2-2--测试Onnx模型 3--Onnx模型转换为Tensor RT推理模型 4--基于Tensor RT使用推理引擎实现语义分割 前言 基于Tensor RT的模型转换流程&#xff1a;Pytorch → Onnx → Tensor RT…

通用vue组件化首页

一、首先先建立文件main.vue,构建主体 1.选择合适的模板element-plus,直接复制 2.编写相应的样式 <template><div class"main"><el-container class"main-content"><el-aside> aside </el-aside><el-container class&q…