SPI 协议学习
1. SPI硬件知识
1.1 硬件连线
引脚含义如下:
引脚 | 含义 |
---|---|
DO(MOSI) | Master Output, Slave Input,SPI主控用来发出数据,SPI从设备用来接收数据 |
DI(MISO) | Master Input, Slave Output,SPI主控用来发出数据,SPI从设备用来接收数据 |
SCK | Serial Clock,时钟 |
CS | Chip Select,芯片选择引脚 |
1.2 SPI控制器内部结构
这个图等我们看完后面的SPI协议,再回过头来讲解:
2. SPI协议
2.1 传输示例
假设现在主控芯片要传输一个0x56数据给SPI Flash,时序如下:
首先CS0先拉低选中SPI Flash,0x56的二进制就是0b0101 0110,因此在每个SCK时钟周期,DO输出对应的电平。 SPI Flash会在每个时钟周期的上升沿读取D0上的电平。
2.2 SPI模式
在SPI协议中,有两个值来确定SPI的模式。 CPOL:表示SPICLK的初始电平,0为电平,1为高电平 CPHA:表示相位,即第一个还是第二个时钟沿采样数据,0为第一个时钟沿,1为第二个时钟沿
CPOL | CPHA | 模式 | 含义 |
---|---|---|---|
0 | 0 | 0 | SPICLK初始电平为低电平,在第一个时钟沿采样数据 |
0 | 1 | 1 | SPICLK初始电平为低电平,在第二个时钟沿采样数据 |
1 | 0 | 2 | SPICLK初始电平为高电平,在第一个时钟沿采样数据 |
1 | 1 | 3 | SPICLK初始电平为高电平,在第二个时钟沿采样数据 |
我们常用的是模式0和模式3,因为它们都是在上升沿采样数据,不用去在乎时钟的初始电平是什么,只要在上升沿采集数据就行。 |
极性选什么?格式选什么?通常去参考外接的模块的芯片手册。比如对于OLED,查看它的芯片手册时序部分:
SCLK的初始电平我们并不需要关心,只要保证在上升沿采样数据就行
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183355.html原文链接:https://javaforall.cn
相关文章
- 人脑90%都是自监督学习,AI大模型离模拟大脑还有多远?
- 嵌入式开发之mipi协议基础学习
- Radius协议-学习
- http协议学习
- DeepLog:基于深度学习的系统日志异常检测与诊断
- zigbee学习之路(十二):zigbee协议原理介绍
- 如何提高深度学习预测准确率
- 深入学习微服务网关Zuul源码解析,不来别后悔
- Q学习(Q-learning)入门小例子及python实现
- 使用机器学习创建自己的Emojis 表情
- 19. Groovy 面向对象编程-注解学习
- 【干货】刘知远:面向大规模知识图谱的表示学习技术
- 面向计算机视觉的深度学习:1~5
- 协议MongoDB: 学习二进制协议的入门(mongodb二进制)
- Linux下学习C语言编程之旅(linux中写c程序)
- 互助学习:Linux贴吧(linux贴吧)
- 快如闪电!学习MySQL批量插入技巧,让你高效处理大批量数据。(mysql批量插入)
- 到入门:学习Linux的正确姿势!(linux从实践)
- javascript学习基础笔记之DOM对象操作
- Android学习笔记——Menu介绍(一)