SPI传输速度快80M,富家子弟最简单最快速完成

SCK-时钟

MOSI主机输出(DO),从机输入

MISO(DI)

SS Slave Select(CS Chip Select)从机选择线,低电平有效,从高电平到低电平就是协议起始信号,反之是结束信号

只支持一主多从,

SPI通信基础:主从机的移位寄存器交换字节  (硬件电路的话高低位先行可选择)

流程(时钟上升沿,移位寄存器向左移位;下降沿采样写入移位寄存器)

只发送:对接收到的数据不处理就行

只接收:发送0XFF

交换多个字节的话,重复绿框内的就行

SPI没有应答机制

W25Q64   64Mbit/8MByte   Nor Flash    非易失

指定地址,读、写入数据;也可以使用地址指针自动+1连续读、写

IO0-3  对应多重SPI

HOLD 数据保持          WP写保护   需要用的话就接GPIO,不需要的话就接VCC

数据划分:块Block(每块64KB - 一共128块)   -   扇区Sector(4KB -16 )   -    页(256Bit - 16)[对于整个存储空间]

W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节

EEPROM  可以按字节修改

SPI控制逻辑:芯片管理员,执行指令,读写数据

状态寄存器:忙状态,写使能,写保护等

写入芯片的数据会先到特有的256-Byte RAM页缓冲区,然后再花时间刻骨铭心写入FLASH,会置忙碌标志位,此时不会响应新的读写时序

FLASH   FF表示空白,还没进行写入   ;最小一个扇区4KB擦除, 使用频率高的数据整体取出来放到RAM,使用完后再写入FLASH

这个芯片不能跨页写入,但可以跨页读

硬件SPI

常用8位数据帧,高位先行

pclk外设时钟,APB2的pclk为72M;  时钟频率为固定的分频后数值

SPI1挂载APB2,SPI2挂载APB1(36M)

IIS是一种数字音频信号传输协议(数据-IIS协议-音频解码器DAC【芯片】)

【移位寄存器右移-低位先行由LSBFIRST控制位决定(0高位。1低位)】数据低位,一位一位从MOSI移出  ;MISO的数据,一位一位移入左边的高位

主从模式变换灵活

接收缓冲区RDR, 发送缓冲区TDR,占用同一个地址,统称DR

数据传输接收流程:数据先写入TDR,然后移位寄存器空闲的话直接转入移位寄存器(TXE=1)开始移位,同时也进行接收,同时下一个数据也会提前写到TDR中等候

数据移出完成时接收的数据也同时完成,接收的数据会转到RDR(RXNE=1接收寄存器非空),此时需要尽快把数据读出(在下个数据到达之前)

SPI 全双工,发送接收寄存器分离,因为数据交换,所以移位寄存器通用
IIC 半双工,发送接收不同时,共用 发送接收寄存器移位寄存器
USART 全双工,发送接收寄存器分离,移位寄存器分离

NSS主从配置:多个STM32的NSS相连,可配置成输出或输入,当配置为输出,且输出低的时候,自己为主机,其他为从机,也可以配置为输入,接收其他人的输出信号。一旦通过此方法“揪住别人的小辫子”,发送数据就是群发,若要指定还需要地址

硬件SPI,可选择连续传输与非连续传输,后者优点,容易封装,好理解,好用,缺点:性能有些损失(高频下严重)  。前者好用但复杂

前者:发送数据1,发送数据2(等候),接收数据1            后者,发送数据1,接收数据1

解除调试端口的方法:视频6-4

