NXP ECSPI controller简介

 
ECSPI(Enhanced Configurable Serial Peripheral Interface)是由NXP Semiconductors(原飞利浦半导体部门)开发的,imx6ull上一共有四组spi接口,每组寄存器都是一样的,都是以第一组为例。
 

典型的SPI BURST传输图:

0
 

ECSPI的feature:

1、全双工同步串行接口
2、主/从可配置四芯片
3、选择(SS)信号支持多个外设
4、传输延续功能允许无限长度数据传输
5、32位宽64 entery FIFO传输和接收数据
6、极性和相位的芯片选择(SS)和SPI时钟(SCLK)可配配置
7、直接内存访问(DMA)
8、支持最大操作频率参考时钟频率。
 

ECSPI寄存器描述:

如下图,解析下主要寄存器的含义与操作方法:
0

1、RXDATA

RXDATA是一个只读寄存器,该寄存器有一个64 x 32bit深度的fifo,此寄存器保存了从外部SPI设备接收到的数据,最大允许word大小的操作。
在接收数据就绪位RR时,可读
 

2、TXDATA

TXDATA寄存器是一个只写寄存器,该寄存器有64 x 32bit深度的fifo,当禁用掉ECSPI时(清除ECSPI_CONREG(EN)位),写入该寄存器将无效。
如果实际传输的bit数超过了burst length的长度,将忽略额外的长度
 

3、CONREG

CONREG寄存器的关键bit位:
bit0:置1,使能SPI
bit3:置1,表示TX有数据立即开启突发访问
bit[7:4]:设置SPI通道主从模式,bit7为通道3,bit4为通道0,我们使用SS0,也就是设置bit4为1
bit[31:20]:突发长度,设置为0x7,表示一次突发传输长度为8
 

4、CONFIGREG

bit[0]:为PHA,设置为0,表示串行时钟第一个跳变沿开始采集数据
bit[4]:为POL,设置为0,表示SCLK空闲的时候为低电平
bit[8]:设置为0
bit[16]:设置为0,表示空闲的时候数据线为高
bit[20]:设置为0,表示SCLK空闲时为低
 

5、STATREG

bit[0]:表示TXFIFO为空,我们在发送数据之前等待TXFIFO为空,设置为1
bit[3]:表示RXFIFO是否有数据,为1的时候表示RXFIFO至少有一个word的数据,我们在接收数据的时候要等待该寄存器为1
 
等等
posted @ 2024-03-19 23:47  lethe1203  阅读(55)  评论(0编辑  收藏  举报