当前位置: 代码迷 >> 驱动开发 >> DMA中fifo的一些疑问解决方案
  详细解决方案

DMA中fifo的一些疑问解决方案

热度:21   发布时间:2016-04-28 10:53:26.0
DMA中fifo的一些疑问
hi 大家好:

  我有个疑问希望高手给以指点。
  DAM控制寄存器中的fifo我设置了上限和下限。threshold-low和threshold-high。
  这个时候是怎么理解?
  fifo容量低于threshold-low触发DMA。还是超过threshold-high触发?

  low<fifo<high
  fifo<low && fifo>high

  怎么理解这个上下限的问题?

谢谢。

------解决方案--------------------
FIFO的上下限的 意义在于 对读写跨时钟域的情况下 避免亚稳态带来的 数据错误的影响。如果是同步读写下,或者工作于同时钟源下,基本不需要 设置上下限,空满 就可以满足要求。

对于>threshold-high需要进行禁止写 或者 放慢写的速度。
对于<threshold-low需要进行禁止读 或者 放慢读的速度。

具体的 触发DMA在于 你这里是DMA写入还是 读出。如果是 需要 把FIFO中的数据 DMA 出去的话 
触发DMA就应该是 threshold-high触发DMA,threshold-low终止DMA。
反之,则相反。
  相关解决方案