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

    文章

    1759

    浏览量

    155911
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1900

    浏览量

    102133
  • 模组
    +关注

    关注

    6

    文章

    1797

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU 模组Air1601/Air1602规格简介

    Air1601/Air1602 为基于 ARM Cortex‑M7 的 MCU 模组,以图像处理、UI 交互与高速数据传输为核心能力。模组集成图形加速引擎,配备多路外设接口,适用于工业
    的头像 发表于 04-01 11:49 176次阅读
    MCU <b class='flag-5'>模组</b>—<b class='flag-5'>Air</b>1601/<b class='flag-5'>Air</b>1602规格简介

    蓝牙模组Air5101s规格介绍

    Air5101S 是一款超小型低功耗蓝牙透传模组,尺寸为 6×15.3×2.25mm,基于 BLE 5.2 技术打造,采用工业级设计,搭配简洁 AT 指令集。可与现有 4G 模组(如 Air
    的头像 发表于 03-16 21:57 153次阅读
    蓝牙<b class='flag-5'>模组</b><b class='flag-5'>Air</b>5101s规格介绍

    猛!合宙MCU模组Air1601/1602双星出击!

    在嵌入式开发中,你是否曾面临这样的困境:高清UI渲染依赖昂贵高端芯片、图像处理卡顿、多网通信协同复杂、工业级稳定设计繁琐……合宙Air1601/Air1602系列MCU模组应运而生:—
    的头像 发表于 02-13 14:05 874次阅读
    猛!合宙MCU<b class='flag-5'>模组</b>:<b class='flag-5'>Air</b>1601/1602双星出击!

    RA MCU众测宝典 | 在瑞萨CPKCOR-RA8D1B核心板上实现QSPI读取外部Flash

    RA生态工作室关注我们“RAMCU众测宝典”中I2C/SPI通信与显示驱动专题更新了。这次我们聚焦瑞萨【CPKCOR-RA8D1B核心板】开发板,一步步实现QSPI读取外部Flash
    的头像 发表于 02-06 18:02 5493次阅读
    RA MCU众测宝典 | 在瑞萨CPKCOR-RA8D1B核心板上实现QSPI读取<b class='flag-5'>外部</b><b class='flag-5'>Flash</b>

    深入解析Rockchip SFC驱动:SPI Flash传输流程与问题排查指南

    在嵌入式系统中,SPI Flash凭借小巧、低功耗、高速的特性,广泛用于存储固件、配置参数等关键数据。Rockchip作为主流嵌入式SOC厂商,提供了专门的 SFC(Serial Flash
    的头像 发表于 02-04 07:13 813次阅读
    深入解析Rockchip SFC驱动:<b class='flag-5'>SPI</b> <b class='flag-5'>Flash</b>传输流程与问题排查指南

    SPI NOR FlashSPI NAND Flash存储芯片的区别

    SPI NOR FlashSPI NAND Flash并非相互替代,而是互补关系。SPI NOR胜在读取速度快、使用简单、可靠性高,是代码
    的头像 发表于 01-29 16:58 867次阅读
    <b class='flag-5'>SPI</b> NOR <b class='flag-5'>Flash</b>和<b class='flag-5'>SPI</b> NAND <b class='flag-5'>Flash</b>存储芯片的区别

    国产SPI NOR Flash接口闪存介绍

    在当今各类电子设备对存储性能要求日益提升的背景下,SPI NOR Flash凭借其高速读取、低功耗及灵活接口等优势,成为嵌入式系统代码存储的关键元件。GT25Q系列SPI NOR Flash
    的头像 发表于 12-26 11:51 652次阅读

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

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

    CW32L012实现外部flash下载算法

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

    为ING916添加外部Flash扩充容量

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