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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm永久激活码2021【中文破解版】

    (pycharm永久激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    53
  • c语言注释快捷键_c语言多行注释快捷键

    c语言注释快捷键_c语言多行注释快捷键//注释多行快捷键Ctrl+kctrl+l//解注释多行快捷键Ctrl+kctrl+u

    2022年8月15日
    23
  • 为什么下面老是流水出来是什么原因_integer.parseint和valueof

    为什么下面老是流水出来是什么原因_integer.parseint和valueofInteger.MAX_VALUE,十六进制位为0x7fffffff,二进制位:01111111111111111111111111111111;Integer.MIN_VALUE,即0x80000000,二进制位: 10000000000000000000000000000000;01111111111111111111111111111111+…

    2025年9月5日
    4
  • 数据库基础知识一(MySQL)[通俗易懂]

    数据库基础知识一(MySQL)[通俗易懂]数据库是研究数据管理的技术。即如何妥善地保存和科学地管理数据。数据管理是指对数据进行分类、组织、编码、存储、检索和维护等操作。数据管理技术好坏评判的标准:(1)数据冗余(2)数据共享(3)数据独立性(4)数据统一集中管理数据库:按一定结构组织存储的、集成的、可共享的数据的集合。数据库有两种类型:关系型数据库与非关系型数据库。关系型数据库:存储格式能直观地反映实体间的关系,和创…

    2022年4月19日
    51
  • 模糊数学基础_模糊数学及其应用

    模糊数学基础_模糊数学及其应用模糊数学基础文章目录模糊数学基础1.前言2.区分随机性和模糊性3.模糊数学的基本概念1.模糊集和隶属函数2.模糊集的表示3.确定隶属函数的方法4.与传统集合论的区分4.模糊数学的基本运算1.模糊集的运算2.模糊关系与运算1.关系与模糊关系2.模糊关系矩阵的运算3.python程序求解法1.前言1965年美国著名控制论专家发表了FuzzySets从而开创了模糊数学的基本概念用“隶属度”和“隶属函数”来描述差异的中间过渡,处理和刻画模糊现象.处理现实现象的数学模型可以分为三

    2025年8月4日
    5
  • 作用域插槽的使用(四个作用域的区别)

    什么是作用域插槽?其实就是带数据的插槽。父组件可以通过绑定数据传递给子组件,而作用域插槽可以通过子组件绑定数据传递给父组件。作用域的使用场景:既可以复用子组件的slot,又可以使slot内容不一致!代码如下:<divid=”app”><div><emp-list:emps=”empList”><templateslot=”emp”slot-scop..

    2022年4月15日
    69

发表回复

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

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