spi. interface Tutorial.

spi.接口 (串行外围界面) 总线是高速,3线串行通信协议(如果您包含SSN,请参阅下文)。它的 继电器目的是通过更换替换PCB线路路线 传统的平行总线与串行接口。 (你可以吧 管理8位总线通过几层PCB路由,但当您时 到达16,32位,更难以变得更加困难)。

连接是:

  • MOSI(Master Out Slave)[SDO]。
  • 味噌(在奴隶中的主人)[SDI]。
  • SCK(从时钟)[SCK]。 
  • SS_N(从属选择)。

            [] - 表示PIC命名法

笔记: 最后一个信号SS或从属选择与协议分开,并且通常以微控制器实现为启用控制引脚。它在这里包括完整性。

spi. PIC接口允许使用高速串行接口连接外围设备。 SPI Flash. 内存和SPI SRAM可以很容易地添加到任何系统中。其他类型的设备包括:

  • ADC。
  • DAC。
  • 闪光。
  • EEPROM。
  • 加速度计。
  • LCD。
  • 温度& Humidity sensors.
  • ...还有很多。

它的 只有其他真正的竞争是I2C巴士,这就是你经常看到的原因 这些接口可在处理器和微控制器上使用。 

spi.接口是在20世纪70年代的摩托罗拉设计的,他们在68000中使用它 处理器,许多其他制造商都被迅速采用了Defacto标准。 

它 is intended for 将数据从主设备传输到一个或多个从站 在短距离和高速(MHz)上的设备。

怎么运行的

它通过在两个设备之间的时间传输数据,其中主设备在发送时钟信号(SCK)之间。时钟控制数据传输的定时。

数据(MOSI [SDO])在主SPI设备中的移位寄存器以及时钟信号(SCK)中发送,同时另一个移位寄存器从从机接收数据(MISO,[SDI])。

主站始终控制并使用时钟信号启动数据传输。使用单独的从属选择信号选择从设备,该信号是软件控制的i.e.这些信号与SPI硬件模块分开。

笔记: 协议未定义位数,因此您不限于仅使用8 - 它可以是任何数量的位。当菊花链接SPI从站时,这非常有用,以便将位数设置为每个设备所需的所有位的总和。

笔记: spi.定义单个主系统。

替代协议IIC允许 多个总线主人 operation.

spi.接口时钟定义

spi.时钟没有定义 - 意味着不同的从设备可以承担不同的时钟操作;一个从站可能需要高的空闲时钟,而另一个从时钟可能需要低电平的空闲状态。其他人会对上升沿作出反应,而其他人则对下降沿作出反应!

spi.接口Protocl通过让您将这些详细信息进行编程到SPI硬件模块来解决此问题。

以下图像显示SPI的PIC接口(其他微控制器中的所有SPI硬件模块都将允许使用不同寄存器的相同操作)。

spi.接口PIC信号(来自PIC数据表DS39582B的提取物)

由您通过从选择信号激活时为您设置正确的时钟(或者在单个从站的情况下始终选择,所以将没有从选择信号)。

arduino. SPI连接

下图显示了SPI连接的接口,也恰好是Arduino板上的编程连接器(ICSP),允许直接编程Atmega328p。

1 - 味噌

2 - VCC.

3 - SCK 

4 - MOSI.

5 - 重置

6 - GND.

arduino. Uno R3上的SPI连接器的位置

照片来源 : 肯辛_王 (mod shows ICSP)

不同的SPI接口操作模式

使用SPI接口有三种方法

  1. 单主机 - 单奴隶。
  2. 单个主机 - 选择多个从站 - 选择。
  3. 单程大师 - 多个奴隶 - Dasiy Chained。

单主机 - 单奴隶。

 以下是单个SPI设备连接的设置:

笔记: 芯片选择信号SS对于单个设备系统是可选的 因为你通常会绑定SS 在从设备上输入(如果其他线路专用于SPI使用)。

SIP界面 : Using chip selects

使用此方案,您可以使用以下控制每个从设备使用 它的芯片选择线(通常是有效的低红色箭头显示控制 线)。禁用时 Data output from the 从奴隶进入高阻抗状态,所以它不会干扰 the 当前选择的奴隶和奴隶'忽略了数据输入(检查 datasheet).

该方案的优点是您可以考虑(控制)每个设备 当您将其与菊花链方法进行比较时,允许连接需要不同时钟方案的SPI设备。

如果您有使用不同时钟操作的SPI从站(边缘/空闲状态),您可以在启用特定的CS之前重新编程主SPI硬件模块,因此每个从站都有正确的信号发送到它。

如果使用菊花链方法,则需要确保所有芯片都使用相同的时钟边缘和空闲时钟状态。

spi. Interface : Daisy chaining

使用此方案,主服务器发送的所有数据都会转移到所有设备中,并且每个设备发送的所有数据都被移出到下一个(由红色虚线箭头所示)。对于这个方案来说,您必须确保每个从站以相同的方式使用时钟 而且你必须得到正确的位数,所以软件有更多的工作要做。

笔记: 菊花链方法的优点是您为每个从SPI设备保存芯片选择信号。

更多信息 维基百科.

spi.接口雏菊链

spi.雏菊链示例

使用几个HC595芯片,菊花链连接,在不使用许多微控制器引脚的情况下可用的输出数量轻松增加。

操作限制是HC的速度,SPI输出的速度。也是设计考虑因素。如果驱动一组必须每20ms更新的LED。

平行与串行spi

交易 之间 使用并行接口和SPI 界面是 速度 e.g. if you 在200ksps上读取并行12位ADC,然后您可以读取设备 一个200khz的速率,但如果你想使用spi获得相同的数据速率 您需要串行速度为200khz x 12 = 2.4mHz。所以 实际折衷是速度和后果 噪音 introduced into the circuit.

概括

spi.接口定义了一种非常流行的协议,以高速工作。主要问题是从设备不受任何特定时钟方案绑定,因此它们可以彼此不同地操作,并且可以使控制它们难以为每个设备正确设置时钟空闲和边缘。

优点:

  • 高速。
  • ExRemely简单的界面,很容易在软件中复制。

缺点:

  • 奴隶芯片可以免费采用他们所需的任何时钟方案。

新的! Comments

让你说到你刚刚阅读的东西!留下下面的框中的评论。

隐私政策 | 接触 | 关于我

网站地图 | 使用条款


ezoic.报告此广告

最近的文章

  1. 如何使用ADS1115

    01年4月21日07:07

    使用ADS1115精度16位ADC进行教程进行低功耗。

    阅读更多

  2. arduino.模拟输出...易模拟输出生成

    3月20日,21日11:13 AM

    arduino.模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。

    阅读更多

  3. 数号和等效的快速宏。加快代码!

    3月8日,晚上12:24

    了解DigitalWrite()的工作原理......现在使用17倍宏宏!

    阅读更多

  4. TCS230颜色传感芯片:如何运作以及如何使用它。

    2月15日,09:26 AM

    如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。

    阅读更多

  5. 如何使用ADXL345进行运动感测等。

    1月14日,21日04:39

    使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。

    阅读更多

  6. HMC5883L 3轴数字MAGENTOMTER如何运作

    1月14日,21日04:36 AM

    HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。

    阅读更多

订阅microzine时事通讯,

收集您的免费微控制器电子书,

下载项目代码等......