最后更新:2022-03-14 17:25:04 手机定位技术交流文章
SPI协议是一个标准化的数据传输系统。
SPI具有以下显著特征:
主模式和从模式
双向模式
从模式选择输出
发生模式失败时中断 CPU 并显示错误信息的能力
双缓冲数据寄存器
有可编程杆和序列的时钟被称为序列钟。
SPI活动的等待模式控制
引脚描述:
MOSI: 当配置为主模块时, 此脚用于从 SPI 模块传输数据, 从 SPI 模块接收数据 。 (主输入)
MISO: 配置为 SPI 模块时, 从 SPI 模块传输数据, 配置为 主模块时接收数据 。 (主要出入口)
当 SPI 模块被配置为数据传输的主控件时, 当 SPI 模块被配置为数据传输的主控件时, SPI 被配置为接收选中信号的输入的控制时, SS( 低效力) 用于将选中的信号从 SPI 模块导出到另一个外部设置 。
那脚跟选择的一块一样
SCK: 此脚用于输出 SPI 传输数据或接收连接在时钟上的时钟 。
首先,我们必须理解两个概念:CCHA(钟阶段、钟阶段)和CPOL(钟政策、钟极)。
虽然SPI通信设备闲置,但时钟两极化被逆转。SCK信号线的平方信号(即当NSS线高、SPI通信开始时SCK状态)。CPOL=0 时,当SCK不受约束时,它的水平很低。CPOL=1 时,则相反。
当数据取样时, MOSI 或 MISO 数据行上的信号在 CHA=0 时在 SCK 钟线的“ 奇缘” 上取样。 当 CPHA=1 时, 数据行在 SCK 钟线的“ 偶边缘” 上取样 。
因此,SPI有以下四个时钟配置情况:
| 模式 | CLK |
|---|---|
| CPOL = 0;CPHA = 0 | 当SCK时钟是免费的,它是低水平的,数据线上的信号是沿着SCK时钟的奇特边缘取样的。 |
| CPOL = 1;CPHA = 0 | 当SCK是自由的,它是高层次的,数据线信号按照SCK时钟的奇特边缘取样。 |
| CPOL = 0;CPHA = 1 | 当SCK自由时,它是低水平的,数据线上的信号按照SCK时钟的平面进行抽样。 |
| CPOL = 1;CPHA = 1 | 当SCK自由时,它是高层次的,数据线上的信号按照SCK时钟的平面进行抽样。 |

从时序图可以看出,当CPHA等于零的时候,不管CCPOL是多少平等,这是SAMPLE 列中的样本项( 橙色盒)。这一切都在奇怪的边缘, 这一切都在奇怪的边缘。这表明,CPHA是影响抽样比值的唯一因素。因此,在我们开始采样之前 我们必须减少党卫军即进行片选。

从时序图可以看出,当CPHA等于1时,不管CCPOL是多少平等,这是SAMPLE 列中的样本项( 橙色盒)。所有样本都沿着直线边缘收集。这表明,CPHA是影响抽样比值的唯一因素。因此,在我们开始采样之前 我们必须减少党卫军即进行片选。
综上所述,可以得出结论,SPI比IIC更加自由,使开发商有更大的自由匹配余地。
例如,在写入 OLED 的 spi 时, 可能不需要将 MISO 添加到脚上, 而是将 DC (数据/ Command) 添加到脚上, 从而区分传输的数据和命令 。
让我们看看硬件 SPI 和软件模拟 SPI 现在。
让我们来看看一些SPM32硬件, 像STM32F103RCT6。

