FlexSPI 的 SCLK 停止功能 手册1693页
27.5.12 SCLK 停止功能
当编程数据没有准备好用于编程命令序列,或者(内部FIFO中)没有空间接收数据,无法读取命令序列时,FlexSPI将停止SCLK输出。
可能有某些设备不支持SCLK在命令序列期间停止(芯片选择是有效的)。SCLK停止可以通过以下操作避免:
对于由IP命令触发的flash读取
永远不要触发数据大于IP RX FIFO大小的read命令。
用于flash读取的内部异步FIFO不应该是满的。
FlexSPI以64Bits每AHB时钟周期的方式弹出数据,并以serial root clock 从FlexSPI接口接收数据。接收速度由闪存访问模式(单/双/四/八进制模式和单独/并行模式)决定。例如,在八进制模式和并行模式下,FlexSPI每个串行根时钟周期接收16位。如果AHB时钟频率高于串行根时钟的1/4,这个异步FIFO永远不会满。
对于由IP命令触发的flash编程
永远不要触发数据大于IP TX FIFO大小的程序命令。
在触发IP命令之前,将所有的编程数据填充到IP TX FIFO中。
用于flash编程的内部异步FIFO绝不应该是空的。
FlexSPI以64bit每AHB时钟周期的方式获取编程数据到异步FIFO,并以串行根时钟传输数据到FlexSPI接口。传输速度由闪存访问模式(单/双/Ouad/八进制模式和单独/并行模式)决定。例如,八进制模式和并行模式。FlexSPI每串行根时钟周期传输16位。如果AHB时钟频率高于串行根时钟的1/4,这个异步FIFO从不为空。
对于由AHB命令触发的flash读取/编程
用于flash读取/编程的内部异步FIFO不应该是满的/空的。
频率比率限制与IP命令触发的flash读取/编程时相同。
注意:
FlexSPI不会在数据大于内部AHB RX缓冲区的情况下触发AHB读取命令。
FlexSPI不会触发数据大于内部AHB TX缓冲区大小的AHB编程命令。
在FlexSPI中触发AHB程序命令之前,所有的编程数据都应该被缓冲到AHB TX缓冲区中。(提前准备好数据,写入开始后不能改变)
本文地址:https://blog.csdn.net/catshit322/article/details/108185364
上一篇: FPGA入门五