SPI库

SPI库

SPI接口简介

如何接线

两块UNO开发板通过SPI通讯

使用SPI协议控制AD5206数字电位器

SPI库函数

您可以使用Arduino官方自带的SPI库将Arduino作为主设备,从而与其他SPI设备(从)进行SPI通信或多设备间的SPI通讯。

 

使用此库之前,您需要使用以下语句进行引入

在开始之前,请大家建立一个主从的概念,即一个主设备,多个从设备,主设备可以决定与任意一个从设备进行通讯

 

SPI接口简介

 

串行外围设备接口(SPI)是微控制器使用的同步串行数据协议,用于在短距离内快速与一个或多个外围设备进行通信。它也可以用于两个开发板之间相互的通信。

使用SPI连接,总是有一个主设备(通常是微控制器)来控制外围设备。通常,所有设备共用以下三条线:

  • MISO(Master In Slave Out)-从机线路,用于向主机发送数据,
  • MOSI(Master Out Slave In)-主机线路,用于向外围设备发送数据,
  • SCK(串行时钟)-同步主机产生的数据传输的时钟脉冲

 

每个从设备专用的一条线:

  • SS(从设备选择)-主设备可用此引脚来决定启用或禁用指定设备。

当从设备的CS引脚为低电平时,它与主机通信。同理CS引脚电平为高时,它将忽略连接到CS引脚的设备, 不与之进行数据交互。

 

如何接线

为了方便大家参考,下表列出了不同Arduino板上的SPI的连线:

 

各开发板SPI引脚定义 Arduino SPI协议 太极创客
各开发板SPI引脚定义

您可以根据自己的开发板类型进行连线

ICSPHeader Arduino SPI协议 太极创客

基于AVR的板上的从选择(SS)引脚的说明

所有基于AVR的板都有一个SS引脚,当它们充当由外部主机控制的从机时,该引脚很有用。由于该库仅支持主模式,因此该引脚应始终设置为OUTPUT,否则硬件会自动将SPI接口设置为从模式,从而使库无法工作。

此外,您也可以将任何引脚用作从设备的选择引脚(SS)。例如,Arduino以太网扩展板使用引脚10控制到板载SD卡的SPI连接,并使用引脚10控制到以太网控制器的连接。

 

 

两块UNO开发板通过SPI通讯

两块Arduino UNO R3开发板通过SPI进行通讯,则需要其中一块作为主设备,另外一块(或多块)作为从设备,同时两块开发板需要共地连接.

电路连接

UNO板间通讯(SPI) Arduino SPI协议 太极创客
UNO板间通讯(SPI)

 

示例程序
主设备

从设备

效果演示
UNO板间通讯(SPI)效果演示 Arduino SPI协议 太极创客
UNO板间通讯(SPI)效果演示

UNO板间通讯(SPI)效果演示 Arduino SPI协议 太极创客
UNO板间通讯(SPI)效果演示
Arduino
SPI协议
太极创客

使用SPI协议控制AD5206数字电位器

在本教程中,您将学习如何使用串行外设接口(SPI)控制AD5206数字电位器。

当您需要通过电子方式而不是手动方式改变电路中的电阻时,数字电位计非常有用。示例应用包括LED调光,音频信号调节和音调生成。在本示例中,我们将使用六通道数字电位器来控制六个LED的亮度。我们将介绍实现SPI通信的步骤,可以将其修改为与其他大多数SPI设备一起使用。太极创客团队 / Taichi-Maker (www.taichi-maker.com)

所需硬件
  • Arduino或Genuino板
  • AD5206数字电位器
  • 6个LED
  • 6个220欧姆电阻
  • 杜邦线
  • 面包板
AD5206数字电位器简介

AD5206是6信道数字电位器。内置了六个可变电阻器(电位计),可用于单独电子控制。芯片上的六个内部可变电阻器中的每一个都有三个引脚,它们的连接可以像使用机械电位计一样。各个可变电阻器引脚分别标记为Ax、Bx、Wx、A1、B1、W1太极创客团队 / Taichi-Maker (www.taichi-maker.com)

例如,在本教程中,我们将每个可变电阻器当作一个分压器,方法是将一个侧面引脚(引脚B)拉高,将另一个侧面引脚(引脚A)拉低,然后取中心引脚(Wiper)的可变电压输出。在这种情况下,AD5206提供的最大电阻为10k欧姆,以255(最大为255,最小为0)数值进行数据输出。太极创客团队 / Taichi-Maker (www.taichi-maker.com)

单击获取AD5206的数据表

以下将AD5206数字电位器的一些基本信息列出

AD5206模块信息 Arduino SPI协议 太极创客
AD5206模块信息

电路连接
AD5206_arduino_电路连接 Arduino SPI协议 太极创客
AD5206_arduino_电路连接

原理图

AD5206_arduino_电路连接原理图 Arduino SPI协议 太极创客
AD5206_arduino_电路连接原理图

示例程序
太极创客团队 / Taichi-Maker (www.taichi-maker.com)

 

SPI库函数

  1. SPISettings
  1. begin
  1. end
  1. beginTransaction
  1. endTransaction
  1. setBitOrder太极创客团队 / Taichi-Maker (www.taichi-maker.com)
  1. setClockDivider
  1. setDataMode
  1. transfer
  1. usingInterrupt太极创客团队 / Taichi-Maker (www.taichi-maker.com)