产品选型

单片机对sd卡的读写 SD卡管脚排列和总线是怎么读写的?

小编 2024-11-25 产品选型 23 0

SD卡管脚排列和总线是怎么读写的?

SD 卡的引脚定义

SD卡引脚功能详述:

引脚

编号

SD模式

SPI模式

名称

类型

描述

名称

类型

描述

1

CD/DAT3

IO或PP

卡检测/

数据线3

#CS

I

片选

2

CMD

PP

命令/

回应

DI

I

数据输入

3

VSS1

S

电源地

VSS

S

电源地

4

VDD

S

电源

VDD

S

电源

5

CLK

I

时钟

SCLK

I

时钟

6

VSS2

S

电源地

VSS2

S

电源地

7

DAT0

IO或PP

数据线0

DO

O或PP

数据输出

8

DAT1

IO或PP

数据线1

RSV

9

DAT2

IO或PP

数据线2

RSV

注:S:电源供给 I:输入 O:采用推拉驱动的输出

PP:采用推拉驱动的输入输出

SD卡支持两种总线方式:

SD方式与SPI方式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。然而,很多51单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。我用软件模拟出SPI总线时序读写SD卡。

其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。

而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。

SD卡SPI模式下与单片机的连接图:

SD卡工作电压范围是2.0-3.6V

SD卡的IO的逻辑电平是3.3V,上图只适合单片机的IO逻辑电平是3.3V的。

如果我们用的是5V的MCU我们就要进行电平转换。(下面的方法是比较保险的做法,也有人用电阻分压)

解决逻辑器件接口的电平兼容问题,原则主要有两条:

一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;

二为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。

考虑到SD卡在SPI协议的工作模式下,通讯都是单向的,于是在单片机向SD卡传输数据时采用晶体管加上拉电阻法的方案,而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。

这样硬件连接就完成了,注意SD卡的工作电压

四八十五课:SD卡实验 介绍

ESP32S3物联网快速入门:23.1SD卡实验-介绍。

大家好,这节课来学习SD卡实验。在迁怒式系统当中经常会需要存储一些图片或大量的数据,这些光SD32内部的flash是不够的,这个时候就需要用到一种存储介质SD卡,它是一种比较好的存储设备。

开发版已经自带了一个SD卡接口,直接插上SD卡就可以实现对应的功能。这节课主要是来介绍如何使用adonal ESP32来控制SD卡的读写。这节课主要介绍四点。

·首先来介绍一下实验的基本介绍,也就是SD卡的简单功能介绍。

·然后再介绍一下实验的硬件部分以及软件程序。

·最后是实验展示。

来看一下实验的简介。

·在嵌入式系统当中经常是需要存储大量的数据和图片的,可以使用SD卡作为大容量存储设备,它是一个非常好的选择。比如系统要存储一天采集的温湿度数据,ESP32自带的存储容量是很小的,无法存储大量的数据,此时可以使用外部SD卡来通过ESP32控制将采集的温湿度数据写入到SD卡文件当中。

·又比如使用ESP32来制作一个电子相册或者是SMP3,需要读取图片或音乐文件,依靠ESP32自身的内存是实现不了的,此时又可以通过外接SD卡。

·版本已经有一个SD卡卡座,可以使用SD卡插入就可以使用。在这个时间当中SD卡容量大小是不限制的。

来看一下图片就是SD卡,这里是一个32TB的内存卡。ESP32是如何和SD卡进行通信的?依靠的是SDI的接口,在adiomo当中已经集成了SDI,SDI和SD卡可以直接使用。SDI的全称是这串英文的首字母的缩写,意思是串型外围接口。

SDI是一种高速的全双工同步的通信总线,它在ESP32芯片当中只占据了四个管角,节约了芯片的管角,同时为PCB的布局节省了大量的空间。这种方式非常简单,已经在很多的芯片和设备当中都会有SDI的接口。

SDI接口一般使用四条通信线,事实上只需要三条线也可以进行SDI的通信,也就是单向传输的时候,其中三条线为SDI的总线miso和mosi以及salk。这三条线是SDI的接口,必须的三根线,一个是主机输入,一个是主机输出,还有一个是时钟信号线。

另外一条就是SDI的片选信号,片选信号可以使用任意的L口来对片选信号管角进行控制。

esp32有四个硬件,i1硬件的spi的通道,其中两个已经被内部可给使用了,另外两个可以供外部使用,允许更高输入传输,最高可达到八十兆赫兹,传输频率也可以配置成任意的引脚,相关的引脚只要符合输入输出的方向就可以了。通过制定引脚而非默认引脚会降低传输的速度,上线最大是四十兆赫兹。

也就是说在esp32当中有固定的一些硬件spi的接口,如果要指定任意的其他l口,也就普通l口来使用spi接口,它的传输速度会降低,最大是四十兆赫兹,对一般的应用已经足够了。这是spi的简单介绍。

再看一下实验的目的,对sd卡直接入镜文件进行读写,并将读取的信息在串口接视器当中进行输出。这是这节课的实验目的。

相关问答

单片机 读取 SD卡 问题?

如果单片机采用的是仿FAT32格式读取SDHC则读写哪个都不会有问题?如果采用仿FAT16格式则不能读后者。读前者也只能读些2GB的地址范围——除非你自己作分区格式...

SD卡 接powerpc什么总线?

SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行....

单片机 里面CPU 读写 存储器的步骤过程?

1)存储器的读操作。例如,若要将存储器40H中的内容50H读出,其过程如下:①CPU将地址码40H送到地址总线上,经存储器地址译码器选通地址为40H的存储单元:②...

单片机 怎么存储与调用外部存储器的数据?

查阅29F020的芯片资料设计好连接电路。看懂存储片读写时序,用单片机脚产生合适的时钟信号及读写请求信号,编写读写子函数。具体细节还是得看29F020的芯片资...

单片机 怎么去读取它内部的数据?

单片机有自身的程序,在程序控制下工作,它读取外部的数据或状态(输入),经过内部运算后,再输出到外部去显示或控制电子设备的开关,内部数据你是看不到的。...单...

单片机的 rom ram各自存放什么数据?

rom存放程序和表格了图片之类的数据,在程序运行时一般不可修改的,只能读只有部分EEPROM(也是ROM)在程序运行时可修改,但速度比较慢,没法和ram比ram存放...

如何用MODBUS 读写单片机的 32位数据?

使用Modbus访问16bit功能码,连续访问2个代表一个32位数据,两个16bit数据的工作需要自己完成:如PDU=功能码+数据域=0X03+[0X0000、0X0002];其中数据域...

在proteus中ds1302内部的ram如何显示?

在Proteus仿真软件中,DS1302实时时钟芯片内部的RAM可以通过下列步骤进行显示:1.打开Proteus软件并加载你的电路图。2.在元件库中搜索并添加DS1302实时时钟...

单片机 存储器主要是存储什么?

程序存储器是用于存放是系统工作的应用程序及一些不需改变的数据常数的,程序写入程序存储器后,单片机系统只能读取程序指令使系统运行,而不能再进行改写,且系...

单片机 如何通过ADC模块采集模拟信号?

朋友们好,我是电子及工控技术,我来回答这个问题。众所周知单片机是一种超大规模的集成电路,它只能“读懂”并处理数字信号,对于连续量的模拟信号则无能为力。...

猜你喜欢