一、SPI概述

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

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

(1)MOSI(MasterOutSlaveIn):主设备发送数据,外设接收数据。

(2)MISO(MasterInSlaveOut):外设发送数据,主设备接收数据。

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

(4)SS(SlaveSelect):选择特定的从设备进行通信。

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

二、演示功能

本文使用Air780E核心板的SPI总线读写FLASH。

三、硬件环境

3.1 Air780E开发板

3.2 TYPE-C线快充线

3.3 杜邦线

购买链接(数量:6)

3.4 USB延长线

购买链接(数量:1)

3.5 FLASH模块

购买链接(数量:1,注意,一定要选W25Q64型号)

3.6 16针2.54MM间距排针

购买链接(数量:2)

四、软件环境

注:以下软件下载链接,请复制后,粘贴到浏览器URL地址栏进行下载;

4.1 Luatools

Luatools日志打印与程序烧录软件下载

4.2 core固件和源码脚本

注:core固件,是基础环境,该固件由合宙官方提供,用户不可修改;源码脚本,为应用程序,可由客户自行修改;

五、软硬件资料

1、Air780E开发板原理图,打开Air780E产品手册,访问页面中的《EVB_Air780X_V1.6.zip》

2、Air780E开发板使用说明,打开Air780E产品手册,访问页面中的《开发板Core_Air780E使用说明V1.0.5.pdf》

3、API使用介绍说明

5.1 开发板按钮与指示灯图示与说明

BOOT按钮:启动引导,主要用于进入程序下载模式;

复位按钮:系统复位;

开机按钮:冷起动,用于给4G模块开机;

电源指示:供电后常亮,红色;

网络行指示:入网后常亮,翠绿色;

5.2 硬件安装与连接

5.2.1 SIM卡安装

5.2.2 实物连接图

5.2.2.1 线序定义与颜色对应

5.2.2.2 FLASH端

5.2.2.3 开发板端

六、代码示例介绍

6.1 程序流程图

6.2 完整程序清单

注:完整复制后保存为main.lua,可直接使用。

七、功能验证

7.1 开机

按图1进行连接无误后,开发板电源指示红灯常亮,网络指示灯灭,此时按下开机键,约2秒后释放,等待几秒网络指示绿灯常亮,即开机成功,如下图:

7.2 打开Luatool软件工具并进入项目管理测试页面

7.3 按序号步骤,创建项目

7.4 按如下步骤进行程序烧录

7.5 确认烧录结果

7.6 关闭下载页面,并回到查看日志页面

八、总结

至此,我们已使用Air780E开发板的SPI接口完成了对W25Q64读写操作。

SPI接口,如何对W25Q64进行读写操作?深度解析的更多相关文章

  1. spring-data-redis的事务操作深度解析--原来客户端库还可以攒够了事务命令再发?

    一.官方文档 简单介绍下redis的几个事务命令: redis事务四大指令: MULTI.EXEC.DISCARD.WATCH. 这四个指令构成了redis事务处理的基础. 1.MULTI用来组装一个 ...

  2. SPI 用户空间的读写操作

    spi_device 虽然用户空间不需要直接用到spi_device结构体,但是这个结构体和用户空间的程序有密切的关系,理解它的成员有助于理解SPI设备节点的IOCTL命令,所以首先来介绍它.在内核中 ...

  3. SPI编程1:用户空间的读写操作

    spi_device 虽然用户空间不需要直接用到spi_device结构体,但是这个结构体和用户空间的程序有密切的关系,理解它的成员有助于理解SPI设备节点的IOCTL命令,所以首先来介绍它.在内核中 ...

  4. EEPROM的操作---SPI接口和I2C接口

    参考:http://blog.csdn.net/yuanlulu/article/details/6163106 ROM最初不能编程,出厂什么内容就永远什么内容,不灵活.后来出现了PROM,可以自己写 ...

  5. STC8A8K64S4A12通过SPI接口操作基于ST7920的LCD12864液晶模块

    文章地址:https://www.cnblogs.com/jqdy/p/12665430.html 1. 硬件连接 1.1 64引脚的STC8A8K64S4A12 使用的是最小核心板,所以引脚皆引出可 ...

  6. flash读写学习笔记与spi接口及简单测试验证(三)

    FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的 ...

  7. CC3000 SPI接口编程介绍

    CC3000 SPI 操作: CC3000的SPI 是基于五根线CLCK,CSn,IRQ,MISO,MOSI:通信模式如下图: CLCK:时钟频率0-26M从主机到从机,提供SPI接口时钟 CSn:低 ...

  8. SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)

    SPI接口扫盲   douqingl@gmail.com   为何要写这篇文档?百度上找出来的SPI接口中文描述都说的太过简略,没有一篇文档能够详尽的将SPI介绍清楚的.wikipedia英文版[注释 ...

  9. 嵌入式物联网之SPI接口原理与配置

    本实验采用W25Q64芯片 W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb.该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件.W25Q64将8M字节的容量分为 ...

  10. Blackfin DSP(五):BF533的SPI接口

    533SPI的特性 最高速度可达SCLK/4: 支持主模式和从模式: 可使用8个GPIO口作为从选择线: 1 slave select input pins 7 slave select output ...

随机推荐

  1. dataX是阿里开源的离线数据库同步工具

    dataX是阿里开源的离线数据库同步工具的使用 DataX介绍: DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.OD ...

  2. Python网页应用开发神器Dash 2.18.1稳定版本来啦

    本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master Gitee同步仓库地址:https://gitee.com/cnfeffer ...

  3. mongodb 中rs.stauts()命令参数解析

    转载请注明出处: rs.status()命令用于获取MongoDB副本集的状态信息.它提供了关于副本集中各个节点的详细信息,包括节点的健康状况.角色.选举状态等. 以下是查看一个mongo集群状态返回 ...

  4. MyBatis——案例——查询-查询详情

      查询-查询详情 (根据id获取商品全部信息(即商品对象))          1.编写Mapper接口方法:Brand selectById(int id);            2.编写SQL ...

  5. Session——基本使用

    Session    Session 原理 Session 使用细节      

  6. WebRTC 初探

    背景 我正在实现一个 FC 游戏网站, PC 用户仅需要配置键盘便能实现小伙伴们一起玩, 但是手机用户就比较麻烦了 传统的网页游戏都是通过 HTTP/WS 的方式实现联机, 对于服务器的负担还是比较重 ...

  7. (系列五).net8 中使用Dapper搭建底层仓储连接数据库(附源码)

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...

  8. 十三载求索续风华,数智化扬帆启新航 | 万字长文回顾DTC 2024

    4月13日下午,为期两天的第十三届数据技术嘉年华(DTC 2024)在北京新云南皇冠假日酒店圆满落下帷幕.本次大会由中国数据库联盟与墨天轮社区联合主办,以"智能·云原生·一体化--DB与AI ...

  9. 墨天轮访谈 | 百度云邱学达:GaiaDB如何解决云上场景的业务需求?

    分享嘉宾:邱学达 百度云原生数据库资深技术专家 整理:墨天轮社区 导读 业务上云的大背景对弹性与可靠性的要求越来越高,传统架构的单机数据库或是分片数据库已经很难支撑快速增长的业务,导致单机瓶颈.扩容缩 ...

  10. ⼯作⾥中的token是怎么管理的?

    我们公司的token管理都是通过vuex配合本地存储来做的,使⽤vuex是因为token数据⽐较特殊,在很多 模块中都可能会⽤到,vuex⽅便管理,配合本地存储⽐如localstorage,是因为vu ...