外部SPI Flash ============= 作者:朱汪斌 更新时间:2020年9月1日 关键字:外挂flash SPI QSPI 概述 ---- 我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下 1. 使用标准SPI接口外挂flash,需要自己实现flash驱动,和自己移植文件系统 1. 使用QSPI接口外挂flash,不需要自己实现flash驱动,也不需要移植文件系统 。通过mount接口挂载文件系统后,可以直接通过文件系统接口访问外部flash 标准SPI外挂flash ---------------- 标准SPI有2个,SPI1和SPI2,724UG只支持SPI1 - SPI管脚定义 ==== ========= =========== ==== ============== 接口 名称 复用 管脚 作用 ==== ========= =========== ==== ============== SPI1 SPI1_CLK spi_1_clk 52 SPI1的时钟信号 SPI1 SPI1_DIN spi_1_di_1 53 SPI1的数据信号 SPI1 SPI1_CS spi_1_cs_0 54 SPI1的片选型号 SPI1 SPI1_DOUT spi_1_dio_0 55 SPI1的数据信号 ==== ========= =========== ==== ============== - SPI2管脚定义 ==== ====== ========= =========== ============== 接口 PIN NO Ball Name 复用 作用 ==== ====== ========= =========== ============== SPI2 R19 GPIO_0 spi_2_clk SPI1的时钟信号 SPI2 R20 GPIO_1 spi_2_cs_0 SPI1的片选型号 SPI2 P21 GPIO_2 spi_2_dio_0 SPI1的数据信号 SPI2 P22 GPIO_3 spi_2_di_1 SPI1的数据信号 ==== ====== ========= =========== ============== QSPI外挂flash ------------- QSPI有2种管脚定义, 电压不同,选择flash型号需要考虑供电电压 1. 通过LCD复用的QSPI (电压域VLCD, 默认关闭,电压范围1.6125V~3.2V) 2. 通过GPIO复用的QSPI (V_GLOBAL_1V8) (724UG不支持) - 支持的FLASH型号 GD PUYA WINBOND XMCA XMCC XMCB - 客户已经验证过的flash型号有 XT25Q128DWOIGT - LCD复用QSPI FLASH1管脚定义 ====== ========== ================ ======== ================ 接口 名称PIN NO 复用Ball Name 管脚复用 作用 ====== ========== ================ ======== ================ FLASH1 LCD_DATA spi_flash1_clk 41 FLASH1的时钟信号 FLASH1 LCD_DC spi_flash1_cs 58 FLASH1的片选信号 FLASH1 LCD_CLK spi_flash1_sio_0 40 FLASH1的数据信号 FLASH1 LCD_CS spi_flash1_sio_1 39 FLASH1的数据信号 FLASH1 LCD_SEL spi_flash1_sio_2 57 FLASH1的数据信号 FLASH1 LCD_FMARK spi_flash1_sio_3 42 FLASH1的数据信号 ====== ========== ================ ======== ================ - GPIO复用QSPI FLASH1管脚定义 ====== ====== ========= ================ ================ 接口 PIN NO Ball Name 复用 作用 ====== ====== ========= ================ ================ FLASH1 R19 GPIO_0 spi_flash1_clk FLASH1的时钟信号 FLASH1 R20 GPIO_1 spi_flash1_cs FLASH1的片选信号 FLASH1 P21 GPIO_2 spi_flash1_sio_0 FLASH1的数据信号 FLASH1 P22 GPIO_3 spi_flash1_sio_1 FLASH1的数据信号 FLASH1 T21 GPIO_4 spi_flash1_sio_2 FLASH1的数据信号 FLASH1 T22 GPIO_5 spi_flash1_sio_3 FLASH1的数据信号 ====== ====== ========= ================ ================ LUA 接口 -------- mount ~~~~~ 挂载文件系统分区 - 语法 ``io.mount(flashType[,path][,size][,offset][,clock])`` - 参数 +-----------+---------------------------+---------------------------+ | 参数 | 取值 | 释义 | +===========+===========================+===========================+ | flashType | io.SDCARD | SD卡 | +-----------+---------------------------+---------------------------+ | | io.INTERNAL | 内部flash | +-----------+---------------------------+---------------------------+ | | io.EXTERN_PINLCD | 外挂flash, | | | | LCD复用管脚,V_LCD供电 | +-----------+---------------------------+---------------------------+ | | io.EXTERN_PINGPIO | 外挂flash, 使用GPIO | | | | pin脚复用,V_PAD_1V8供电 | +-----------+---------------------------+---------------------------+ | path | 字符串 | mount的文件系统根目录 | | | 长度>=5,第一个字节为’/‘ | | +-----------+---------------------------+---------------------------+ | size | 要考虑字节对齐 | 分区的大小 | +-----------+---------------------------+---------------------------+ | offset | | flash 地址偏移量 | +-----------+---------------------------+---------------------------+ | clock | clock= | 时钟 | | | 166M/clkDiv,2`__ `Air724UG开发板 `__ `Air724 开发板使用说明 `__ `相关软件资料下载 `__ 常见问题 -------- https://luatdoc.papapoi.com/638/