外部SPI Flash

# 简介 我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下 1. 使用标准SPI接口外挂flash,需要自己实现flash驱动,和自己移植文件系统 1. 使用QSPI接口外挂flash,不需要自己实现flash驱动,也不需要移植文件系统 。通过mount接口挂载文件系统后,可以直接通过文件系统接口访问外部flash # QSPI外挂flash QSPI有2种管脚定义, 电压不同,选择flash型号需要考虑供电电压 1. 通过LCD复用的QSPI (电压域VLCD, 默认关闭,电压范围1.6125V~3.2V) 2. 通过GPIO复用的QSPI (V_GLOBAL_1V8) (仅722UG支持) # QSPI的库由底层core实现,相关API接口如下: |API接口| 描述| | --- | --- | |io.mount(flashType[,path][,size][,offset][,clkDiv])| 挂载文件系统分区| |io.unmount(flashType[,path][,size][,offset][,clkDiv])|卸载文件系统分区| |io.format(flashType[,path][,size][,offset][,clkDiv])|格式化文件系统分区| > 详细的API介绍见[LuatOS-Air core API](https://doc.openluat.com/wiki/21?wiki_page_id=2248 # 常见问题 ## 1. SPI外置FLASH有demo吗 最大支持多少? qspi外挂flash参考:demo/qspi 目前有测试过最大的是 16MByte 的 qspi,超过16M不支持,是硬件限制的(QSPI地址只有24位) 标准spi外挂flash参考:demo/spiFlash,对flash容量没限制,需要自己实现驱动 ## 2. 外挂flash支持nand还是nor flash? qspi仅支持nor flash 标准spi支持nand和nor flash,完全由自己在脚本中写驱动来控制 ## 3. 用demo测试qspi挂载成功,操作文件失败 ![image.png](https://cdn.openluat-luatcommunity.openluat.com/images/20211206172925007_image.png) 先格式化一下,第一次需要格式化一下,之后就不用了 ![image.png](https://cdn.openluat-luatcommunity.openluat.com/images/20211206173047472_image.png) # 硬件设计 见硬件设计指南 [SPI接口 章节](https://hmi.wiki.luatos.com/doc/65042949/e6zPC3k9/3t5hqI1A) 见硬件设计指南 [QSPI接口 章节](https://hmi.wiki.luatos.com/doc/65042949/e6zPC3k9/9Zjm3eQ4)