合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash

这篇具有很好参考价值的文章主要介绍了合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述
我们可以通过标准的SPI接口和QSPI接口来外挂flash。区别如下

使用标准SPI接口外挂flash,需要自己实现flash驱动,和自己移植文件系统
使用QSPI接口外挂flash,不需要自己实现flash驱动,也不需要移植文件系统 。通过mount接口挂载文件系统后,可以直接通过文件系统接口访问外部flash
标准SPI外挂flash
标准SPI有2个,SPI1和SPI2

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型号需要考虑供电电压

通过LCD复用的QSPI (电压域VLCD, 默认关闭,电压范围1.6125V~3.2V)
通过GPIO复用的QSPI (V_GLOBAL_1V8) (仅722UG支持)
支持的FLASH型号

GD PUYA WINBOND XMCA XMCC XMCB

XT25W32B XT25W64B
XM25QU64A XM25QU64B XM25QU32C XM25QU16C
GD25LE64E GD25LQ128C GD25Q127C
W25Q64JV
MD25Q64CS16
ZB25VQ64

客户已经验证过的flash型号有
XT25Q128DWOIGT

LCD复用QSPI FLASH1管脚定义(724模块)

接口 名称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的数据信号
LCD复用QSPI FLASH1管脚定义(722UG模块)
管脚名 类型 序号 电压域 描述
FLASH_CS DO 85 VCC_LCD QSPI 接口片选信号
FLASH_CLK DO 84 VCC_LCD QSPI 接口时钟信号
FLASH_S0 DO 43 VCC_LCD QSPI 接口数据信号 0
FLASH_S1 DO 42 VCC_LCD QSPI 接口数据信号 1
FLASH_S2 DO 81 VCC_LCD QSPI 接口数据信号 2
FLASH_S3 DO 82 VCC_LCD QSPI 接口数据信号 3
VCC_LCD DO 83 V_GLOBAL_1V8 输出 1.6-3.3V, 默认电压是 1.8V, IOmax=200mA,可用于给 LCD 供电可以根据选用的 QSPI Flash 的型号来配置输出电压。
GPIO复用QSPI FLASH1管脚定义(仅722UG支持)
管脚名 类型 序号 电压域 描述
FLASH_CS DO 35 V_GLOBAL_1V8 QSPI 接口片选信号
FLASH_CLK DO 34 V_GLOBAL_1V8 QSPI 接口时钟信号
FLASH_S0 DO 77 V_GLOBAL_1V8 QSPI 接口数据信号 0
FLASH_S1 DO 78 V_GLOBAL_1V8 QSPI 接口数据信号 1
FLASH_S2 DO 79 V_GLOBAL_1V8 QSPI 接口数据信号 2
FLASH_S3 DO 80 V_GLOBAL_1V8 QSPI 接口数据信号 3
V_GLOBAL_1V8 DO 10 V_GLOBAL_1V8 LDO 输出,固定输出 1.8V,IOmax=50mA 开机后默认打开,不能关闭
上述管脚是和 MIPI DSI 管脚复用的,在用到 MIPI DSI 接口的情况下,如果要外接 QSPI Flash,可以通过SPI LCD 的相关管脚映射出来,管脚映射关系如上
请注意722UG模块这两路 QSPI 无法同时使用

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 字符串长度>=5,第一个字节为’/‘ mount的文件系统根目录
size 要考虑字节对齐 分区的大小
offset flash 地址偏移量
clock clock=166M/clkDiv,2<clkDiv<255 时钟
返回值

1:成功
0:失败
unmount
挂载文件系统分区

语法

io.unmount(flashType[,path][,size][,offset][,clock])

参数

返回值

1:成功
0:失败
format
格式化文件系统分区

语法

io.format(flashType[,path][,size][,offset][,clock])

参数

返回值

1:成功
0:失败
常见问题
http://doc.openluat.com/article/638/0

  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挂载成功,操作文件失败
    合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash
    先格式化一下,第一次需要格式化一下,之后就不用了
    合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash文章来源地址https://www.toymoban.com/news/detail-513122.html

