主要内容

金宝app支持SPI通信

SPI或串行外设接口是在短距离之间的高速设备之间同步,全双工串行通信协议。SPI协议支持一个或多个从站的单个金宝app主站。主站可以与总线上的任何从站通信,但每个从站都可以仅与主设备通信。

的SPI WriteRead块金宝app®金宝app支持Arduino的支持包®硬件/通用库可以与其他SPI设备通信。只有当您使用Arduino硬件作为主设备时,才能使用此块。通过Arduino Due板,您可以连接到多达三个不同的SPI从设备。您只能连接到一个SPI从设备与所有其他Arduino板。

用spi,你可以:

  • 将各种传感器连接到Arduino板,以测量不同的量,如温度,压力。

  • 将各种屏蔽连接到Arduino板,以增强WiFi屏蔽等功能。

  • 访问SD卡以存储数据或扩展可用内存。

您可以设置SPI属性,例如SPI时钟输出频率(以MHz),SPI模式和位顺序配置参数>硬件实现>SPI属性部分。

SPI线路

SPI使用四线串行总线进行通信:MISO,MOSI,SCK和SS。所有设备都是含义,MOSI和SCK行。SS线对每个从站特定。

  • 味噌(驻地中的主站) - 这行是用于将数据发送到SPI主站的从属线。

  • 莫斯(Master Out Slave) - 这行是用于将数据发送到SPI外围设备的主线路。

  • SCK(串行时钟) - 主设备生成同步数据传输的时钟脉冲。

  • SS.(从属选择) - 这是特定于设备的。这是每个设备上的PIN,所以SPI主站可以用于启用和禁用设备。该信号是“有效低”信号,表示当其SS引脚设置为低时,设备成为从设备。

在电路串行编程(ICSP)头上的SPI线在所有Arduino板上是一致的,如下所示。

数据传输

  • SPI主机设置具有由SPI从站支持的频率的时钟,主站想要通信。金宝app

  • 主机通过将SS引脚设置为低(0)来选择从设备。主站可以一次只选择一个从站。

  • 由于每个SPI传输都是全双工传输,主机在MOSI线路上发送一点,并且从机读取它。从站也在MISO线上发出一点,主人读取它。

    当主设备进行数据传输时,从站无法选择退出发送数据。但是,当通信是一种方式时,从设备发送虚拟字节(通常为1S或所有0S)。同样,当主站从从机读取数据时,从设备知道忽略主发送的数据。

  • 当传输完成后,主站将停止切换SCK并大大拉起SS以取消选择从站。

  • 在数据传输期间,尚未选择的SPI总线上的其他从站忽略了SCK和MOSI信号,并且不会驱动MISO。

SPI转移模式

SPI主站设置时钟极性和时钟阶段。

时钟极性(CPOL)-为总线空闲时SCK信号的默认值(HIGH/LOW)。

CPOL = 0表示总线空闲时SCK的默认值低。CPOL = 1表示公共汽车空闲时SCK的默认高值。

时钟相(CPHA)- 表示时钟数据在SCK的前导(第一)或尾随(第二)边缘采样时采样。

CPHA = 0表示SCK的前缘和CPHA = 1表示SCK的后缘的样本,无论时钟边缘是否上升或下降。

极性和相位的组合称为SPI模式。表中显示了0到3的SPI模式。

模式 时钟极性(CPOL) 所有Arduino板的时钟相位(cpa) 时钟相(CPHA)Arduino到期
0. 0. 0. 1
1 0. 1 0.
2 1 0. 1
3. 1 1 0.

模式0.

模式1

模式2.

模式3.