锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

关于arduino与SPI

时间:2024-05-21 21:37:11

SPI的英文全称是:“Serial Peripheral Interface”,翻译成中文的意思是串口通信外围设备技术。也就是把数据用串口传输方式进行交换。它有一个主控制器,一般我们采用微处理器,比如常用的单片机,以及一些其它的外围设置,比如,液晶显示频,等外围设备。

它一般是由5根线组成的:分别是MOSI,MISO,SCK,SS以及地线,电源线。 MOSI:是由主机向设备发出数据的。 MISO:是由设备向主机发送数据的。 SCK:是起到一个控制数据传输的校准,根据arduino官方的说法,好像还具备有对数据全能的控制作用。 SS线是用于一根使能线,特别是接多个外围设备的时候,可以通过控制SS线,对不同的外围设备进行通信。 写一个程序关于 I必须注意的问题有: 1. 字节的传输是从最高位(MSB)传输,还是从最低位(LSB)传输呢?这是由 SPI.setBitOrder () 函数进行设置的。 2. 当数据不传输时,时钟线是高还是低3. 触发方式是上升沿触发还是下降沿触发呢 这个由 SPI.setDataMode() 函数进行设置。 4. SPI 运行的速度是多快呢?这个由 SPI.setClockDivider() 函数进行设置。 arduino2009 板上, 10 脚是 SS 11 脚是 MOSI, 12 脚是 MISO 13 脚是时钟引脚。当然在同时用这几根引脚控制多个外围设备的时候, SS 引脚可以是其它引脚,比如 arduinoEhthernet 模块,利用第 4 个引脚去控制 SD 卡的 SS 端。第 10 引脚控制 Enthernet 模块的 SS 端,下面是三种不同的硬件接法示意图:

这是auduino
只控制一个外围设备的接法。



这是数据传输的时序图。



这是第三种方法,主机控制多个外围设备的接法。上文提到的控制网络模块与SD
卡两个外围设备用的电路http://www.ruidan.com/mcu/2014.html就是这种电路。
这是另外一种接法,也是同时控制多个外围设备,但是这种占用到主机的引脚相对于第二种来说会少一点。 下面再补充几个上文没有说到的关于SPI的函数: SPI.begin() 作用是初始化SPI总线。设备SCK, MOSI,SS为输出。把SCKMOSI拉低,把SS线进行拉高。 SPI.end() 作用是结束SPI传输,或者准确地说是禁止SPI总线工作。 SPI.transfer(val) 作用是传输一个字节,这里要指出来的是val只能是字节。


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章