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

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

3天内不再提示

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

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-11-17 09:51 次阅读

今天我会把我了解的关于如何使用SPI读写外部Flash教给大家,本文将通过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

完整接线如下所示:

wKgaoWc4vHuAKMvSAAQZJF3wcdI465.pngwKgZoWc4vIqADUtyAAEaTGB4y1k388.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

程序流程如下图所示:

wKgZoWc4vKGARHdEAAMt23BiKUg773.png

2.1 初始化配置

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

wKgaoWc4vLGAXNfmAAJKUuOva70039.png

2.2 向FLASH写入数据

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

wKgZoWc4vL6AGRoeAAFgy5t7gNw231.png

2.3 从FLASH读取数据

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

wKgZomc4vMuAJ7lBAAFMMKZYT2A846.png

2.4 完整例程展示

wKgZomc4vNqAbU2AAAQB6zTlDVw781.pngwKgZomc4vOuALDTvAAQ2P0TyPIo853.pngwKgaomc4vPmAHKvgAAKuxt1rJ3E254.png

3. 代码烧录

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

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

wKgZomc4vQyAdU1eAAK_7kBDiHM340.png

4. 展示效果

wKgZomc4vRqALvHbAAXH_gegQjU301.png

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

分享完毕。

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

    关注

    10

    文章

    1632

    浏览量

    147908
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1706

    浏览量

    91479
  • 模组
    +关注

    关注

    6

    文章

    1484

    浏览量

    30355
  • LuatOS
    +关注

    关注

    0

    文章

    76

    浏览量

    1935
收藏 人收藏

    评论

    相关推荐

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

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

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

    很多小伙伴已经学习了前两期教程hello world、点灯,对合宙Air201这款低功耗资产定位模组LuatOS开发已有一定了解,大家的实操反馈是:真的很简单! 那么,这一期我们要一起体验更有
    的头像 发表于 09-14 16:28 1093次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b>课程:远程控制

    UART串口通信示例:开启通信宝藏之门的定位模组LuatOS入门

    今天我们要讲解的是UART串口通信示例,关于Air201资产定位模组LuatOS入门,我会从搭建环境、代码烧录、示例效果等来细说:
    的头像 发表于 11-03 19:55 885次阅读
    UART串口通信示例:开启通信宝藏之门的定位<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b><b class='flag-5'>入门</b>

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

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

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

    通过前两期教程hello world、点灯,大家对合宙Air201这款低功耗资产定位模组LuatOS开发已有一定了解,实操反馈是:真的很简单! 那么,这一期我们要一起体验更有趣的 ——远程
    的头像 发表于 09-12 11:54 269次阅读
    远程控制,就是这么简单—合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b>快速<b class='flag-5'>入门</b>03

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

    随着LuatOS快速入门系列教程的推出,小伙伴们学习热情高涨。 合宙Air201不仅支持三种定位方式,还具有丰富的扩展功能,通过外扩BTB链接方案,最多可支持21个IO接口:SPI、I
    的头像 发表于 09-12 12:11 414次阅读
    玩转扩展库,温湿度传感器篇!—合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b>快速<b class='flag-5'>入门</b>05

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

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

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

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

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

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

    合宙Air201资产定位模组LuatOS基础课程:FOTA远程升级,一键搞定!

    的实用示例**——FOTA远程升级** ** FOTA远程升级** [ ] 合宙Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。 内部集成高效、简单、可靠的
    的头像 发表于 09-18 18:07 394次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b>基础课程:FOTA远程升级,一键搞定!

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

    ​ 通过前面几期的学习,同学们的学习热情越来越高哇! 合宙Air201不仅支持[三种定位方式]"三种定位方式"),还具有丰富的扩展功能哦:通过外扩BTB链接方案,最多可支持21个IO接口:SPI
    的头像 发表于 09-18 07:05 318次阅读
    合宙<b class='flag-5'>Air201</b>资产定位<b class='flag-5'>模组</b><b class='flag-5'>LuatOS</b>快速<b class='flag-5'>入门</b>(五):玩转扩展库,温湿度传感器篇!

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

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

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

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

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

    今天我们要学习的是Air201定位模组LuatOS快速入门,本文将通过Air201+扩展板读写外部fla
    的头像 发表于 11-18 00:23 203次阅读
    <b class='flag-5'>Air201</b><b class='flag-5'>模组</b>教程:<b class='flag-5'>SPI</b>通信与外部<b class='flag-5'>Flash</b>的连接之道!

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

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