【SOC】DMA时钟使用限制

#工作记录#

先给出结论:在使用异步的时候DMA的配置时钟不要快于dma_core_clk。

当使用DMA的时候,寄存器配置使用的是AHB接口,会使用config配置时钟频率。DMA内部还有一个dma_core_clk提供给core使用。DMA针对配置时钟和core时钟有两种工作模式,一种是异步,一种是同步。

当使用同步的时候,不需要将AHB的信号同步到core时钟域。

但是使用异步的时候,针对写寄存器的时候,DMA内部会将write的enable、ack、req信号从config配置时钟域同步到dma_core_clk的时钟域,使用Toggle Type Event Sychronizer来同步脉冲信号。但是在真正写入到寄存器中的时候,会有write_enable信号与write_byte_en、write_data共同参与写入的过程。这3个信号中只有write_enable同步到了dma_core_clk的时钟域,write_byte_en和write_data仍然使用的是config配置时钟。2个不同时钟域的参与写入会出现问题。

分析它为什么这么设计的原因:可能是默认dma_core_clk在异步使用的时候,默认dma_core_clk会快于config时钟,在这种情况下,write_byte_en和write_data使用config时钟也能被正常采样到,不会出错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值