AM62x的SPI总线怎么用?
TI AM62x处理器拥有4路SPI以及1路QSPI,丰富的SPI接口可以同时接多个设备,飞凌OK6254-C开发板的NOR Flash就接在了OSPI(QSPI)总线上。
一、SPI的工作流程和时序
在介绍AM62x的SPI之前,我们先来了解一下SPI是如何工作的。通常SPI通过4个引脚与外部器件相连:
MISO:
主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据;
MOSI:
主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据;
CLK:
串口时钟,作为主设备的输出,从设备的输入;
NSS:
从设备选择。这是一个可选的引脚,用来选择从设备。
SPI的工作流程是这样的——
主机先将NSS信号拉低,这样保证开始接收数据;
当接收端检测到时钟的边沿信号时,它将立即读取数据线上的信号,这样就得到了一位数据(1bit);
由于时钟是随数据一起发送的,因此指定数据的传输速度并不重要,尽管设备将具有可以运行的最高速度;
主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机;
主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送。
SPI工作时序图如下:
二、AM62x中SPI总线的特点
在AM62x这款芯片中,TI将SPI的MISO与MOSI设计为d0和d1,哪一个作为输入,哪一个作为输出,是由设备树中的ti,pindir-d0-out-d1-in= <1>来设置的。
默认这个属性值为0,即d0是输入,d1是输出。当为1时,d0为输出,d1为输入。
三、AM62x的SPI应用
1. menuconfig配置
将这个该项选中,SPI驱动将编译进内核中。
makemenuconfi
DeviceDrivers ->
SPIsupport ->
Usermode SPI device driver support
注:在飞凌OK6254-C开发板中,已经将SPI驱动编译进去。
2. 设备树配置
01. 选择需要使用的spi,这里我们用spi0,节点为&main_spi0;
02. 将该节点所用的引脚复用为相应的功能。
03.描述节点的属性,具体配置项的功能见注释。
3、编译烧录
在源码路径下输入以下命令:
没有报错即为编译成功。
将源码路径下的image中的OK6254-C.dtb放到am6254开发板的/boot目录中,重启AM6254开发板。
4. SPI测试
将spi0_D0和spi0_D1短接
重启am6254开发板后,在/dev目录下看到多出两个spidev设备。
使用我们的测试程序
四、总结
AM62x上有着丰富的SPI资源,而SPI又可以作为许多设备的总线,这使得AM62x能够接入许多SPI接口的设备。因此在那些对SPI有着比较多需求的应用场景下,基于TI AM62x设计开发的OK6254-C开发板无疑是一个非常好的选择。
相关产品 >
-
FET62xx-C核心板
FET6254-C核心板基于TI Sitara™ AM62x系列工业级处理器设计。采用Arm Cortex A53架构,并集成了广泛的接口,如2路支持TSN的千兆以太网、USB 2.0CAN-FD,AM6254核心板兼容AM62x全系列处理器,提供单核、双核、四核可选,功能引脚完全兼容,飞凌嵌入式已经适配AM6254 AM6231 AM6232三款芯片为您带来灵活的成本组合方案,AM62x可应用于广泛的工业环境,如人机界面(HMI)、工业计算机、边缘计算、零售自动化、充电桩控制单元(TCU)、医疗设备等。
了解详情 -
OK62xx-C开发板
AM62x 开发板是围绕飞凌AM62x核心板设计的独立测试和开发平台。AM62x处理器由四核64位Arm -Cortex -A53微处理器 和Cortex-M4F组成。AM62x开发板整板工业级设计,并在开发过程中进行严苛的环境温度测试、压力测试、长期稳定性运行测试,使AM62x可在各种严苛环境稳定运行 了解详情