0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Air201模组教程:SPI通信与外部Flash的连接之道!

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-11-18 00:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天我们要学习的是Air201定位模组LuatOS快速入门,本文将通过Air201+扩展板读写外部flash的演示,教你使用SPI示例,可根据实际需求灵活应用。

我们先了解一些相关基础知识:

SPI(Serial Peripheral Interface)——是一种同步串行通信协议,广泛应用于微控制器和外围设备之间的数据传输。它由摩托罗拉公司开发,具有全双工通信能力,即可以同时进行数据的发送和接收。

SPI通信通常涉及四条信号线:

MOSI(Master Out Slave In):
主设备发送数据,外设接收数据。

MISO(Master In Slave Out):
外设发送数据,主设备接收数据。

SCLK(Serial Clock):
由主设备生成的时钟信号,用于同步数据传输。

CS/SS(Chip/Slave Select):
选择特定的从设备进行通信。

SPI的优点包括简单的硬件连接、高速数据传输和全双工通信。其缺点是通常需要更多的引脚,尤其是在多个从设备的情况下,每个从设备需要一个独立的CS引脚。此外,SPI没有标准化的协议层,因此设备间的兼容性需要仔细管理。

接下来,我们讲解SPI示例的具体使用。

1. 搭建环境

新同学建议先看前期的基础知识相关教程,更有助于理解和操作。

可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/spi的脚本。

1.1 硬件准备:

Air201 PCBA

Air201-BTB扩展板(带一个FPC线)

SIM

带有数据通信功能的数据线

Win10及以上PC

Flash模块:本文使用W25Q系列SPI Flash。

Air201通过FPC线连接BTB扩展板,BTB扩展板再连接FLASH模块。

SPI管脚定义详见:
https://docs.openluat.com/air201/luatos/hardware/design/btb/#spi

完整接线如下所示:

wKgaomc6F8GANI1dAAUySozHA5M860.png

1.2 软件准备:

LuaTools调试工具:
https://docs.openluat.com/Luatools

API接口说明:
https://docs.openluat.com/air201/luatos/api/core/spi

最新固件:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/core

最新脚本:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/spi

2. 示例代码介绍

使用克隆的代码进行测试,代码路径:
LuatOS-Air201demospi

程序流程如下图所示:

wKgZomc6F9mAUbWwAAMqpj8wow4961.png

2.1 初始化配置

SPI使用的是SPI0,CS使用的GPIO8,在初始化阶段,通常会将CS(GPIO8)拉高,表示当前没有选中任何从设备。

wKgaomc6F-yAL1ehAAJI0kkZwFk956.png

2.2 向FLASH写入数据

查看W25QX系列FLASH模块数据手册的命令集,先写使能命令0x06,再写页数据到地址0x000001。

wKgZomc6F_aAMz4bAAFf8VpJNN8004.png

2.3 从FLASH读取数据

查看W25QX系列FLASH模块数据手册的命令集,使用0x03命令,读取0x000001地址的数据,完成操作后关闭SPI。

wKgaomc6GAGAW8q_AAFMVlAZxoc837.png

2.4 完整例程展示

wKgZomc6GA6ANhPbAAPmHgh0VGE706.pngwKgaomc6GB-ADgVJAARGyquky8c477.pngwKgaomc6GC2AOfaVAAK6SRpo50Q500.png

3. 代码烧录

新同学可以查看参考详细烧录教程:
https://docs.openluat.com/Luatools/

固件版本不变的情况下,直接选择下载脚本即可。

wKgZomc6GD6AQ5sLAALG7pnxLNU684.png

4. 展示效果

wKgaomc6GEyAK76UAAXCvZh8j8E062.png

至此我们已经使用Air201的SPI接口,成功完成了对W25Q64 Flash存储器的读写操作。

