详解SPI协议
SPI是Serial Peripheral Interface的简称,是由Motorola公司推出的一种高速、全双工的总线协议,可以实现一对一、一对多芯片通信。
SPI接口信号
SPI由SCLK、CS/SSEL、MOSI,MISO四根线组成,
- SCLK,时钟信号,时钟频率即SPI速率,和SPI模式有关;
- MOSI,主机输出,从机输入;
- MISO,主机输入,从机输出;
- CS/SSEL,从机设备选择,低电平有效;
多从机模式
如果主机有多个片选CS端口,可采用下图模式,主机只能获取一个从机的MISO信号,其它从机输出信号须为高阻。
菊花链连接,节省GPIO、节省布线面积,但需要保证从机支持菊花链模式。
菊花链的数据传输时序:通过移位 送达数据。
QSPI协议
QSPI协议读写时序:
注意,很多人写公众号都没说清楚,为什么SPI能做到全双工,而有些QSPI不能呢?
因为从下面时序图可看到,发送时,待发送数据的一组8bit寄存器只在下降沿向左移位(高位先发,低位补充0即可),那么必然存在另一组8bit寄存器用以在上升沿接收数据,这样就可以构成全双工,而QSPI一般用FIFO/SRAM进行数据传输,基于成本考虑,一般只能半双工。
SPI工作模式根据时钟极性CPOL(Clock Polarity)、时钟相位CPHA(Clock Phase),SPI有4种模式,最广泛使用的是模式0和3:
官方时序图如下:
CPOL=0 CPHA=0(常用)
CPOL=0,SPICLK空闲状态为低电平;
CPHA=0,SPICLK第一个边沿(上升沿)采集数据、第二个沿输出数据;
CPOL=1, CPHA=1 (常用)
CPOL=1,SPICLK空闲状态为高电平;
CPHA=1,SPICLK第二个边沿(上升沿)采集数据、第三个沿输出数据;
CPOL=0,CPHA=1 (不常用)
CPOL=0,SPICLK空闲状态为低电平;
CPHA=1,SPICLK第二个边沿(下升沿)采集数据、第三个沿输出数据;
CPOL=1,CPHA=0
(不常用)
CPOL=1,SPICLK空闲状态为高电平;
CPHA=0,SPICLK第一个边沿(下升沿)采集数据、第二个沿输出数据;
感谢阅读,别走!点赞、关注、转发后再走吧
转载:全栈芯片工程师
- 分享
- 举报
-
浏览量:3290次2020-08-05 20:46:02
-
浏览量:2805次2020-07-20 20:14:23
-
浏览量:2492次2020-07-20 19:03:11
-
浏览量:3215次2020-07-20 19:36:33
-
浏览量:2474次2020-07-21 18:59:28
-
浏览量:631次2024-03-06 15:44:49
-
浏览量:4458次2022-08-17 09:01:18
-
浏览量:7408次2021-06-09 14:29:23
-
浏览量:7819次2021-06-09 14:49:23
-
浏览量:7371次2021-05-11 17:51:48
-
浏览量:10160次2021-06-08 17:32:00
-
浏览量:2363次2023-06-12 14:34:18
-
浏览量:6690次2022-04-01 09:00:15
-
浏览量:6189次2021-04-06 20:09:36
-
浏览量:3183次2020-08-07 17:39:59
-
浏览量:3230次2020-08-04 17:37:01
-
浏览量:504次2024-02-21 17:14:02
-
浏览量:5865次2021-04-08 16:25:20
-
浏览量:12278次2020-12-02 22:49:48
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
david
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明