SPI 协议学习

SPI 协议学习spi硬件协议学习

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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.net/183355.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows 技术篇-LDSGameMaster文件夹有什么用,删除方法

    Windows 技术篇-LDSGameMaster文件夹有什么用,删除方法LDS是鲁大师的拼写,应该是用过鲁大师,偷偷给你安装的。分析:没什么用,流氓程序,还很大占地方,4个G,可以放心的卸掉。卸载方法:找到里面的卸载程序来卸载,卸载完后把文件夹删除就好了。

    2022年6月14日
    79
  • linux下载文件命令sz_linux下载整个文件夹命令

    linux下载文件命令sz_linux下载整个文件夹命令wget是linux下一个从网络上自动下载文件的常用自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。一般的使用方法是:wget+空格+参数+要下载文件的url路径,例如:1wget http://www.linuxsense.org/xxxx/xxx.tar.gz-c参数,这个也非常

    2022年8月24日
    4
  • RPC协议了解

    RPC协议了解1.RPC概述RPC(RemoteProcedureCallProtocol)远程过程调用协议。通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个过程或函数,就像调用本地应用程序中的一样。正确的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。2.RPC特点:2.1)RPC是协议:协议意味着规范。目前典型的RPC实现包括Dubbo、Thrift、Herrty等。但这些实现往往都会附加其他重要功能,例如Dubbo还包括服务管理、访问权限

    2022年5月19日
    58
  • 4g模块连接阿里云_国外4G模块

    4g模块连接阿里云_国外4G模块作者:如果能编程回忆最后修改时间:2020年6月12日概述Air724模组内置TCP/IP协议栈,提供TCP客户端和服务器端服务(PS:模块没有公网IP所以服务端模式多用于专属VPN网络)。可使用AT指令,LUAT二次开发,CSDK,开源DTU等多种方式开发,开发者根据实际需求合理选择开发方式。AT指令通过AT指令使用TCP服务主要包含设备联网,配置连接,建立连接,发送数据等步骤,具体流程如图高清版TCP流程图.pdf![](https://imgconvert.csdnimg.cn/aHR0c

    2022年9月2日
    4
  • vs调用堆栈窗口在哪里_函数调用堆栈图

    vs调用堆栈窗口在哪里_函数调用堆栈图项目使用Cocos2d-JS,查看别人的代码时,如果完全靠翻代码的话,效率太低,而js代码又不能调试,所以使用打印堆栈的方法可以大大提高效率。

    2025年7月16日
    0
  • html格式转换word_html嵌入word

    html格式转换word_html嵌入word1基于wps直接将页面信息下载成word文档1publicvoidtest()2{34WPS.Applicationwps=null;5try6{7…

    2022年8月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号