一、SPI接口简介 SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使 MCU与各种外围设备以串行方式进行通信以交换信息
SPI有三个寄存器分别为:控制寄存器 SPCR,状态寄存器 SPSR,数据寄存器 SPDR
外围设备 FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器(如图一所示)和 MCU等
图一、ADC中的 SPI 二、SPI接口 一个典型的 SPI模块的核心部件是一个 8位的移位寄存器和一个 8位的数据寄存器 SPIDR
通过 SPI进行数据传送的设备有主 SPI和从 SPI之分,即 SPI传送在一个主 SPI和一个从 SPI之间进行
图二给出了两个 SPI模块相互连接、进行 SPI传送的示意图,图左边是一个主 SPI,图右边为一个从 SPI
图二、典型 SPI示意图 在 AN-877应用笔记中,对 spi的接口定义与典型 spi接口有所不同,AN-877使用一根线 SDIO代替了典型 SPI的 MISO和 MOSI,SS接口用 CSB代替
图三和图四分别是双线模式下单器件控制(主从一对一)和双线模式下多器件控制(主从一对多)
图三:主从一对一控制 图四:主从一对多控制 不管是典型SPI还是三引脚SPI,其基本原理都是一样的,都是主SPI通过SDIO(或MISO与MOSI)将数据传递到从SPI中,通过从SPI控制功能模块
一般来说ADC中的SPI指的是模块中的从SPI极其接口,主SPI可以使用MCU或者单片机实现
主SPI不属于器件的部分,可以不用考虑,操作起来比较简单
从SPI由指令移位寄存器、指令数据缓存器、寄存器控制逻辑、寄存器构成,如图五所示
主SPI发送过来的串行数据先依次进入指令移位寄存器,指令移位寄存器再依次将数据传送到指令缓存器
寄存器控制逻辑根据MSB优先