到了这里,关于合宙Air724UG Cat.1模块硬件设计指南--外部SPI Flash的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 合宙Air724UG LuatOS-Air LVGL API--简介

    为何是 LVGL LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点: 强大的 控件 :按钮、图表、列表、滑动条、图像等 高级图形引擎:动画、抗锯齿、不透明、平滑滚动、混合模式等 支持

    2024年02月12日
    浏览(33)
  • 合宙Air724UG LuatOS-Air LVGL API-概念

    概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设置或

    2024年02月11日
    浏览(32)
  • 合宙Air724UG LuatOS-Air core API--qrencode

    qrencode Table of Contents qrencode qrencode.encode(data [,version,level]) qrencode 二维码生成 qrencode.encode(data [,version,level]) 二维码编码 参数 参数 类型 释义 取值 data string 需要编码的数据 string类型 version number 二维码版本 可选参数0-40 level number 二维码纠错等级 0-3 返回值 返回值 类型 释义 取值

    2024年02月12日
    浏览(45)
  • 合宙Air724UG LuatOS-Air script lib API--patch

    patch Table of Contents patch patch.safeJsonDecode(s) (local函数 无法被外部调用) patch 模块功能:Lua补丁 patch.safeJsonDecode(s) (local函数 无法被外部调用) 封装自定义的json.decode接口 参数 名称 传入值类型 释义 s string json格式的字符串 返回值 table,第一个返回值为解析json字符串后的table boole,第

    2024年02月14日
    浏览(45)
  • 合宙Air724UG LuatOS-Air LVGL API控件-窗口 (Window)

    窗口 (Window) 分 享导出pdf | lvgl.win_create 调用 lvgl.win_create(par, copy) 功能 创建一个窗口对象 返回 指向创建的窗口的指针 参数 par 指向对象的指针, 它将是新键对象的父对象 copy 指向窗口对象的指针, 如果不为 nil, 则将从其复制新对象 lvgl.win_clean 调用 lvgl.win_clean(win) 功能 清除窗口

    2024年02月09日
    浏览(51)
  • 合宙Air724UG LuatOS-Air LVGL API控件-页面 (Page)

    页面 (Page) 当控件内容过多,无法在屏幕内完整显示时,可让其在  页面  内显示。 通过函数  lvgl.page_create  可以创建一个页面 页面对象可以像容器一样设置各个方向上的匹配模式,可以把需要显示的对象添加进页面进行显示,页面可以作为控件的父容器。就像下面这样,

    2024年02月09日
    浏览(51)
  • 合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label)

    标签 (Label) 标签是 LVGL 用来显示文字的控件。 标签是通过  lvgl.label_create  函数创建的。 可以使用  lvgl.label_set_text  设置标签上的文字显示内容。 标签是有宽度的,默认情况下,在设置文字后会自行调整,标签宽度会自动扩充到文本宽度。但是这种显示方式是可以进行更改

    2024年02月09日
    浏览(44)
  • 合宙Air724UG LuatOS-Air LVGL API控件-截屏(Screenshots)

    截屏(Screenshots) 分 享导出pdf 截屏功能,core版本号要=3211 disp.screenshots 调用 disp.screenshots(name, x1, x2, y1, y2) 功能 截取显示屏指定区域图片 返回 0/-1 成功/失败 参数 name 文件路径名只支持bmp x1 水平初始值MIPI屏(0-479)/LCD屏(0-239) x2 水平结束值MIPI屏(x1-479)/LCD屏(x1-239)

    2024年02月07日
    浏览(39)
  • 合宙Air724UG LuatOS-Air script lib API--http

    Table of Contents http http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara) http 模块功能:HTTP客户端 http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara) 发送HTTP请求 参数 名称 传入值类型 释义 method string HTTP请求方法 支持\\\"GET\\\",“HEAD”,“POST”,“O

    2024年02月15日
    浏览(79)
  • 合宙Air724UG LuatOS-Air script lib API--utils

    utils Table of Contents utils string.toHex(str, separator) string.fromHex(hex) string.utf8Len(str) string.utf8ToTable(str) string.rawurlEncode(str) string.urlEncode(str) table.gsort(t, f) table.rconcat(l) string.formatNumberThousands(num) string.split(str, delimiter) io.exists(path) io.readFile(path) io.writeFile(path, content, mode) io.pathInfo(path) io.fil

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包