原创 AM62x的SPI总线怎么用

2022-10-31 08:55 226 0 分类: MCU/ 嵌入式
SPI是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

TI AM62x处理器拥有4路SPI以及1路QSPI,丰富的SPI接口可以同时接多个设备,飞凌OK6254-C开发板的NOR Flash就接在了OSPI(QSPI)总线上。

am6254开发板

一、SPI的工作流程和时序

在介绍AM62x的SPI之前,我们先来了解一下SPI是如何工作的。通常SPI通过4个引脚与外部器件相连:

MISO:

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

MOSI:

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

CLK:

串口时钟,作为主设备的输出,从设备的输入;

NSS:

从设备选择。这是一个可选的引脚,用来选择从设备。

SPI的工作流程是这样的——

主机先将NSS信号拉低,这样保证开始接收数据;

当接收端检测到时钟的边沿信号时,它将立即读取数据线上的信号,这样就得到了一位数据(1bit);

由于时钟是随数据一起发送的,因此指定数据的传输速度并不重要,尽管设备将具有可以运行的最高速度;

主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机;

主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送。

SPI工作时序图如下:

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放到开发板的/boot目录中,重启开发板。

4. SPI测试

将spi0_D0和spi0_D1短接

重启开发板后,在/dev目录下看到多出两个spidev设备。

使用我们的测试程序

测试代码

四、总结

AM62x上有着丰富的SPI资源,而SPI又可以作为许多设备的总线,这使得AM62x能够接入许多SPI接口的设备。因此在那些对SPI有着比较多需求的应用场景下,基于TI AM62x设计开发的OK6254-C开发板无疑是一个非常好的选择。

文章评论0条评论)

登录后参与讨论
相关推荐阅读
祢豆子 2022-12-22 13:03
基于飞凌RK3588核心板的无人机主控方案
近些年来无人机(UAV)凭借其无可替代的“随手航拍”的能力进入了大众视野,某些具有优秀影像能力的无人机甚至成功进入影视圈,成为了电影和剧集拍摄工作中不可缺少的一份子。但除了“热门电子消费品”和“影视拍...
祢豆子 2022-12-17 09:23
用全志A40i开发板玩转FFmpeg
1. FFmpeg的安装FFmpeg是用来记录、转换数字音频、视频的开源软件,它支持文件和网络流操作。它支持以函数库的方式使用,所以有很多软件都依赖它,比如VLC、暴风影音、腾讯会议等。它的命令行程序...
祢豆子 2022-12-16 16:41
基于RK3588的8K全景相机方案
伴随着虚拟现实技术(简称VR)的热潮,VR全景影像开始兴起,全景相机市场也迎来了高速发展。近年来,360°全景相机几乎成为了数码潮人和vlog拍摄者手中必不可少的一款产品,打开视频网站和图库,你可以看...
祢豆子 2022-12-15 20:25
手把手教你在Ubuntu定制文件系统
为了给客户的测试和开发提供便利,飞凌嵌入式的开发板产品一般都支持多种操作系统,以基于全志T507H处理器设计研发的OKT507-C开发板为例,它支持三种操作系统,分别是:Linux、Android 和...
祢豆子 2022-12-15 15:39
带你走近真8K-RK3588开发板
OK3588-C开发板基于Rockchip旗舰级AIoT处理器RK3588设计开发,先进的8nm制程工艺、Big.Little大小核架构以及L3缓存的加入都极大提升了它的大数据处理能力,同时还配备了丰...
我要评论
0
0
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条