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. C++ Qt开发:运用QJSON模块解析数据

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QJs ...

  2. WebAssembly入门笔记[4]:利用Global传递全局变量

    利用WebAssembly的导入导出功能可以灵活地实现宿主JavaScript程序与加载的单个wasm模块之间的交互,那么如何在宿主程序与多个wasm之间传递和共享数据呢?这就需要使用到Global这 ...

  3. TStringList,的IndexOf,find,IndexOfName 例子

    a=wokao b=in c=wori d=ri e=我靠 f=我插 procedure TForm1.Button1Click(Sender: TObject); var MyList: TStri ...

  4. 《ASP.NET Core 微服务实战》-- 读书笔记(第12章)

    第 12 章 设计汇总 微服务开发并不是要学习 C#.Java 或者 Go 编程--而是要学习如何开发应用以适应并充分利用弹性伸缩环境的优势,它们对托管环境没有偏好,并能瞬间启停 换句话说,我们要学习 ...

  5. 回顾复习之背包DP

    \(\small{(本文统一将c[i]视作cost,w[i]视作worth,下面的代码用这两个变量表示费用和价值)}\) \(\Large\textbf{1. 01背包}\) \(\large\tex ...

  6. Educational Codeforces Round 136 (Rated for Div. 2) A-E

    比赛链接 A 题解 知识点:模拟. 所有点都跑一遍即可. 另外可以不模拟, \(\geq 2*2\) 的情况都可以摆在 \((2,2)\) 这个点,其他摆在 \((1,1)\) . 时间复杂度 \(O ...

  7. NC207781 迁徙过程中的河流

    题目链接 题目 题目描述 牛市的幸存的先民在流星雨之后就忍痛离开了这片土地,选择迁徙,在迁徙的途中,他们需要渡过一条河.因为牛市的树木在流星雨中被严重破坏,所以他们只造出了一艘小船,船太小了,一次只能 ...

  8. Linux 中hdparm命令使用说明——带实例

    详解Linux中hdparm命令查看硬盘信息的用法 功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ][-a ][-A <0或1>][-c ][-d ...

  9. 【framework】WMS启动流程

    1 前言 ​ WMS 是 WindowManagerService 的简称. (1)WMS 主要职责 窗口管理:负责启动.添加.删除窗口,管理窗口大小.层级,核心成员有:WindowContainer ...

  10. Springboot thymeleaf实战总结

    介绍 以下总结了使用Thymeleaf做项目过程中碰到的有价值的知识点.拿出来分享! 1.配置context-path 在公共模板中添加: <script type="text/jav ...