带有SPI接口的非接芯片开发心得

来源:互联网 发布:em10 mark iii 知乎 编辑:程序博客网 时间:2024/06/05 04:53

带有SPI接口的非接芯片开发心得

目前我们使用的非接芯片主要是通过SPI接口来实现通信的,因此本文结合非接芯片As39911和RC663对带有SPI接口的非接芯片操作做了一个总结,可供涉及相关领域的人员参考,同时欢迎与大家的讨论。同时文中也列些测试点,供项目相关人员快速定位问题、解决问题。芯片的具体应用功能不在讨论范围,主控芯片为SM32。

对于SPI接口芯片的操作问题主要归结为管脚配置、单/双工、主/从模式、8bit/16bit帧结构、时序配置、片选控制、波特率、高位/低位在前、CRC配置以及发送/接收模式配置(软件实现)。下面主要对容易出错的时序及发送/接收模式配置部分做深入探讨。

通常SPI通过4个引脚与外部器件相连,除此之外还有中断、复位信号。

●MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。从项目中的应用来看主控芯片为主设备,非接芯片为从设备。

● MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。

● SCK:时钟信号,由主控芯片产生。

● NSS:从设备选择。

对带有SPI接口的芯片进行操作时必须进行时序的配置,主从设备必须具有相同的时序。配置原理如下图1所示。


图1 SPI 接口时序图

对时序图分析后不难得出表1。

通过查看AS3911的芯片手册如图2可以发现,它是在时钟的第二个沿(下降沿)对数据进行采样,此时数据必须保持稳定,也就是满足所谓的建立保持时间,当然这个控制器已经帮我们设好了。因此参照表1,主控芯片的SPI接口必须设为CHPA = 1,CHPL=0。

         图2 AS3911 SPI接口写操作

同样的通过分析RC3911的时序如图3,可以看到对于RC663是在时钟第一个沿(上升沿)进行数据采样,同样的数据也需满足建立保持时间。参照表1,可以得到RC663的时序配置,CHPA = 0,CHPL= 0。


图3 RC663 SPI接口时序图

接下来分析As3911的SPI接口传输模式。从AS3911的芯片手册如表2可以看到AS3911的SPI接口传输模式结合芯片功能特性分为五种模式。其中包括写、读、载入FIFO、读FIFO以及直接指令模式。写模式前两个位为00,后6位为需要访问的地址位。读模式前两位为01,后6位为需要访问的地址。载入FIFO直接发送0X80,对应的读FIFO为0xBF。对直接指令模式前两位为11,后6位为需要发送的指令。

未完待续。

转载请注明出处http://blog.csdn.net/gungunchang/。



0 0