18_SPI编程

发布时间:2022-11-22 23:00

第十八章 SPI编程(有误)

18.1 SPI接口简介

​ SPI(Serial Peripheral Interface)接口是全双工的同步串行通讯总线,支持通过多个不同的片选信号来连接多个外设。SPI接口通常由四根线组成,分别是提供时钟的SCLK,提供数据输出的MOSI,提供数据输入的MISO和提供片选信号的CS。同一时刻只能有一个SPI设备处于工作状态。为了适配不同的外设 ,SPI支持通过寄存器来配置片选信号和时钟信号的极性和相位。(imx6ull支持ecspi,即增强配置型spi,这里为了与其他兼容,统一用spi来称呼)。

18.1.1 SPI硬件连接

​ SPI支持slave和master两种模式,作为APU来说,多数情况下是作为master来使用的。在master模式下,通过不同的片选引脚ssn来连接多个不同的设备。下图为MASTER模式下的SPI单线通讯模式框图,只对设备进行写操作。

18_SPI编程_第1张图片

18.1.2 SPI通讯数据格式

​ 在master模式下,ss、sclk和mosi作为信号输出接口,MISO作为信号输入接口。通过SS片选信号使能外部SPI设备,SCLK同步数据传输。MOSI和MISO信号在SCLK上升沿变化,在下降沿锁存数据。SPI的具体通讯格式如下图所示(默认高位在前,低位在后),输出数据为0xD2,输入数据为0x66。

18_SPI编程_第2张图片

​ SPI支持不同的SPI时钟和CS片选相位和极性设置,通过设置POL和PHA值的不同来设置相对相位和极性。POL:表示SPICLK的初始电平,0为电平,1为高电平 ;CHA:表示相位,即第一个还是第二个时钟沿采样数据,0为第一个时钟沿,1为第二个时钟沿。具体如下表所示:

POL PHA 模式 含义
0 0 0 初始电平为低电平,在第一个时钟沿采样数据
0 1 1 初始电平为低电平,在第二个时钟沿采样数据
1 0 2 初始电平为高电平,在第一个时钟沿采样数据
1 1 3 初始电平为高电平,在第二个时钟沿采样数据

​ 实际时钟和相位关系如下图所示,我们常用的是模式0和模式3,因为它们都是在上升沿采样数据,不用去在乎时钟的初始电平是什么,只要在上升沿采集数据就行。极性选什么?格式选什么?通常去参考外接的模块的芯片手册。

18.2 IMX6ULL的SPI控制器操作与寄存器介绍

18.2.1 SPI控制器介绍

IMX6ULL的SPI控制器ECSPI(Enhanced Configurable Serial Peripheral Interface) 为全双工同步四线串行通讯模块,有4路独立的控制器。主要特性如下:

  • 全双工同步串行接口
  • 可配置为MASTER或SLAVE模式
  • 支持多达四个片选信号来连接不同的外设
  • 传输数据长度不限
  • 包含一个64X32的接收FIFO和64X32的发送FIFO
  • 片选信号和时钟信号的极性及相位可配置
  • 支持DMA(Direct Memory Acess)
  • 最大运行频率依赖于参考时钟频率

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号