SPI协议学习心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、SPI
1、掌握SPI通信协议
2、了解W25Q64芯片读写操作
3、STM32SPI寄存器配置介绍
4、SPI操作FLASH程序分析
二、知识点
1、SPI协议:时序分析在数据手册,这里主要对应IIC进行比较说明
注意:一个是时序,一个是和外设的连接(4条SPI线)
SPI与IIC对比:
1)速度
SPI 4M 高速25M
IIC 100K 高速400K
2)硬件接口
SPI 数据线2根 收发分开,一根时钟线,一根片选线,一共4根线
IIC 两线制,SDA双向数据线,时钟线
3)外部引脚
SPI 外部不需要上拉,接也可以
IIC 外部一定要上拉
4)寻址方式/拓扑结构
SPI 多主多从 寻址方式不同:SPI通过片选线确定哪个芯片通信
每个设备一根片选线,一般低电平选中,所以SPI不适合接太多从设备,从设备增加,需要用到的IO就增加(译码器)
IIC 多主多从 IIC通过发送设备地址,确定哪个设备通信
主从设备增加,不需要增加IO
5)数据帧格式
SPI 一次能传输的位数理论上不限制,一般8位、16位,不存在起始信号、停止信号和应答信号,纯粹是普通的二进制数据流
IIC 有特定的帧格式,起始信号+地址+方向+数据,每次传输一个字节(固定),每个字节后面加一个应答位,传输结束是停止标志(停止位)
6)创造者
SPI MOTO
IIC 飞利浦
7)应用领域
SPI 大数据传输方面,对速度要求高的场合
IIC 少量数据传输场合
8)时序
IIC 起始信号,停止信号 数据阶段:一个始终传输一个位,只有唯一一种时序
SPI 全是数据阶段时序,没有其他信号,一个时钟传输一个位
时序有4种,由极性和相位决定时序类型
CPOL CPHA
极性 相位 时序类型 (SCK时钟线)
0 0 0
0 1 1
1 0 2
1 1 3
对SPI来讲,配置时序是重点,配置时序由所驱动的器件的时序决定
9)SPI主机IO称呼
MISO:当作主机时,为输入,从机时为输出方向
MOSI:当作主机时,为输出,从机时为输入方向
SCK: 同步时钟信号,决定了SPI速度
nCS: 从机片选(片选线),可以使用普通IO口,一般是低电平选中,用来选择通信的目标从设备
2、FLASH 1001 0011
FLASH的组成:页(page)-扇区(sector)-块(block)-片(chip) 1001 0011
flash写数据之前要擦除,擦除最小单位为扇区(有的操作是块擦除),擦除后,所有字节全部为1,也就是写操作时候只能把1改为0
3、W25Q64
W25Q64是华邦公司推出的大容量SPI FLASH产品,W25Q64的容量为64Mb,该系列还有W25Q80/16/32等。
W25Q64容量为64Mb,也就是8M字节。
W25Q64将8M的容量分为128个块(Block),每个块大小为64K字节,每个块又分为16个扇区(Sector),每个扇区4K个字节。
W25Q64的最少擦除单位为一个扇区,也就是每次必须擦除4K个字节。这样我们需要给W25Q64开辟一个至少4K的缓存区,这样对SRAM要求比较高,要求芯片必须有4K以上SRAM才能很好的操作。
W25Q64的擦写周期多达10W次,具有20年的数据保存期限,支持电压为2.7~3.6V,W25Q64支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可以到80Mhz(双输出时相当于160Mhz,四输出时相当于320M)
W25Q64 8M
8M(片)---->128*64K(块)---->16*4K(扇区)---->16*256(页)
作业:
1、SPI实现记录开机次数
2、记录上一次关机时灯的状态