完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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的真值表如下: |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-12 05:15 , Processed in 0.687899 second(s), Total 57, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191