sdio 资料下载
http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html
sdio 控制器sd 卡 或者 mmc 卡 或者 tf卡 sdio卡sd卡是 sd 存储卡mmc卡 也是存储卡sdio卡 功能就多了,可能是 wifi卡,gps卡等
SD插槽不仅能插入内存卡。
SDIO卡是一种接口(应该是是一种物理标准和电气标准和协议标准),(联通了sdio卡槽,和卡片(必须能插入卡槽))即由使用标准SD卡插槽来扩展设备,让设备拥有新的功能。新功能举例:GPS 相机 Wi-Fi 调频广播 以太网 条形码读卡器 蓝牙;目前常见的 SDIO 外围(SDIO 卡)有· Wi-Fi card(无线网络卡) · CMOS sensor card(照相模块) · GPS card · GSM/GPRS modem card · Bluetooth card sdio 的 物理接口将与SD memory card同样的终端·形状的卡槽利用于扩张卡的规格。把对应SDIO卡槽(插口)称为SDIO卡槽,扩张卡称为SDIO卡。
sdio卡与sd卡的区别https://wenku.baidu.com/view/8ee1076ef111f18583d05ab4.htmlhttps://www.cnblogs.com/foolish-fish/p/4064316.htmlsd存储卡 支持的标准协议版本0-2Gbyte sdsc/sd2-32Gbyte sdhc // cmd 16 (设置块大小指令)对 sdhc 无效,对 sdxc 也无效32G-2Tbyte sdxc // 因为cmd17 规定读取数据块的首地址(32位),一块固定位512字节,所以,最多可以读到 2^32*512字节,也就是 2TB
SD Specifications Part 1 Physical Layer Simplified Specification
Secure Digital I/O and Memory Card Interface (SDIO and SDIO_AKE) – User Guide

具体接口

  • 内部接口
总线时钟:驱动总线接口
sdio 控制器(适配器时钟)驱动适配器
中断和dma请求中断请求并不是从总线上来,而是从dma来
  • 外部接口(线序)
clk
cmd
data0(1bit) 或 data[0-3](4bit) 或 data[0-7](8bit)
  • sdio控制器与sd卡交互方式
命令与回应
命令与回应信息都走在 cmd线上数据 走在 data 线上, 穿插在 命令与回应中
  • sd卡的初始化

参考 https://www.bilibili.com/video/av56936776/?p=72
参考 SD Specifications Part 1 Physical Layer Simplified Specification 4.2 节可以 从 sd 的初始化区分出
mmc卡
sd卡 v1.x
sdsc v2.x // 标准容量的 2.x 版本的sd卡
sdhc v2.x // 高容量的 2.x 版本的sd卡
  • sd 卡 寄存器

操作命令序列

  • 初始化
// 开始最大为 400hz
cmd0 // 复位所有的卡到idle状态。
cmd8 // 发送SD卡接口条件,包含主机支持的电压信息,并询问卡是否支持。
cmd55 // 用来区分 sd 卡(有响应) 和 mmc卡(无响应)
acmd41(cmd55 + cmd41) // 一直发直到sd卡上电为止(31位为1)
cmd2 // 取得cid , 长响应
cmd3 // sd卡,取得相对地址rca // mmc卡,设置相对地址rca
---
cmd9     // 通知卡发送csd信息
cmd7    // 参数为rca,唯一标识一张卡,用来进入 tansfer模式
cmd16   // 设置 读写块size
acmd51 // 用来判断是否支持宽总线
acmd6 // 设置位宽
---- // 频率改变为高频率 25Mhz
  • 单块读写硬件时序
// 如果当前为 standby mode,需要cmd7 进入 tansfer mode
一条命令与回应 与  另一条 有 32个时钟周期间隔,命令与响应之间有11个时钟周期
一个命令 48个时钟周期,一个回应(48字节回应)48个时钟周期------------------------------写从16 a13(等待READY_FOR_DATA == 1) 24 结束(单块写序列) 到 d0线 拉低 有 有42 个时钟周期间隔,然后从d0线拉低的第二个上升沿开始发送第一个数据。发送完成之后,需要用cmd13查询 crad status ,等待 到 READY_FOR_DATA.才算完成。当然不等也行,但是会影响下一次写单块。------------------------------读从16 17 结束(单块读序列),大概 212363.875个周期后开始d0拉低,然后从d0线拉低的第二个上升沿开始采样第一个数据。512 个数据 实际接收用了 4283.625 个 时钟周期,是对的,计算上应该是 4,096‬(512*8)个周期(一个bit一个时钟周期)
  • 多块读写硬件时序
// 如果当前为 standby mode,需要cmd7 进入 tansfer mode
512byte/block * 3 block  写用了15012.875 个时钟周期(中间有988个空闲周期),实际上应该用 12,288‬ 个时钟周期读 用了 12,895.75‬ 个周期,很符合。
// 正常,因为 波特率不稳定,有时候 会跳到22mhz/45nm, 而 频率是按照 25mhz/40nm 算的------------------------------写16 a23(预擦除数据块) 25 (多块写序列开始),多快写以命令12结束,然后发送cmd13,等待写入过程完成.(status[11] 为1,表示写入完成)------------------------------读从16 18 结束(多块读序列),大概 39,796.375个周期(和单块读差异很大)后开始d0拉低,然后从d0线拉低的第二个上升沿开始采样第一个数据。 多快读以命令12结束.命令13 是怎么回事? 为什么会在写之后会有大量的 cmd13??读取卡状态,因为数据传输在线上完结之后,并不是 实际写入了.
cmd13 的参数是 rca,用来选中sd卡
a23 的参数 是 擦除的数据块的个数,可以提高写入性能
55 命令的参数是rcacard status
//  正在写入
111000000000
//  data线不再繁忙,被sd卡释放
111100000000
//  READY_FOR_DATA
100100000000

