AXI Quad SPI IP核AXI4-Lite接口的部分操作指南

1 AXI4-Lite接口标准SPI模式——传统模式下可选FIFO的使用

当AXI Quad SPI IP核配置为标准SPI模式时,可以选择在设计中包含16或256深度的可选FIFOs。由于AXI Quad SPI是全双工的,所以发送和接收FIFOs都作为一对被实例化,并且可以包含在IP核中。

当实现FIFO时,要求所有的从选择地址都相同缓冲在FIFO中的数据。这是必要的,因为从机选择地址没有FIFO。发送和接收FIFO都有16(或256)个元素深度,并且可以使用单个AXI事务访问,因为不支持突发模式。

发送FIFO是只写的。当有数据写入FIFO时,占用数增加;当SPI传输完成时,数量减少。由于这种操作,中止的SPI传输仍然有数据可用于传输重试。传输只能在主模式下通过设置SPICR的第8位为1来中止。在slave模式下设置此位对slave的操作没有影响。这些中止的传输在SPI接口上。占用数包含在一个只读寄存器中。

如果在FIFO已满时尝试写入,将给出确认信号并生成错误信号。

与发送FIFO相关的中断包括:

  • 发送数据FIFO为空
  • 发送FIFO半空
  • 发送FIFO下溢

接收FIFO是只读的。当从FIFO中读取数据时,占用数会减少;当SPI传输完成时,该数字会增加。这是因为FIFO是一个存储数据的队列,它按照数据进入的顺序来读取数据。当数据被读取时,表示队列中的元素数量减少;当SPI完成一次数据传输(可能是从外部设备到内部FIFO),队列中的元素数量会增加。

如果尝试在FIFO为空时读取数据,会给出确认信号,并生成一个错误信号。当接收FIFO变满时,会生成接收FIFO满中断。数据在SPI传输完成后会自动从SPI模块的移位寄存器写入FIFO。如果接收FIFO已满且接收到更多数据,会发出接收FIFO溢出中断。当这种情况发生时,SPI模块尝试写入已满接收FIFO的所有数据都会丢失。

AXI Quad SPI IP核配置有FIFO时,SPI传输的启动方式可以根据SPICR(SPI控制寄存器)中使能位的设置分为两种不同的情况。如果在FIFO中加载第一个数据之前设置使能位,则在写入主发送FIFO后立即开始SPI传输。如果在向发送FIFO写入更多元素之前,通过SPI传输清空了FIFO,则会触发一个中断。当AXI到SPI SCK的频率比足够小时,这种情况非常可能发生。

SPI传输的启动还可以采用另一种方式:先将FIFO加载至多16个或256个元素,然后设置使能位来启动SPI传输。在这种情况下,当所有元素都被传输完成后,会触发一个中断。在所有情况下,都可以在清空FIFO之前向发送FIFO写入更多数据,以增加传输的元素数量。

2 AXI4-Lite接口Dual/Quad SPI模式——可选FIFO深度

当该IP核配置为Dual/Quad SPI模式时,FIFO始终存在,并且可以选择其深度。该FIFO的深度可以是16或256。在这种模式下,FIFO的宽度总是8位。

3 AXI4-Lite接口SPI主回环(loopback)操作

SPI主环回操作是一种用于加速测试的技术。通过在SPICR(SPICR(0))中设置回环位来选择该操作,从而实现从发送器输出到接收器输入的内部连接。在此操作中,接收器和发送器会按正常方式工作,但接收到的数据(来自远程从设备)会被忽略。

主回环操作仅在SPI设备被配置为主设备,并运行在标准SPI事务模式下时有效。当该IP核被配置为Dual/Quad SPI模式时,不支持主回环操作。

在执行此操作时,SPI主设备发送的数据会直接从发送器输出循环回到接收器输入,而不需要经过外部从设备。这一特性使得测试过程更加便捷,因为可以快速地验证SPI主设备的发送和接收功能是否正常,而无需连接实际的从设备。

4 AXI4-Lite接口硬件错误检测

SPI架构在多主配置中依赖于软件控制的总线仲裁来避免冲突和错误,但SPI硬件实现的错误检测功能是有限的。以下是关于SPI错误检测机制的内容,特别是内容争用错误检测(Contention Error Detection)的详细解释:

内容争用错误检测

当一个SPI设备被配置为主设备时,如果被另一个同时被配置为主设备的SPI设备选中(即其SS位被断言),内容争用错误检测机制会被触发。在这种场景下,被选中作为从设备的主设备会立即驱动其输出,以避免由于同时驱动争用导致的硬件损坏。

