标签:NXP 传输 SPI controller ECSPI 设置 寄存器 bit
spi协议可参考:https://www.cnblogs.com/lethe1203/p/18083528
ECSPI(Enhanced Configurable Serial Peripheral Interface)是由NXP Semiconductors(原飞利浦半导体部门)开发的,imx6ull上一共有四组spi接口,每组寄存器都是一样的,都是以第一组为例。
典型的SPI BURST传输图:
ECSPI的feature:
1、全双工同步串行接口
2、主/从可配置四芯片
3、选择(SS)信号支持多个外设
4、传输延续功能允许无限长度数据传输
5、32位宽64 entery FIFO传输和接收数据
6、极性和相位的芯片选择(SS)和SPI时钟(SCLK)可配配置
7、直接内存访问(DMA)
8、支持最大操作频率参考时钟频率。
ECSPI寄存器描述:
如下图,解析下主要寄存器的含义与操作方法:
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
等等
标签:NXP,
传输,
SPI,
controller,
ECSPI,
设置,
寄存器,
bit
From: https://www.cnblogs.com/lethe1203/p/18084254