协议SPI:四线同步全双工 W25Qxx的更多相关文章

  1. 协议——SPI

    SPI(Serial Peripheral interface)是由摩托罗拉公司定义的一种串行外围设备接口,是一种高速.全双工.同步的通信总线,只需要四根信号线即可,节约引脚,同时有利于PCB的布局. ...

  2. SPI、I2C、UART三种串行总线协议的区别

    第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous R ...

  3. SPI、IIC、IIS、UART、CAN、SDIO、GPIO、USB总线协议

    SPI.IIC.IIS.UART.CAN.SDIO.GPIO总线协议 SPI(Serial Peripheral Interface:串行外设接口)SPI总线由三条信号线组成:串行时钟(SCLK).串 ...

  4. 【转】SPI总线协议

    SPI总线协议 By Xiaomin | April 17, 2016| 技术 概述 SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总 ...

  5. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  6. SPI协议及IO模拟

    SPI协议 SPI协议网上资料比较多,但是也比较乱,当初在网上搜集的错误资料导致现在比较混乱. SPI协议资料比较正规的是: 1.SPI的规约协议英文文档,例如<摩托罗拉spi协议规范> ...

  7. 亿级日PV的魅族云同步的核心协议与架构实践(转)

    云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天 ...

  8. SyncML 同步协议 感谢 周鹏(我只是做一个备份)

    SyncML 同步协议(SyncML Sync Protocol) 翻译周鹏 2006-1-24 摘要 本规范定义了SyncML客户和服务的同步协议. 它规范了怎样使用SynML表示层协议去完成Syn ...

  9. 亿级日PV的魅族云同步的核心协议与架构实践

    声明:本文根据msup和魅族联合举办的<第三期魅族技术开放日-架构设计与优化>录音整理原创首发,转载或节选内容前需获授权. 嘉宾:沈辉煌,魅族高级架构师,魅族云同步负责人.2010年加入魅 ...

  10. Multi-Paxos协议日志同步应用

    使用Multi-Paxos协议的日志同步与恢复 基于Basic-Paxos协议的日志同步方案, 所有成员的身份都是平等的, 任何成员都可以提出日志持久化的提案, 并且尝试在成员组中进行持久化. 而在实 ...

随机推荐

  1. 在k8s中,有哪些存储?

    在 Kubernetes(简称 K8s)中,有多种内置和外部的存储解决方案,它们可以满足不同场景下的持久化存储需求.以下是一些常见的存储类型: PersistentVolume (PV): Persi ...

  2. Java并发(二十三)----同步模式之保护性暂停

    1.定义 即 Guarded Suspension,用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从 ...

  3. 小知识:MySQL配置文件优先级

    今天在RHEL7上,严格按之前的安装规范文档,部署MySQL环境时,发现通过服务的方式启动MySQL失败: 关键错误是: log-error set to '/var/log/mariadb/mari ...

  4. Java Calendar 多用,日期 加减

    服务需要订购一个月,订购一个月 不等于增加 30天:若是1,3,5的话应该 31天,要善用 Calendar public static void main(String[] args) throws ...

  5. Windows终端的一些配置

    前言 记录早前拿到新的笔记本(win10)后配置命令行的过程,以下是环境: 命令行 : CMD,PowerShell7 Shell :Windows Terminal 设置编码格式(当前代码页)为UT ...

  6. burpsuit+adb+逍遥模拟器

    安卓7之后,单纯的将burpsuit的证书导出手动安装到模拟器中已经不行了,app可以只信任指定证书和系统内置的证书,后续用户安装的证书是不生效的,只能想办法装到系统内部 需要将证书通过openssl ...

  7. JS leetcode 有多少小于当前数字的数字 解题分析,你应该了解的桶排序

    壹 ❀ 引 刷题其实一直没断,只是这两天懒得整理题目...那么今天来记录一道前天做的题,题目本身不难,不过拓展起来还是有些东西可以讲,题目来自leetcode有多少小于当前数字的数字,题目描述如下: ...

  8. NC20115 [HNOI2015]菜肴制作

    题目链接 题目 题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号 ...

  9. Python中用With open as 实现对文件的操作

    with open as f在Python中用来读写文件(夹). 基本写法如下: with open(文件名,模式)as f: f.write(内容)#写操作 例:with open ('这个文章.t ...

  10. SpringBoot+Shiro+LayUI权限管理系统项目-7.实现用户管理

    1.说明 只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取. 2.功能展示 包括用户增删改查和分配角色. 3.业务模型 @Data @EqualsAndHashCode(callSuper ...