-1bit与4bit

4bit需要设置 SDIO 控制器的 CLK 寄存器 为 4bit需要发送acmd6 命令,参数为2
4bit 线传输 1个字节.采样第一个上升沿,d3:bit7,d2:bit6,d1:bit5,d0:bit4采样第二个上升沿,d3:bit3,d2:bit2,d1:bit1,d0:bit0
  • 寄存器与命令

sdio (一) 硬件相关推荐

  1. linux内核静态添加sdio设备,Linux下sdio设备扫描过程

    前言 本文基于Linux version 3.10.52版本代码分析sdio设备的扫描过程,同时选择sdio wifi设备作为分析对象,在分析过程中,附带上sdio的协议内容,帮助初学人员学习sdio ...

  2. 驱动bcm43430 sdio无线网卡 亲测ubuntu18.04可行

    最近手痒痒又想折腾我那破板子,无奈我板子是中柏Ezpad 5SE,国产板子,个别硬件如无线,声音,触屏无法驱动,刚好今天发现个帖子,驱动了无线,然后我就试了试,然后就成功了.. 原文地址在这里 这个驱 ...

  3. SDIO_WiFi驱动学习之SDIO架构介绍及源码分析

    一.引言 因为WiFi驱动比较复杂,所以WiFi驱动的博客将多分几篇来写. 本篇博客主要介绍Linux下的SDIO架构及源码分析. 本文部分内容摘抄自网络,若有侵权,请联系删除. 二.SDIO WiF ...

  4. STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

    一.前言 在STM32项目开发中,经常会用到存储芯片存储数据. 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复:在存储芯片里也会存放很多资源文件.比如,开机音乐,界面上的菜单 ...

  5. 基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试(中篇)

    3.2 SPI硬件时序方式 上面的3.1小节是采用SPI模拟时序驱动SD NAND,STM32本身集成有SPI硬件模块,可以直接利用STM32硬件SPI接口读写. 下面贴出底层的适配代码. 上面贴出的 ...

  6. 国产芯片软硬件替代STM32F103C8T6、STM32F103RCT6/RBT6

    功能: ■ 内核:32位的Core − 最高216MHz工作频率,可达 2.54DMips/MHz(CoreMark1.0) − 单周期乘法和硬件除法 ■ 存储器 − 128K/256K字节的闪存程序 ...

  7. broadcm_40181 wifi 驱动分析

    1.先注册 dhd_mudule_init                dhd_linux.c   dhd_bus_register               dhd_sdio.c         ...

  8. SD nand 与 SD卡的SPI模式驱动

    文章目录 SD nand 与 SD卡的SPI模式驱动 1. 概述 2. SPI接口模式与SD接口模式区别 2.1 接口模式区别 2.2 硬件引脚 2.3 注意事项 3. SD接口协议 3.1 命令 3 ...

  9. SD nand与SD卡 SPI模式驱动

    SD nand 与 SD卡的SPI模式驱动 文章目录 SD nand 与 SD卡的SPI模式驱动 1. 概述 2. SPI接口模式与SD接口模式区别 2.1 接口模式区别 2.2 硬件引脚 2.3 注 ...

最新文章

  1. ROS image_transport使用笔记
  2. kafka数据丢失的场景
  3. 腾讯面试:打家劫舍 III
  4. GWT interface的使用例子
  5. tf.where 用法
  6. 商店购物java程序_java操纵数据库-商店购物管理系统
  7. 聊天ListView使用ViewHolder
  8. java知识点3(null、引用相关知识(自己理解))
  9. 关于CSplitterWnd类窗口静态分割总结
  10. 光标是停在文本框文字的最后
  11. 在mysql支持关系模型中_MySQL支持关系模型中、和三种不同的完整性约束
  12. 火狐浏览器59.0.1英文版如何改为中文版界面
  13. OpenStack 已死?
  14. 『C#基础』XML文件的读与写
  15. 【论文写作】毕业论文写作的基本要求讲解
  16. Java开发大厂面试资料,让你的面试不再困难!
  17. Java从入门到精通 第23章 文件IO操作
  18. Eviews操作笔记自用(横截面数据)
  19. 在 Flutter 中创建一个动画屏幕
  20. 使用PPT保存300dpi或者指定dpi的高质量图片

热门文章

  1. 视觉SLAM 第7讲 本质矩阵 基础矩阵 单应矩阵 知识点/证明/理解/秩/自由度
  2. image unity 原始尺寸_unity获取Texture2D的原始大小
  3. 【CF771A】Bear and Friendship Condition(并查集加深理解)
  4. SMT车间散料处理流程
  5. 商贸批发平台如何分账?
  6. SDUT实验七编程题7-4 计算圆柱体的体积
  7. 魔众客服系统 v1.3.0 后台界面升级,事件驱动增强
  8. 报错:show databases;FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: ja
  9. 百度路书 设置autoView为true 无法准确自动视野调整
  10. 【HMS Core】Health Kit关于获取历史数据问题