| BR[0:2] | SCK 频率(半频率)结果 |
|---|---|
| 000 | fpclk/2 |
| 001 | fpclk/4 |
| 010 | fpclk/8 |
| 011 | fpclk/16 |
| 100 | fpclk/32 |
| 101 | fpclk/64 |
| 110 | fpclk/128 |
| 111 | fpclk/256 |
数据控制模块:这一部分包括缓冲区接收、缓冲区发送和数据传输登记册。
发送数据的时候,数据传输登记册在缓冲区内将数据从一个传送到另一个;在收到数据后,数据传输登记册一对一地读取缓冲区内收到的数据。“ Control Repositor CR1” 中的“ DFF 位元” 也可以用来将每个数据框的长度设置为 8 或 16 位 。设置“LSBFIRST 位元”以选择是移动更高(MSBs)还是更低(LSBs)。
数据储存库(DR)可用于以书写SPI数据储存库的形式填充传输缓冲,接收缓冲可通过读取SPI数据储存库进入。
其余是与SPI有关的控制的一般配置。根据我们的配置,SPI变化的运作方法。除了与SPI有关的参数的基本配置外,还有SPI中断信号、DMA请求、NSS线设置等等。
管理下从选择( NSS) 脚或 SS 脚中选择胶片
有2种NSS模式:
• 软件NSS模式:这是通过在 SPI_CR1 登记册中配置 SSM 位置来实现的。内部NSS 信号级别可以通过在 SPI_CR1 中写入 SSI 位子来控制,而 SSI 位子可以用作替代功能。
• 硬件NSS模式,有两种选择:
- 当STM32是主机时,将启用NSS输出。SPI_CR2登记册的 SSOE 位还启用了NSS 输出 。NSS退役后所有NSS制导脚都与这一初级SPI制导的NSS制导连接,并配置为NSS-SPI硬件装置。将自动变成从机。当SPI设备必须提供广播数据时,它会这样做。它必须减少NSS信号通知东道主的所有其他设备;如果它不能减少NSS,这表明,公共汽车上还有另一个主要装置。因此,将发生硬件故障错误(硬件故障)。
_NSS 输出已被关闭:已授权在多个主机环境中运行。

野火 STM32微控制器

以下是关于接收和接收程序和活动的主要模式的说明:
(1) 指挥NSS信号线,该信号线产生第一个信号(没有在图片中显示),即首先删除NSS;
(2) 输入要传送到DR的数据,该数据将在传送缓冲区中保存。
(3) 通信开始,SCK时钟开始运行,MOSI一次从缓冲区发送数据,MISO一次将数据储存在接收缓冲区。
(4) 在传输数据框架时,在“国家登记册SR”中,“TXE标记”将设为1。表示传输完一帧,分配缓冲区也空缺。一旦你收集到数据"RXNE标记"将放在一个位置表示传输完一帧,接收缓冲区不是空的;软件清除这两个标记。
(5) 我们正等待“TXE标记”为1。如果您想继续发送数据,必须重复此进程。将数据再次写入数据存储库 DR; 等待“ RXNE 符号” 为 1 。读取“数据库DR”后,您将获得接收缓冲地带的内容。如果我们能阻止TXE或RXNE当 SPI 中断信号由 TXE 或 RXNE 设定为 1 时,输入与以前相同的中断服务功能。随着SPI服务计划的中断,登记册的位置可用于确定事件的性质。再分别进行处理。数据管理部也可接受数据存储库DR的数据并进行数据传输。
关于其他SPI飞机,偶尔会提到机器的数据手册;这种机器往往分为两类:
SPI软件是一种时间序列和通讯技术, 使用标准的 IO 嘴复制 SPI 。 我将用 SPM32CubeMX 来教你如何使用它 。
DC 使用它来区分写入数据和写入命令。
BLK 控制 LCD 背光灯 。
CS即片选
SCK即时钟
SDA表示MOSI信号线。
值得指出的是,在本案中,即使SCK时钟是高水平的,但免费的, 即CPOL=1, SCK=1, SCK=1, SCK=1, SCK=1, SCK=1, SCK=2, SCK=1, SCK=1, SCK=1, SCK=1。

用于写入 8 位数据的共同函数,入口数据dat,首先选中LCD,进入循环,对 Dat 高位位数的检查得出值为 1 或 0 。已经决定,内政部将产生1或0个或0个。这一切都发生在时钟脉搏的空间里一次循环结束后,dat左移一位,这是第一次我听说过它, 我从来没有见过它。准备下个周期在8次循环过后,8比特数据的传播已经完成。事实上,液晶显示器正在使用中。SPI只是关注以下职能:该段的其余部分将进一步阐述这一点。(在取样时,奇边缘和偶边缘之间没有明显的区别。 )
当然,可以从前一种推论中推断出,但是在LCD上没有MISO,所以简单地看一看。
例如,考虑制作16位数的数据集。
比如LCD写命令
仅根据SPI的基本协议,SPI可能不如IC复杂。只是有四种不同的设计然而,基本SPI将扩大协议,这取决于不同的选择。这更使方案拟订工作复杂化。然而,这也改善了协定的独立性。速率方面的话,同一芯片的硬件SPI比软件SPI快得多。
本文由 在线网速测试 整理编辑,转载请注明出处。