FIFO的操作

时间:2009-01-08

  系统在上电复位时,SPI工作在标准SPI模式,禁止FIFO功能。FIFO的寄存器SPIFFTX、SPIFFRX和SPIFFCT不起作用。通过将SPIFFTX寄存器中的SPIFFEN的位置为1,使能FIFO模式。SPIRST能在操作的任一阶段复位FIFO模式。

  FIFO模式有2个中断,一个用于发送FIFO、SPITXINT,另一个用于接收FIFO、SPIINT/SPIRXINT。对于SPI FIFO接收来说,产生接收错误或者接收FIFO溢出都会产生SPIINT/SPIRXINT中断。对于标准SPI的发送和接收,的SPIINT将被禁止且这个中断将服务于SPI接收FIFO中断。发送和接收都能产生CPU中断。一旦发送FIFO状态位TXFFST(位12~8)和中断触发级别位TXFFIL(位4~0)匹配,就会触发中断。这给SPI的发送和接收提供了可编程的中断触发器。接收FIFO的触发级别位的缺省值是0xll111,发送FIFO的触发级别位的缺省值是0x00000。

  发送和接收缓冲器使用2个16×16 FIFO,标准SPI功能的一个字的发送缓冲器作为在发送FIFO和移位寄存器间的发送缓冲器。移位寄存器的一位被移出后,这个一字发送缓冲器将从发送∏FO装载。FIFO中的字发送到发送移位寄存器的速率是可编程的。SPIFFCT寄存器位FFTXDLY7~FFTXDILYO定义了在两个字发送间的延时,这个延时以SPI串行时钟周期的数量来定义。该8位寄存器可以定义0个串行时钟周期的延迟和256个串行时钟周期的延时。0时钟周期延时的SPI模块能将FIFO字一位紧接一位的移位,连续发送数据。256个时钟周期延迟的SPI模块能在延迟模式下发送数据,每个FIFO字的移位间隔256个SPI时钟周期的延时。可编程延时的特点,使得SPI接口可以方便地同许多速率较慢的SPI外设如EEPROM、ADO、DAC等直接连接。

  发送和接收FIFO都有状态位TXFFST或RXFFST(位12~0),状态位定义任何时刻在FIFO中可获得的字的数量。当发送FIFO复位位TXFIFO和接收复位位RXFIFO被设置为1时,FIFO指针指向0。一旦这两个复位位被清除为0,则FIFO将重新开始操作。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com



  
上一篇:SPI数据传输从设备模式
下一篇:SPI寄存器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料