当前位置: 首页 > news >正文

SPI通信协议

一、SPI通信

1、SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线

2、四根通信线SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)

3、同步,全双工

4、支持总线挂载多设备(一主多从

5、硬件电路

(1)所有SPI设备的SCK、MOSI、MISO分别连在一起

(2)主机另外引出多条SS控制线,分别接到各从机的SS引脚

(3)输出引脚配置为推挽输出输入引脚配置为浮空或上拉输入

6、移位示意图

7、SPI时序基本单元

(1)起始条件:SS从高电平切换到低电平

(2)终止条件:SS从低电平切换到高电平

(3)交换一个字节(模式0

        CPOL=0空闲状态时,SCK为低电平

        CPHA=0SCK第一个边沿移入数据,第二个边沿移出数据

        CPOL表示时钟极性

        CPHA表示时钟相位,决定是第一个时钟采样移入还是第二个时钟采样移入

(4)交换一个字节(模式1

        CPOL=0空闲状态时,SCK为低电平

        CPHA=1SCK第一个边沿移出数据,第二个边沿移入数据

(5)交换一个字节(模式2

        CPOL=1空闲状态时,SCK为高电平

        CPHA=0SCK第一个边沿移入数据,第二个边沿移出数据

(6)交换一个字节(模式3

        CPOL=1空闲状态时,SCK为高电平

        CPHA=1SCK第一个边沿移出数据,第二个边沿移入数据

8、SPI时序

(1)发送指令

        向SS指定的设备,发送指令0x06

(2)指定地址写

        向SS指定的设备,发送写指令0x02),      随后在指定地址(Address[23:0])下,写入指定数据(Data)

 

(3)指定地址读

        向SS指定的设备,发送读指令0x03),      随后在指定地址(Address[23:0])下,读取从机数据(Data)

二、W25Q64简介

1、W25Q64简介

(1)W25Qxx系列是一种低成本小型化使用简单非易失性存储器,常应用于数据存储字库存储固件程序存储等场景

(2)存储介质:Nor Flash(闪存)

(3)时钟频率80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI)

(4)存储容量(24位地址):     

                W25Q40:      4Mbit / 512KByte     

                W25Q80:      8Mbit / 1MByte     

                W25Q16:      16Mbit / 2MByte     

                W25Q32:      32Mbit / 4MByte     

                W25Q64:      64Mbit / 8MByte     

                W25Q128:  128Mbit / 16MByte     

                W25Q256:  256Mbit / 32MByte

2、硬件电路

3、W25Q64框图

4、Flash操作注意事项

(1)写入操作时:

        a.写入操作前,必须先进行写使能

        b.每个数据位只能由1改写为0,不能由0改写为1

        c.写入数据前必须先擦除擦除后,所有数据位变为1

        d.擦除必须按最小擦除单元进行(最小的擦除单元是一个扇区)

        e.连续写入多字节时,最多写入一页的数据超过页尾位置的数据会回到页首覆盖写入

        f.写入操作结束后,芯片进入忙状态不响应新的读写操作

(2)读取操作时:

        a.直接调用读取时序无需使能无需额外操作没有页的限制,读取操作结束后不会进入忙状态,但不能在忙状态时读取

三、软件SPI读写W25Q64

1、按照以下接线方式连接,并将STLINK插到电脑上

2、

四、SPI外设简介

五、硬件SPI读写W25Q64

1、SPI引脚

http://www.lryc.cn/news/372699.html

相关文章:

  • 【免费Web系列】大家好 ,今天是Web课程的第二一天点赞收藏关注,持续更新作品 !
  • 【单片机毕业设计选题24007】-基于STM32和阿里云的家庭健康数据监测系统
  • 基于微信公众号开发h5的前端流程
  • python操作数据库,django操作数据库
  • React框架资源
  • 【数据结构】初识数据结构之复杂度与链表
  • word怎么单页横向设置(页码不连续版)
  • 搭建 Tomcat 集群【Nginx 负载均衡】
  • 深入理解指针(二)
  • 【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
  • 换卡槽=停机?新手机号使用指南!
  • 主题切换之根元素CSS自定义类
  • 如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
  • selenium execute_script常用方法汇总
  • 如何选择最佳的APP封装平台-小猪APP分发为您解忧
  • Linux基础 (十八):Libevent 库的安装与使用
  • 冒泡排序的详细介绍 , 以及c , python , Java的实现方法
  • 使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署
  • 给你一个扫码支付的二维码,如何写测试用例?
  • 计算机专业在未来的发展与抉择
  • 【Linux】基础IO——文件描述符,重定向
  • 1.0 Android中Activity的基础知识
  • 线代知识点总结
  • 案例学习-存量更新规划实施探索(武汉)
  • C#操作MySQL从入门到精通(17)——使用联结
  • MyBatis 关于查询语句上配置的详细内容
  • 基于STM32和人工智能的智能家居监控系统
  • 这三款使用的视频、图片设计工具,提供工作效率
  • [Algorithm][贪心][最长递增子序列][递增的三元子序列][最长连续递增序列][买卖股票的最佳时机][买卖股票的最佳时机Ⅱ]详细讲解
  • 手把手教你入门vue+springboot开发(三)--登录功能后端