协议SPI:四线同步全双工 W25Qxx
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的更多相关文章
- 协议——SPI
SPI(Serial Peripheral interface)是由摩托罗拉公司定义的一种串行外围设备接口,是一种高速.全双工.同步的通信总线,只需要四根信号线即可,节约引脚,同时有利于PCB的布局. ...
- SPI、I2C、UART三种串行总线协议的区别
第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous R ...
- SPI、IIC、IIS、UART、CAN、SDIO、GPIO、USB总线协议
SPI.IIC.IIS.UART.CAN.SDIO.GPIO总线协议 SPI(Serial Peripheral Interface:串行外设接口)SPI总线由三条信号线组成:串行时钟(SCLK).串 ...
- 【转】SPI总线协议
SPI总线协议 By Xiaomin | April 17, 2016| 技术 概述 SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总 ...
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)
SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...
- SPI协议及IO模拟
SPI协议 SPI协议网上资料比较多,但是也比较乱,当初在网上搜集的错误资料导致现在比较混乱. SPI协议资料比较正规的是: 1.SPI的规约协议英文文档,例如<摩托罗拉spi协议规范> ...
- 亿级日PV的魅族云同步的核心协议与架构实践(转)
云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天 ...
- SyncML 同步协议 感谢 周鹏(我只是做一个备份)
SyncML 同步协议(SyncML Sync Protocol) 翻译周鹏 2006-1-24 摘要 本规范定义了SyncML客户和服务的同步协议. 它规范了怎样使用SynML表示层协议去完成Syn ...
- 亿级日PV的魅族云同步的核心协议与架构实践
声明:本文根据msup和魅族联合举办的<第三期魅族技术开放日-架构设计与优化>录音整理原创首发,转载或节选内容前需获授权. 嘉宾:沈辉煌,魅族高级架构师,魅族云同步负责人.2010年加入魅 ...
- Multi-Paxos协议日志同步应用
使用Multi-Paxos协议的日志同步与恢复 基于Basic-Paxos协议的日志同步方案, 所有成员的身份都是平等的, 任何成员都可以提出日志持久化的提案, 并且尝试在成员组中进行持久化. 而在实 ...
随机推荐
- Apache Typecho框架启用地址重写
地址重写有利于SEO优化,开启地址重写可以去掉Typecho框架中的index.php后缀,该后缀如下. 第一步,进到apache配置文件目录下cat /etc/httpd/conf/httpd.co ...
- yarn常用命令
1. 安装 npm install yarn -g 2. 设置淘宝镜像 yarn config set npmRegistryServer https://registry.npm.taobao.or ...
- “I/O多路复用”和“异步I/O”的前世今生
曾经的VIP服务在网络的初期,网民很少,服务器完全无压力,那时的技术也没有现在先进,通常用一个线程来全程跟踪处理一个请求.因为这样最简单.其实代码实现大家都知道,就是服务器上有个ServerSocke ...
- C++中,new与malloc的区别何在?(代码实验向)
在C++中,new与malloc()都可用于在堆中分配一块内存.其中,new是C++的语法,而malloc则来自古老的C语言,二者在使用时有何区别? new会调用构造函数,而malloc()不会 假设 ...
- YOLO数据集划分(测试集和验证集)
在目标检测任务中,数据集的划分通常分为训练集和验证集,以便在训练模型时评估模型的性能.这个过程对于有效训练和评估目标检测模型非常重要.下面是划分目标检测数据集的一般步骤:`` 数据集组织: 确保你的数 ...
- ElasticSearch7.3学习(十七)----搜索结果字段解析及time_out字段解析
1.搜索结果字段解析 首先插入一条测试数据 PUT /my_index/_doc/1 { "title": "2019-09-10" } 然后无条件搜索所有 G ...
- 解决每次 git pull/push 时都需要输入账号和密码的问题
问题 在提交代码或者拉取代码的时候,如果每次git都要输入用户名密码 解决方法 1. 终端输入 git config --global credential.helper store 2. 在git ...
- Delphi 官方 MD5
去官方文档搜就行了,引入System.Hash 单元: http://docwiki.embarcadero.com/Libraries/Athens/en/System.Hash.THashMD5 ...
- SSD 简介—— NAND 芯片介绍
制作 存储芯片的制作和其他芯片制作大致相同,从沙子中提取单晶硅制作晶圆再封装芯片. 闪存芯片从架构上分为NOR和NAND NOR Flash的source line把每个cell都并联起来,而NAND ...
- C++检测句柄的权限
主要是依靠NtQueryObject函数,其中需要传入ObjectBasicInformation参数 PUBLIC_OBJECT_BASIC_INFORMATION结构包含可用于对象的全部信息的子集 ...