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

    文章

    1715

    浏览量

    154738
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1867

    浏览量

    99884
  • 模组
    +关注

    关注

    6

    文章

    1721

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 1912次阅读
    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 214次阅读

    CW32L012实现外部flash下载算法

    外部flash或者内置的片上flash,都是编译器通过调用写好的FLM文件来实现下载,单片机内部的安装pack包就会有(官方实现),外部flash
    的头像 发表于 10-09 17:38 1224次阅读
    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 527次阅读
    <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 1158次阅读

    为ING916添加外部Flash扩充容量

    SPI0 配置到专门的高速管脚可获得最高的传输速率。建议结合项目需要,确定 ING916 和 NOR Flash 的选型。
    的头像 发表于 08-19 15:32 1449次阅读
    为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 2667次阅读
    瑞萨RA8D1 MCU的OSPI <b class='flag-5'>Flash</b>适配指南

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

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

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

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

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

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

    定位模组Air201——快速实现打电话!

    今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。 VoLTE通话功能示例   Air201模组的4G通信功能,通过VoLTE技术实现高清语音通话,支持音频编解码、硅麦输入和喇叭输出。在通话
    的头像 发表于 12-16 15:23 1136次阅读
    定位<b class='flag-5'>模组</b><b class='flag-5'>Air201</b>——快速实现打电话!

    定位模组也能打电话?Air201带你快速实现!

    今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。
    的头像 发表于 12-14 16:25 1080次阅读
    定位<b class='flag-5'>模组</b>也能打电话?<b class='flag-5'>Air201</b>带你快速实现!

    掌握4G模组SPI|技术指南

    本次我要分享的是4G模组SPI的技术指南,以合宙Air724UG为例,学完本章帮你实现技术提升。
    的头像 发表于 12-14 09:38 1952次阅读
    掌握4G<b class='flag-5'>模组</b><b class='flag-5'>SPI</b>|技术指南

    深入了解Air201定位模块的电池问题!

    今天主要分享Air201电池相关问题,希望对大家的实际应用开发有所帮助。
    的头像 发表于 12-14 09:32 900次阅读
    深入了解<b class='flag-5'>Air201</b>定位模块的电池问题!