快讯
HOME
快讯
正文内容
nand+读取+焊接 使用RTOS系统如何选取大容量存储芯片NAND Flash
发布时间 : 2024-10-12
作者 : 小编
访问数量 : 23
扫码分享至微信

使用RTOS系统如何选取大容量存储芯片NAND Flash

随着物联网的兴起,很多产品都要求启动速度快、功耗低、响应及时。所以RTOS(比如RT-Thread)得到了越来越广泛的应用。本身RTOS系统是面向专且精的产品,因此系统的镜像都是非常小的,基本<10MB、甚至<1MB的。但有时候开发者因为如下的需求:

  1、使用GUI界面需要存储图片

  2、需要存放一段启动或提示语音/视频

  3、系统需要嵌入一些协议栈等原因,系统IMG变得很大,用NOR Flash就不太够用了。

  这个时候就需要采用NAND Flash,但使用Raw NAND也存在几个问题: 1, 需要CPU支持并口; 2, 需要CPU做EDC/ECC,坏块管理,平均读写等操作。使用RTOS的平台CPU性能都比较有限,因此,选择一款带控制器的NAND Flash产品是一个合适的选择。

  就目前来说,可以选择的主流产品有:SD NAND、eMMC、T卡等。针对使用RTOS的用户,优先推荐还是选择SD NAND,原因有以下几点:

  1、SD NAND容量以 128MB/512MB为主,够用且成本合理。适合RTOS用户。

  2、SD NAND 尺寸比T卡和eMMC要小,(6*8mm LGA-8封装)

  3、SD NAND 方便焊接,只有8个pin脚。相比之下eMMC 是BGA 153个Ball; 而T卡本身不适用于焊接。

  CS SD NAND不用写驱动程序自带坏块管理的NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装,标准SDIO接口,兼容SPI/SD接口,兼容各大MCU平台,可替代普通TF卡/SD卡,尺寸6x8mm毫米,内置SLC晶圆擦写寿命10万次,通过1万次随机掉电测试耐高低温,支持工业级温度-40°~+85°,机贴手贴都非常方便,速度级别Class10(读取速度23.5MB/S写入速度12.3MB/S)标准的SD2.0协议普通的SD卡可直接驱动,支持TF卡启动的SOC都可以用SD NAND,提供STM32参考例程及原厂技术支持,主流容量:128MB/512MB/4GB,比TF卡稳定,比eMMC便宜,样品免费试用。

什么?不连电脑,用Wi-Fi就能读取SD卡上的内容?

设想一个场景:

你只要将带SD卡的设备插入任何一个USB端口,它会自行创建一个FTP服务器,同一个局域网下,手机、电脑等能联网的设备都可以实现跟SD卡进行无线数据发送和接收。

再也不需要反复插拔,拿个卡拷来拷去了,是不是很方便?

今天,我们要介绍的就是这样一个项目。

所需材料和工具

硬件模块 x1 ESP8266 ESP-12Ex1 MicroSD卡x1 MicroSD卡适配器x1 双排10脚(2.54 mm)直角排针x1 FDTI模块x1 3.3v稳压器x1 万能PCB板软件应用程序和在线服务 Arduino IDE必备工具 烙铁(通用型)无铅焊锡丝

制作背景

USB的设计初衷是通用性,主要目标是实现热插拔、超级容易与其他设备对接,但多年来这个想法变得混乱。

令人感到沮丧的是USB接口有那么多不同的变种,工作方式与它们的名字[USB-通用串行总线]完全矛盾。理想情况是每个USB接收器应该与任何USB设备兼容!但现实情况是你不能把U盘或键盘插在充电器里,然后指望它能工作。

这就是我启动这个简单项目“无线读卡器”来实现这个“通用端口”创意的原因。这算是个非常好的创意!

我们所要做的就是把它插入任意USB接收器,不管哪一个!

一旦您把它插入USB,它会创建一个热点,然后我们就可以连接到这个热点,在任何兼容设备中打开任意FTP客户端程序。通过此设置,我们可以用无线方式从SD卡复制文件,以及往SD卡保存文件!

购买材料

首先我们需要准备下面这些材料:

ESP-12ESD卡Micro-SD适配器直排针90度排针导线FTDI模块Arduino Nano及USB线USB公头万能PCB板烙铁焊锡丝

第1步:认识SD卡

SD是Secure Digital的首字母缩写,它类似于你的Pendrive,但尺寸更小,价格更便宜。

SD卡与微控制器的连接有两种方式,分别是SDIO和SPI。

大多数SD卡都具备许多标准功能,并且具有相同的物理和电气规格。

SPI和SDIO之间的实际差异主要体现在软件层面。详细信息可前往了解SD、SDIO 和MMC接口。

简单说就是SDIO更快但更难实现,SPI较慢但更容易实现。由于大多数微控制器默认支持SPI,所以我们就选择SPI吧。

以下是SD卡的SPI引脚定义:

Pin-1 - CS (片选)Pin-2 - DI (MOSI)Pin-3 - GNDPin-4 - VCCPin-5 - SCLKPin-6 - GNDPin-7 - DO (MISO)Pin-8 - NCPin-9 - NC

第2步:改装SD卡适配器

你可以使用任何支持Arduino和ESP8266的SD卡模块,但对于本项,我们将使用MicroSD卡适配器,并将对它进行改装,改装后可以替代SD卡模块。

首先,清洁SD卡适配器的触点。接着将90度排针的插脚直接焊接到适配器触点上。焊接完成后,检查触点(插脚)之间有没有短路。然后一个一个地卸下黑色分隔块,以便把它放回原处时,它会与万能PCB板平齐。

裁剪万能PCB板使其与SD卡适配器完美匹配,且有一些额外的空间来安装USB接口。

虽然也可以不用SD卡适配器,直接对SD卡做同样的处理,但是风险很大,相当容易损坏SD卡。

第3步:安装USB插头

我们将使用USB接口本身给SD卡供电。因此我们使用USB公头。USB通常有4个引脚,中间2个引脚用于数据传输,边上2个引脚用于电源和接地。由于我们只需要电源,所以剪掉数据引脚,只保留GND和VCC。

把USB公头插在SD卡适配器前端我们之前预留的空间那里,然后焊接到位。但这还没有真正解决供电问题!因为SD卡需要3.3伏的电压,但是USB电源是标准的5V,如果你直接插上5V电源,你很可能会烧坏SD卡(但MicroSD卡适配器不会损坏)。

为了解决这个问题,我们将使用一个3.3V稳压器,并将USB电源的输入连接到3.3V稳压器,即将USB的GND引脚连接到稳压器的引脚1,并将USB的+5V引脚连接到稳压器的引脚3。最后,将稳压器的引脚2译注:原文为引脚3,根据电路图及稳压芯片ASM1117的说明应该是引脚2(输出引脚)和接地焊接到SD卡上。

这就解决了SD卡的电压适配。您可以查看电路图,了解更详细的接线

第4步:把所有 元件 跟ESP-12E整合

现在要读写SD卡上的数据,我们将使用ESP12E WIFI模块,虽然它比ESP32慢。但选择哪一个并不重要,我会在后面的步骤中说明原因。

首先将EN(使能引脚)焊接到ESP12E的VCC上,这是用来启动IC的。如果使能引脚没有连接到高电平信号,IC将不会启动。然后将ESP12E放在万能PCB板背面,将ESP12E的SPI引脚焊接到SD卡上对应的SPI引脚上。连接细节请查看电路图。

第5步:比较HTTP和FTP

在学习编程之前,我对下载和上传的工作原理做了一些研究,那时我偶然碰到FTP这个词。FTP是文件传输协议(File Transfer Protocol)的首字母缩写,它是用来在服务器和客户机之间传输文件的,它与普通的HTTP协议完全不同,后者是用来在客户机和服务器之间发送请求和接收响应的,而且数据量非常小。

FTP在传输文件方面比HTTP快,因为它是专门为传输文件设计的。因此,在这个项目中我选择使用FTP。FTP服务器运行在ESP-12E上,我们可以通过这个FTP服务器跟SD卡进行数据推送与获取。

第6步:挑战FTP库

我没有找到一个非常活跃的或者专门为ESP8266开发的FTP库。但是经过一番挖掘,我遇到了David Paiva,他将一个Arduino版本的FTP服务器移植到ESP8266,可惜它只支持SPIFFS,不支持SD卡。

终于功夫不负有心人,我发现有人付出努力把David Paiva的FTP库从支持SPIFFS转换成支持SD卡了。但是,当我尝试使用这个库时,遇到了两个问题。首先,我发现这个网页是韩语的,所以我不得不坐下来一点一点翻译所有的东西,以便在我能实际使用它之前知道内部的工作原理。第二个问题是,我必须修改现有的SD库来引入他所做的更改,这让人感觉很笨拙。

于是我比较了一下这两个库,一个来自David Paiva,另一个来自韩国网站,然后做了一些小的改动,把所有代码整合到一个项目里,这样就不必再安装其它额外的库了。你可以从我的Github帐户中查看项目的完整代码。

第7步:对ESP-12E编程

由于ESP-12E没有内置的烧录器,因此我们需要使用一个外部的烧录器,比如FDTI模块。所以我用几根导线和排母插座制作了一个适配器,有了这个,我们可以临时焊接到ESP12E并通过FTDI模块进行烧录。

具体接线方法是:

GND[ESP12E]连接到FDTI模块的GNDRx[ESP12E]连接到FDTI模块的TxTx[ESP12E]连接到FDTI模块的RxGPIO15[ESP12E]连接到FDTI模块的GNDGPIO0[ESP12E]连接到FDTI模块的GNDVCC[ESP12E]连接到FDTI模块的VCC

最后,使用Arduino IDE上传Github上下载的代码。

一旦程序上传完毕,你就可以焊掉连接到ESP12E烧录器的导线。