同时,主设备还会在SPISR(SPI状态寄存器)中设置模式故障错误(MODF)位。这个位可以通过读取SPISR来自动清除。

在发生MODF错误后,主设备必须被禁用并重新启用,同时确保数据正确。如果系统配置了FIFO,则可能需要清除FIFO中的数据。

SPI从设备错误检测

当一个SPI设备被配置为从设备但未启用时,如果被另一个SPI设备选中(即其SS位被断言),类似的错误检测机制会被触发。在这种场景下,IPISR通过选通将位1设置到IPISR寄存器。

SPI通信中提供了对Underrun(下溢)和Overrun(上溢)条件错误的检测机制。以下是这两种错误检测机制的详细解释:

Underrun条件错误检测

Underrun条件仅在从设备模式下发生。当主设备命令进行数据传输,但从设备的发送寄存器或FIFO中没有数据可供传输时,会发生Underrun条件。

当Underrun条件发生时,从设备的Underrun中断会被触发。从设备的移位寄存器会被加载为全零状态,以便进行传输。这意味着在通信过程中,主设备会接收到全零的数据。

Overrun条件错误检测

Overrun条件既可以发生在主设备也可以发生在从设备上。当接收寄存器或FIFO已满时,如果继续发生数据传输,则会发生Overrun条件。

在Overrun条件下,该次传输中接收到的数据不会被存入寄存器(即数据丢失),且IPISR寄存器的Overrun中断位(位5)会被触发。

5 设置Frequency Ratio参数

在设置AXI Quad SPI IP核的Frequency Ratio参数时,需要考虑多个因素以确保与连接的SPI从设备(如Micron、Winbond、Macronix和Spansion Flash存储器)之间的正确通信。可以使用Winbond、Micron、Spansion和Macronix SPI闪存来测试标准、双线模式和四线模式。

首先,需要读取目标SPI从设备(如SPI flash存储器或EEPROM)的数据手册,以了解其最大操作速度。Frequency Ratio参数决定了AXI Quad SPI IP核SCK引脚上的时钟频率。这个参数应该根据SPI从设备的最大时钟频率和AXI时钟来设置。不同的SPI从设备可能支持不同的最大时钟频率,因此,在设置Frequency Ratio参数时,需要考虑到所有连接到AXI Quad SPI IP核的从设备的最大时钟频率。

6 AXI4-Lite接口 SPI从设备模式——传统模式下的标准SPI配置

AXI Quad SPI IP核可以通过将外部主设备的从选择线连接到SPISEL并将SPI控制寄存器(SPICR)的第2位设置为0来配置为从模式。只有在标准SPI模式下才允许使用从模式。在双线或四线SPI模式下,IP核仅支持主模式。

当“Frequency Ratio”参数大于4时,所有传入的信号都会与AXI时钟同步。这意味着传入的信号会被调整或缓冲以匹配AXI时钟的频率和相位。

当“Frequency Ratio”参数设置为4时,由于严格的时序要求,传入的SCK时钟信号及其同步信号将直接在内部逻辑中使用。因此,在这种情况下,外部时钟必须与AXI时钟同步。

对于其他“Frequency Ratio”参数值,虽然同步是首选的,但可能不是必需的。

在从模式操作中,通过将FIFO深度设置为标准的16或256来使用FIFO SPI模式。

在AXI Quad SPI IP核的从模式下,除了IPISR中的其他中断外,还有两个特定的中断可用。这些中断与从模式的数据传输和配置相关。

  • DRR_Not_Empty(位8)
  • Slave_Mode_Select(位7)

在其他SPI主设备开始通信之前,必须将IP核的发送FIFO填充所需的数据块,数据块是SPI通信中传输的数据单元,通常包含多个字节或位。用所需的数据节拍填充从IP核传输FIFO是必要的。当主设备开始通信时,IP核配置在从设备模式,IP核一直传输数据直到数据在其传输FIFO中可用。

当AXI Quad SPI IP核被配置为从模式时,它是强制性的要求,即必须在开始通信之前将从IP核的发送FIFO填充所需的数据块。数据块是SPI通信中传输的数据单元,它们包含了要在主设备和从设备之间交换的信息。

当主设备开始通信,并且IP核已配置为从模式时,IP核将持续传输数据,直到其发送FIFO中的数据可用为止。换句话说,从设备会按照FIFO中数据的顺序将其发送给主设备。

在AXI Quad SPI通信中,当从设备的FIFO发送完最后一个数据块(data beat)后,它会生成一个DTR空信号,用于通知主设备或系统控制器,从设备的发送FIFO已经空了,需要填充新的数据块以便进行后续的通信。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值