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

    文章

    1618

    浏览量

    147705
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1696

    浏览量

    91276
  • 模组
    +关注

    关注

    6

    文章

    1427

    浏览量

    30264
收藏 人收藏

    评论

    相关推荐

    LuatOS入门课|Air201模组SPI Flash的交互艺术

    今天我会把我了解的关于如何使用SPI读写外部Flash教给大家,本文将通过Air201+扩展板读写外部f
    的头像 发表于 11-17 09:51 116次阅读
    LuatOS入门课|<b class='flag-5'>Air201</b><b class='flag-5'>模组</b>与<b class='flag-5'>SPI</b> <b class='flag-5'>Flash</b>的交互艺术

    Air201:MQTT实用示例的终极指南

    今天我们学习的是关于Air201的MQTT实用示例的终极指南。
    的头像 发表于 11-07 19:30 78次阅读
    <b class='flag-5'>Air201</b>:MQTT实用示例的终极指南

    你要的录音&amp;播放录音功能,直接用!Air201资产定位模组LuatOS快速入门

    ​ 超低功耗、精准定位、快速量产——迷你小巧的合宙Air201,正给越来越多的行业客户带来高效开发体验。 此前有小伙伴问:是否支持录音、播放录音功能? 高集成化设计的Air201自带了ES8311
    的头像 发表于 09-27 07:06 216次阅读
    你要的录音&amp;播放录音功能,直接用!<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS快速入门

    合宙Air201资产定位模组LuatOS课程(六):PWRKEY控制解决关机难问题

    进一步学习合宙Air201应用示例**——PWRKEY控制关机功能** ** PWRKEY控制关机功能** [ ] 编辑 合宙Air201资产定位模组 ——是一个集成超低功耗4G通信
    的头像 发表于 09-18 07:06 348次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS课程(六):PWRKEY控制解决关机难问题

    合宙Air201资产定位模组LuatOS快速入门(五):玩转扩展库,温湿度传感器篇!

    、I2C、UART等多种接口全部支持。 本期,我们将学习合宙Air201的扩展应用之一 ——I2C驱动AHT10温湿度传感器 Air201驱动AHT10温湿度传感器 ​ 编辑 合宙Air201资产定位
    的头像 发表于 09-18 07:05 267次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS快速入门(五):玩转扩展库,温湿度传感器篇!

    合宙Air201资产定位模组LuatOS课程:远程控制

    趣的——远程控制点灯! Air201远程控制点灯教程   合宙Air201资产定位模组——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音
    的头像 发表于 09-14 16:28 1026次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS课程:远程控制

    合宙Air201资产定位模组LuatOS课程:点灯仪式

    定位模组——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。 内部集成高效、简单、可靠的LuatOS语言,旨在帮助客户降低开发难度,降低研发成本,以及打造超小超低功耗的精品产品。 合宙
    的头像 发表于 09-14 16:24 263次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS课程:点灯仪式

    合宙Air201资产定位模组LuatOS快速入门:GPS/LBS/Wi-Fi定位,全安排!​

    教程   合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。 内部集成高效、简单、可靠的LuatOS语言,旨在帮助客户降低开发难
    的头像 发表于 09-14 07:56 346次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS快速入门:GPS/LBS/Wi-Fi定位,全安排!​

    资产定位 | 合宙Air201模组LuatOS快速入门01-hello world

    合宙的Air201模组,功耗低,品质稳定,购买样品也方便,且资料全开放。
    的头像 发表于 09-13 15:21 303次阅读
    资产定位 | 合宙<b class='flag-5'>Air201</b><b class='flag-5'>模组</b>LuatOS快速入门01-hello world

    玩转扩展库,温湿度传感器篇!—合宙Air201资产定位模组LuatOS快速入门05

    Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放
    的头像 发表于 09-12 12:11 357次阅读
    玩转扩展库,温湿度传感器篇!—合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS快速入门05

    GPS/LBS/Wi-Fi定位,全安排!—合宙Air201资产定位模组LuatOS快速入门04

    程/固件。   Air201定位示例教程     合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能
    的头像 发表于 09-12 12:04 1036次阅读
    GPS/LBS/Wi-Fi定位,全安排!—合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS快速入门04

    远程控制,就是这么简单—合宙Air201资产定位模组LuatOS快速入门03

    控制点灯!     Air201远程控制点灯教程   合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等
    的头像 发表于 09-12 11:54 227次阅读
    远程控制,就是这么简单—合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b>LuatOS快速入门03

    合宙Air201定位模组,千万不要忘记设置这个......

    合宙Air201定位模组,千万不要忘记设置这个:AT+WIFILOC设置wifi定位优先
    的头像 发表于 08-09 18:01 1345次阅读
    合宙<b class='flag-5'>Air201</b>定位<b class='flag-5'>模组</b>,千万不要忘记设置这个......

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到内存死机如何分析简介本文档适用于合宙Air780E、
    的头像 发表于 07-19 16:07 470次阅读
    <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模块遇到内存死机如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

    Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析简介本文档适用于合宙Air780E、
    的头像 发表于 07-19 15:37 553次阅读
    <b class='flag-5'>Air</b>780E/<b class='flag-5'>Air</b>780EP/<b class='flag-5'>Air</b>780EQ/<b class='flag-5'>Air201</b>模块遇到死机问题如何分析