news 2026/4/30 7:27:47

SPI总线全攻略:从以太网组网、大容量Flash存储到AirLink高速通信

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SPI总线全攻略:从以太网组网、大容量Flash存储到AirLink高速通信

作为扩展性极强的通信接口,SPI通用总线能够支持丰富的外设生态——无论是以太网控制器CH390H、各类存储芯片(SPI Nor/NAND Flash、TF卡),还是自研的AirLink通信协议,均可基于SPI实现可靠的数据交互。

今天我们就来围绕这些实际应用问题,一起来聊聊。

一、SPI总线硬件配置

Air780Exx系列模组的SPI总线配置因型号而异,硬件设计前务必注意引脚资源差异。

1.1 常规型号支持2路通用SPI总线

  • SPI0:

    默认引脚为PIN83/84/85/86;

  • SPI1:
    可复用引脚为PIN28/29/57/58(PIN28/29默认功能为UART2,PIN57/58默认功能为UART3)。

下图以Air780EPM模组为例:

1.2 以下型号只支持1路SPI0

Air780EHV和Air780EGP/EGG/EGH只支持1路SPI0,原因如下:

1)Air780EHV(全能音频系列)

因为内置了Audio Codec芯片ES8311,内部占用了PIN57/58的I2C0总线;PIN57/58外部不可再用,无法复用为SPI1_CLK/SPI1_MISO,进而Air780EHV也就无法支持SPI1通道了。

2)Air780EGP/EGG/EGH(定位+通信系列)

因为内置了GNSS定位芯片,内部占用了PIN28/29的UART2串口;PIN28/29外部不可再用,无法复用为SPI1_CS/SPI1_MOSI,进而Air780EGP、Air780EGG、Air780EGH也就无法支持SPI1通道。

1.3 相关注意事项

  • 多外设挂载:
    理论上,SPI总线可以通过不同的片选CS外挂多个不同的外设,但对不同片选下的外设要求是通信速率必须相同,不能低速率和高速率的外设挂载在同一个SPI总线下。

  • GPIO模拟SPI:
    除了SPI总线外,LuatOS也支持GPIO模拟SPI,但只适用于速率超低(低于100Kbps)的外设。在设计投板前,需要使用合宙的开发板做好充分的测试评估后,再进行实际的原理图和PCB设计。

  • 引脚初始化:
    在使用SPI功能之前,都需要先使用LuatIO工具生成pins配置json文件,也就是对IO的初始化功能配置。

二、SPI以太网应用(CH390H)

无论Air780系列模组还是Air8000系列模组,目前LuatOS仅适配过CH390H以太网控制器。

2.1 硬件原理图

最新参考设计原理图等资料

2.2 相关注意事项

1)挂载组合示例

以Air780EHV举例来说,SPI0可以做如下挂载组合:

  • CS0挂载CH390H,CS1挂载SPI TF卡;

  • CS0挂载CH390H,CS1挂载SPI Nor Flash;

  • CS0挂载CH390H,CS1挂载SPI NAND Flash;

  • CS0挂载一路CH390H,CS1挂载另一路CH390H,CS2挂载SPI TF卡;

  • CS0挂载一路CH390H,CS1挂载另一路CH390H,CS2挂载SPI Nor Flash;

  • CS0挂载一路CH390H,CS1挂载另一路CH390H,CS2挂载SPI NAND Flash。

注意!SPI总线挂载的外设越多,相应外设的响应速度也就会越低。

2)电源管理

当CH390的供电电源不支持通过GPIO控制使能管脚EN控制开启或关断时,SPI0_CS0注意上拉到CH390H供电电源上,以防止SPI0_CS0在低功耗状态下软件未初始化时为低,进而产生耗电。

3)相关资源

与以太网相关的LuatOS核心库、扩展库和相关文档:

SPI核心库:
https://docs.openluat.com/osapi/core/spi/

netdrv核心库:
https://docs.openluat.com/osapi/core/netdrv/

exnetif扩展库:
https://docs.openluat.com/osapi/ext/exnetif/

应用指导文档:
https://docs.openluat.com/air780epm/luatos/app/socket/

三、SPI TF卡应用

Air780Exx系列模组当前仅支持SPI接口的T-Flash(MicroSD),不支持SDIO。

3.1 硬件原理图

最新参考设计原理图等资料

3.2 相关注意事项

1)挂载组合示例

以Air780EHV举例来说,SPI0可以做如下挂载组合:

  • CS0挂载CH390H,CS1挂载SPI TF卡;

  • CS0挂载一路CH390H,CS1挂载另一路CH390H,CS2挂载SPI TF卡。

注意!SPI总线挂载的外设越多,相应外设的响应速度也就会越低。

2)电源管理

不同的T-Flash需要的驱动电流可能不同,实际调试时可根据需要调整SPI信号上拉电阻的阻值大小。

当T-Flash的供电电源不支持通过GPIO控制使能管脚EN控制开启或关断时,SPI0_CS1注意上拉到T-Flash供电电源上,以防止SPI0_CS1在低功耗状态下软件未初始化时为低进而产生耗电。