今天的分享就到这里

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1718

    浏览量

    154800
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1868

    浏览量

    99971
  • 模组
    +关注

    关注

    6

    文章

    1721

    浏览量

    32062
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA实现基于SPI协议的Flash驱动控制芯片擦除

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 2106次阅读
    FPGA实现基于<b class='flag-5'>SPI</b>协议的<b class='flag-5'>Flash</b>驱动控制芯片擦除

    高性能SPI NOR FLASH芯片ZB25VQ系列推荐

    在嵌入式系统、物联网设备及各类存储应用中,SPI NOR FLASH芯片因其接口简单、功耗低、读写速度快等特点,成为代码存储与数据缓存的常见选择。SPI NOR FLASH是一种基于
    的头像 发表于 12-01 14:52 254次阅读

    CW32L012实现外部flash下载算法

    外部flash或者内置的片上flash,都是编译器通过调用写好的FLM文件来实现下载,单片机内部的安装pack包就会有(官方实现),外部flash
    的头像 发表于 10-09 17:38 1269次阅读
    CW32L012实现<b class='flag-5'>外部</b><b class='flag-5'>flash</b>下载算法

    SPI开发实战:硬件电路设计与CH390H应用全攻略

    Air780EPM的SPI功能支持 在Air780EPM中,SPI接口通过特定GPIO引脚实现,需结合LuatOS的API进行配置。通过合理设计和调试,可高效
    的头像 发表于 09-18 14:08 555次阅读
    <b class='flag-5'>SPI</b>开发实战:硬件电路设计与CH390H应用全攻略

    如何在 ART-Pi 平台使用 openocd 直接烧录到外部 spi flash

    ART-Pi 内置的 128Kb flash太小了,我现在在 Linux openocd 烧录程序,请问有没有人成功使用 openocd 可以直接烧写到外部 Quad spi flash
    发表于 09-15 07:32

    SPI NOR FLASH是什么,与SPI NAND Flash的区别

    SPI NOR FLASH是什么?   SPI NOR FLASH是一种非易失性存储器,它通过串行接口进行数据传输,具有读写速度快、可靠性高、体积小等优点。它采用类似SRAM的存储方式
    的头像 发表于 08-21 09:26 1187次阅读

    为ING916添加外部Flash扩充容量

    SPI0 配置到专门的高速管脚可获得最高的传输速率。建议结合项目需要,确定 ING916 和 NOR Flash 的选型。
    的头像 发表于 08-19 15:32 1458次阅读
    为ING916添加<b class='flag-5'>外部</b><b class='flag-5'>Flash</b>扩充容量

    瑞萨RA8D1 MCU的OSPI Flash适配指南

    OSPI Flash(Octal SPI Flash)是一种基于SPI(串行外设接口)扩展的高速串行Flash存储器,采用8-bit数据总线
    的头像 发表于 07-17 11:24 2696次阅读
    瑞萨RA8D1 MCU的OSPI <b class='flag-5'>Flash</b>适配指南

    使用英伟达 NVIDIA Air 服务将仿真与现实世界连接

    优势之一是能够将您的仿真与现实世界连接起来。通过启用外部连接,可以在您的环境中显著增强其功能、性能和灵活性。通过集成云资源、API、第三方数据、协作工具或高级机器学习模型,它可提高仿真的质量、规模和实时性。它还促进了协作并且可扩
    的头像 发表于 07-07 19:41 942次阅读
    使用英伟达 NVIDIA <b class='flag-5'>Air</b> 服务将仿真与现实世界<b class='flag-5'>连接</b>

    第十七章 SPI——读写串行FLASH

    本章介绍SPI协议,其为高速全双工通信总线,含物理层、协议层内容,还讲解W55MH32的SPI特性、初始化及DMA相关配置。
    的头像 发表于 06-19 17:06 1076次阅读
    第十七章 <b class='flag-5'>SPI</b>——读写串行<b class='flag-5'>FLASH</b>

    如何使用Keil将二进制文件加载到外部SPI Flash中?

    我想知道是否有办法使用 Keil 将随机二进制文件加载到外部 SPI 闪存中。二进制文件将通过 LPC54102(OM13077 EVK 板)。我知道一些用于 FPGA 的 ISE 允许您执行此作
    发表于 03-17 06:37

    ADS1259在SPI通信模式下,引脚怎么连接

    ADS1259在SPI通信模式下,RESET引脚是不是接高电平,START接电平,SYNCOUT通过电阻到地,CS,SCLK,DIN,DOUT接MCU,是这样连接的吗? 求大神指教
    发表于 01-17 07:08

    定时器已安排!开发小白看过来~

    本文将为您详细介绍Air201定时器的基本操作与设置,确保您轻松上手,包教包会! 在Air201模组搭载的LuatOS系统中,定时器(timer)是一项基础且关键的服务。 它允许开发者在特定的时间点
    的头像 发表于 12-31 14:30 783次阅读
    定时器已安排!开发小白看过来~

    抄作业!看门狗定时器必备知识

    Air201模组内部集成了硬件看门狗,今天就一起来聊聊~ 本文将带你了解看门狗的工作原理、应用架构、定时时间设置、软硬件看门狗的区别,以及看门狗定时器的典型应用场景及关键设计因素等内容。 同时通过
    的头像 发表于 12-30 14:44 1121次阅读
    抄作业!看门狗定时器必备知识

    通信模组为啥这么火?究竟什么是通信模组

    现代通信系统中,通信模组(CommunicationModule)是其重要的组成部分。通信模组是集成电路中的一部分,专用于处理和传输数据,从
    的头像 发表于 12-26 19:33 2746次阅读
    <b class='flag-5'>通信</b><b class='flag-5'>模组</b>为啥这么火?究竟什么是<b class='flag-5'>通信</b><b class='flag-5'>模组</b>?