英创信息技术多路SPI从设备连接方法简介

描述

SPI是串行外设接口(Serial Peripheral Interface)的缩写,SPI是高速的全双工同步通讯总线,英创公司的所有工控主板都提供了一路4线SPI总线接口,4线包括片选信号(SPI_CSn)、时钟信号(SPI_SCLK)、数据输入(SPI_MISO)和数据输出(SPI_MOSI)信号。

SPI以主从方式工作,英创主板SPI接口工作在主模式,SPI_CSn是SPI从设备的使能控制信号,当从设备被SPI_CSn使能时,通过SPI总线对此设备的操作才有效,因此可以在同一条SPI总线上增加片选信号来连接多个SPI设备。

一个简单的增加片选的方法是使用GPIO来模拟SPI_CSn信号,在每传输一个数据之前,将相应的GPIO置低(假设从设备片选信号为低有效),选中对应的SPI从设备,传输结束后再将GPIO置高。SPI总线的连接如下图:

嵌入式主板

由于每传输一个字(8 - 32bits)都需要操作一次GPIO,所以使用GPIO模拟SPI片选的效率不高。同时这种方法不适用于SPI的DMA传输,仅适合数据量少、对传输速度要求不同的场合。

当SPI采用DMA模式进行高速数据传输时,数据传输过程由硬件控制,片选信号也由SPI硬件直接产生输出,所以无法实现利用GPIO模拟SPI片选,此时可通过硬件电路来扩展SPI片选信号。下面是采用3 - 8译码器扩展8路SPI的原理示意图。在与一个SPI Slave通讯之前,先设置好参与译码的GPIO,然后直接调用SPI读写API函数,当SPI_CSn由驱动程序置低时,相应的YX输出低电平,当SPI_CSn为高时,所有的YX都输出高电平。在与同一SPI设备进行批量数据传输时,只需要设置一次GPIO,与使用GPIO直接模拟片选信号相比,效率大大提高了。

嵌入式主板

英创工控主板的SPI接口可以支持60Mbps甚至更高的波特率,所以需要选择低延时的逻辑器件,同时英创工控的GPIO电平范围是0 - 3.3V,因此选择的器件也应该使用3.3V供电。上图所用的74LVC138A使用3.3V供电,而且输入与输出的延时小于3nS(Typ),满足SPI高速通讯的应用。最后附上74LVC138A的真值表如下:

嵌入式主板

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分