第8步:大功告成!

只需在适配器内插入MicroSD卡[最大32GB],然后将整个设备插入任一个USB兼容设备,这样就可以开启设备了!但是先别着急,还有一些事情需要注意,为了安全起见,要确保USB端口的输出电流大于1安培。因为ESP12E模块在传输文件时会消耗更多的电流。

第9步:使用设备

一旦通电启动,设备就会创建一个名为SD Reader的热点。使用写代码里的密码连接到此热点。然后根据连接到ESP12E的设备类型,下载相应的FTP客户端软件,如果您使用PC就下载WinSCP或Filzella,如果您使用安卓设备就下载AndFTP。

以安卓设备为例,安装完成后,打开AndFTP并填写账号密码,设置FTP客户端。对我来说,我保持代码中使用默认的用户名和密码“ESP8266”。所以,用户信息使用默认值,主机使用192.168.12.7。最后,连接到FTP服务器。

连接上后,就可以从SD卡下载任何文件,也可以将文件从手机上传到SD卡。

你可以观看视频了解它是如何工作的!

总结

在断定它是一个非常方便的设备之前,让我们来回顾一下。

虽然做到了我想要的功能,但它终究是缓慢的!对于4个文件(每个大约100Kb)大约需要30秒,如果您尝试使用10MB这样更大的文件,则需要大约3-4分钟才能完成。当然,传输速率还有一定的优化空间,从我之前提到的网页来看,作者能够获得大约450kbs的读取速度。(使用ESP32和SD MMC库传输速度可能约为1MB/s)

我之所以到此为止而没有尝试去优化它有两个原因。第一个原因,我真的很希望,除了FTP服务器之外,我还可以使用USB数据线来传输数据,但ESP8266或ESP32都不支持。第二个原因,我无法通过FTP传输文件获得足够的速度。这也是为什么我不费心用ESP32代替ESP12E的原因。

但我觉得如果我们能使用支持全速USB OTG的ESP32 S2板,这些问题应该可以解决。也许我可以在另一个教程中作此尝试。

电路图

完整代码

后台回复"无线SD读卡器 ",获取。

或者前往作者GitHub代码仓库下载最新代码

项目链接:https://www.hackster.io/Neutrino-1/wireless-sd-card-reader-esp8266-de7f07

项目作者:Neutrino

中文翻译:fibx

相关问答

焊接 控制器触发电压多少?

焊接控制器的触发电压取决于具体的焊接控制器型号和应用场景。不同类型的焊接控制器可能有不同的触发电压要求。一般而言,焊接控制器的触发电压通常在低电压...

Uin在弧焊电源中什么意思?

在弧焊电源中,Uin通常指的是输入电压。弧焊电源是一种为弧焊设备提供电源的设备,它通常通过电网或其他电源获取输入电压。Uin的大小和稳定性对弧焊电源的性能...

锻钢 焊接 方法?

一般的电焊就可以。要是有特殊要求,就用保温桶把焊条保温到200°,用的时候取出一个用一个!这样焊接强度就高。,电压关系曲线的话一般要有参数的。1.电流...

焊接 开始前,对焊件的全部或局部进行加热的工艺叫做?

以下是我的回答,焊接开始前,对焊件的全部或局部进行加热的工艺叫做预热。预热是焊接前的一个重要的工艺措施,它可以减小焊缝的冷却速度,降低焊接应力和变形,...

dn150钢丝骨架复合管如何 焊接 ?

1、首先应该确定切割位置,以确保有足够的热熔区域。常用的切割工具包括旋切刀、锯弓、塑料管剪刀等。切割时温度不能太高,高温会变形。2、清洁接头部位并标记...

焊接 技术与工程专业考研科目,数几?

焊接技术与工程专业的考研科目取决于具体的考试科目设置以及所报考的专业。一般来说,考研数学科目为数学二,但也有可能因专业不同而有所不同。建议查看相关学...

焊接 水管的热熔器全套?

是用于水管焊接的专业设备,主要用于将塑料管道进行热熔焊接。具体的热熔器全套包括以下主要部分:1.热熔器/焊接机:这是热熔器全套的核心设备,用于加热和熔化...

电子电焊机0C黄灯亮是什么意思?

常见原因如下。1焊机没有吹尘。焊机散热能力差过热保护。焊机每月最少需要用压缩空气吹两次。在灰尘大的地方使用,加大吹尘次数。2使用的焊接电流太大,焊...

怎样识别双电压电焊机?

识别双电压电焊机的方法如下:查看焊机标识。双电压电焊机通常会在焊机外壳或标识牌上标明其支持的双电压范围,例如220V/380V等。可以仔细查看焊机的标识或说...

最耐用的门那种材料最好,门的十大品牌有哪些?_门窗_装信通网

实心木门不知道你说的是入户的大门还是卧室、卫生间、厨房等。那今天我为你总结家里的不同区域应该安装那种类型的门吧。一、入户大门:分为双开门...

 王力宏结婚  杭州下沙大学城 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部