QuecPython外扩存储方案

今天小Q来给大家介绍QuecPython开发外扩存储的方案,有外扩SD卡和Flash两种。很多小伙伴在开发过程中会遇到模组资源紧张的问题,我们可以通过外扩存储的方案来解决。

目前QuecPython开发的一些行业方案都采用了外扩存储的方案,例如:学生卡、手表穿戴等采外扩了4线的Flash,大屏开发板“铀”外扩了6线的Flash。

QuecPython开发的模组型号有很多,有哪些模组支持SD卡、支持Flash呢?SD卡用的什么通信协议?4线Flash和6线Flash有什么区别?下面小Q来给各位开发者们一一解答。

支持SD卡的模组以及通信协议

目前支持SD卡的平台有EC200A\EC200U\EC600U\EC600N\EC800N\EC600M\EC800M,其中EC600M和EC800M需要定制固件支持,SPI协议;EC200U和EC600U采用SDIO协议;EC600N和EC800N采用SPI协议,具体型号如下表一格所示。

模组型号

通信协议

EC200A全系列

SDIO

EC200U全系列

SDIO

EC600CNLB\EC600UCNLC

SDIO

EC600NCNLA\EC600NCNLC\EC600NCNLE\EC600NCNLF

SPI

EC600MCNLA\LE\EC800MCNLA\LE(定制)

SPI

EC800NCNLA

SPI

表一  支持SD卡的模组型号

SD卡驱动

SPI-SD驱动方法

SPI方式接线如下表二所示,以EC600NCNLA开发板为例,用SPI1接到SD卡转接板,接线图如下图一所示。

Pin

SD

SPI

1

CD/DAT3

CS

2

CMD

MISO

3

VSS1

GND

4

VDD

VDD

5

CLK

CLK

6

VSS2

GND

7

DAT0

MOSI

8

DAT1

NA

9

DAT2

NA

表二 SPI-SD接线方式

图一 EC600NCNLA-SD卡接线图

驱动结果如下图二所示,挂载成功后,可以在SD卡分区操作写入和读取文件。以下示例是w+的形式新建一个txt文件,写入数据0123456并读取。

图二 SPI-SD驱动结果

SDIO-SD驱动方法

EC200A\EC200U\EC600U有专门的SDIO接口,按照下图三所示接线,该测试使用EC200UCNAA开发板,搭载32GB的SD卡 

图三 SDIO-SD接线方式

挂载测试结果如下图四所示,uos.statvfs(“/sd”)的返回值为(f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax),可以计算出SD卡的内存大小为512*62309504÷(1024*3)≈29.7GB

  • f_bsize – 文件系统块大小,单位字节
  • f_frsize – 分栈大小,单位字节
  • f_blocks – 文件系统数据块总数
  • f_bfree – 可用块数
  • f_bavai – 非超级用户可获取的块数
  • f_files – 文件结点总数
  • f_ffree – 可用文件结点数
  • f_favail – 超级用户的可用文件结点数
  • f_flag – 挂载标记
  • f_namemax – 最大文件长度,单位字节

图四 SDIO-SD测试结果

支持Flash型号的模组以及4线和6线的区别

支持6线Flash的型号有EC600UCNLB\EC600UCNLC,支持4线Flash的型号有EC200U\EC600U\EC600N\EC600M\EC800N\EC600G\EC800M\EG810M。这里所提到的Flash为NOR Flash,NOR Flash是一种非易失闪存技术,由Intel在1988年创建。它是市场上两种主要的非易失闪存技术之一,另一种是NAND Flash。NOR Flash的特点是具有较高的可靠性和耐用性,可以承受一万次到一百万次抹写循环。4线指的是标准4线SPI(MISO、MOSI、CLK、CS),既Dual SPI;6线为QSPI,在Dual SPI的基础上增加两根I/0线(SIO3、SIO4)。两种Flash的接线方式如下图五、图六所示。

图五  4线Flash接线图

图六  6线Flash接线图

下表是QuecPython开发模组支持Flash的具体型号,以及Flash的接线方式。

模组型号

Flash接线方式

EC200U系列

4线

EC600UCNLB\LC

4线、6线

EC600NCNLA\LC\LE\LF

4线

EC600MCNLA\LE\LC\LF\CC

4线

EC800MCNLA\LE\GA\LC\LF

4线

EC810MCNGA\GB

4线

表三  支持Flash的模组型号

FLASH驱动方法

EC600U-6线SPI Nor Flash

需要选择特点的固件,如EC600UCNLB_EXTFS8M,在下载固件时就已初始化Flash,该方式可用于存放QuecPython程序镜像,直接运行程序。如下图七所示,能给客户提供丰富的usr分区,4096*767÷1024÷1024=3MB ,uos.statvfs(“/usr”)的返回值参考上文。

图七 EC600UCNLB_EXTFS8M用户空间

4线SPI Nor flash

4线Nor Flash有两种方式,一是只用于存储数据,二是在存储数据的前提下烧录文件(脚本、图片和音频等),受平台资源限制,最大只能挂载16MB的型号。第一种方式把Nor Flash接好之后可直接调用API挂载。第二种方式以EG810MCNGB穿戴开发板为例,挂载之前需要release固件,把Flash型号添加到固件包里,并分配ext_fs和ext_font分区大小,如下图八所示,ext_fs为外部用户存储分区, ext_font为外部字库分区,完整的固件包可质询移远技术支持提供。

图八 外部Flash分区分配

工具使用QPYcom3.2.0,在工具栏里选择功能箱-修改分区-ASR,弹出的界面里选择固件包、Release包和Flash型号后进行release固件,如下图九所示。

图九  QYPcom_release固件方法

以下图十是用EG810MCNGB穿戴开发板测试的结果,挂载的Nor Flash为4MB,分配了1MB给到字库分区,3MB给外部用户存储分区。

图十 EG810MCNGB挂载Nor Flash

小结:

SD卡方案适用于存储文件数据,例如音频文件,图片已经运行日志等;4线Nor Flash方案适用于穿戴方案,Flash可存储脚本、音频图片文件、字库以及运行日志等;6线Nor Flash方案能存放镜像文件系统,把模块支持的功能都能加进去,例如EC600UCNLB公版方案支持Audio、TTS,不支持BT和VOLTE,6线Nor Flash方案就可把这些功能都加上去。

附言:

后期小Q也会陆续分享其他QuecPython学习心得,欢迎各位看官沟通交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值