3)相关资源

与SPI T-Flash相关的LuatOS核心库、扩展库和相关文档:

SPI核心库:
https://docs.openluat.com/osapi/core/spi/

fatfs核心库:
https://docs.openluat.com/osapi/core/fatfs/

fs核心库:
https://docs.openluat.com/osapi/core/fs/

io核心库:
https://docs.openluat.com/osapi/core/io/

应用指导文档:
https://docs.openluat.com/air780epm/luatos/app/driver/sd/

四、SPI Nor Flash应用

LuatOS已适配过的SPI Nor Flash有:
W25Q64、W25Q128、W25Q256等。

原则上所有支持SFDP协议的SPI Nor Flash,都可以支持。

4.1 硬件原理图

最新参考设计原理图等资料

4.2 相关注意事项

1)挂载组合示例

以Air780EHV举例来说,SPI0可以做如下挂载组合:

  • CS0挂载CH390H,CS1挂载SPI Nor Flash;

  • CS0挂载一路CH390H,CS1挂载另一路CH390H,CS2挂载SPI Nor Flash。

注意!SPI总线挂载的外设越多,相应外设的响应速度也就会越低。

2)电源管理

当Nor Flash的供电电源不支持通过GPIO控制使能管脚EN控制开启或关断时,SPI0_CS2注意上拉到Nor Flash供电电源上,以防止SPI0_CS2在低功耗状态下软件未初始化时为低进而产生耗电。

3)相关资源

与SPI Nor Flash相关的LuatOS核心库、扩展库和相关文档:

SPI核心库:
https://docs.openluat.com/osapi/core/spi/

Little_flash核心库:
https://docs.openluat.com/osapi/core/little_flash/

Sfud核心库:
https://docs.openluat.com/osapi/core/sfud/

io核心库:
https://docs.openluat.com/osapi/core/io/

应用指导文档:
https://docs.openluat.com/air780epm/luatos/app/mulu/fs/

五、SPI NAND Flash应用

SPI NAND Flash原理图与SPI Nor Flash相同,可以直接参考。

关于Little_flash和Sfud核心库:

Little_flash支持挂载SPI Nor Flash和SPI NAND Flash;

Sfud只能挂载SPI Nor Flash。

无论SPI Nor Flash还是SPI NAND Flash,
都推荐优先使用Little_flash方式挂载。

LuatOS当前已适配过的SPI NAND Flash有:

  • W25N01GVZEIG

  • W25N01KVZEIR

  • W25N02KVZEIR

  • W25N04KVZEIR

六、SPI AirLink应用

AirLink协议诞生于Air8000系列模组中“4G主控芯片和Wi-Fi协处理芯片”之间的通信协议,比UART速率更高,比USB功耗更低,适合对速率要求较高、功耗要求较低、尤其系统中没有支持USB HOST功能芯片的产品中。

AirLink核心库支持以下产品/产品组合:

  • Air8000系列;

  • Air8101+Air780Exx;

今天的内容就分享到这里了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:12:39

基于stm32f10x芯片的人形机器人控制系统硬件设计

基于STM32F10x芯片的人形机器人控制系统硬件设计 第一章 绪论 人形机器人作为智能机器人领域的核心研究方向,具备仿人运动、环境交互等特性,广泛应用于教育、服务、工业等场景。传统人形机器人控制系统多采用专用控制芯片,存在拓展性差、运…

作者头像 李华
网站建设 2026/4/30 20:24:28

基于数据分析的智能饮食推荐APP

一、项目介绍 本文主要研究依托数据分析技术的健康饮食管理APP的开发和设计,以解决当前人们在饮食方面的健康问题,在人们需要帮助时,为用户设计一份饮食方案。详细地开展调查工作,了解人们的饮食管理目标是什么。明确人们的个性化…

作者头像 李华
网站建设 2026/5/1 5:10:46

基于resnet +vgg+pyqt5的交通信号灯检测识别系统

前言    随着城市化进程的推进以及汽车保有量的持续上升,智能交通系统的重要性日益凸显,交通信号灯检测识别系统作为其中关键一环,备受关注。传统检测手段存在一定局限性,而深度学习技术的发展为其带来了新的发展方向。本研究尝…

作者头像 李华
网站建设 2026/4/29 22:49:10

【作业2】DELETE vs TRUNCATE 区别及大表删除影响

文章目录 【作业2】DELETE vs TRUNCATE 区别及大表删除影响1. 二者的区别2. 大表删除表数据,对OS的影响?使用 DELETE 删除大表的影响:使用 TRUNCATE 删除大表的影响: 3. 大表数据删除的最佳实践方案1:分批删除 (推荐)方…

作者头像 李华
网站建设 2026/5/1 6:11:50

Visual Studio 里的 4 种命令行窗口到底有什么区别?别再选错了!

Visual Studio 里的 4 种命令行窗口到底有什么区别?别再选错了! 当你安装完 Visual Studio 的 C 开发环境(MSVC),打开开始菜单想找命令行编译代码时,你可能会被眼前这一排长得像孪生兄弟的快捷方式搞懵&am…

作者头像 李华