求教一个关于F4的DMA速度或者说带宽的问题。(stm32f4的DMA最快只能到20Mhz吗?)

2019-07-20 06:54发布

    (stm32f4的DMA最快只能到20Mhz吗?)最近翻自己的垃圾堆找出两片DAC904,于是想用stm32驱动做个dds,用DMA将数据搬运到GPIO口进行控制。板子还没画先来测试下stm32最快能达到多少刷新率。用的是stm32f407zet6,TIM1 UP触发,DMA2_STREAM5的通道6,内存到外设,外设地址GPIOC-ODR,内存地址定义一个数组0x00,0x01,循环模式。首先测试stm32主频150Mhz,TIM1不分频,重装载30,开始测试,用示波器查看IO翻转率5Mhz(2.5Mhz方波),OK没问题。重装载改15再测试,10Mhz,也没问题。好了,接下来直接改成3,测试,20Mhz(10Mhz方波)?????exm?突然想起来手册上好像提到说到关于dma带宽说为了保证内核运行正常,总线仲裁会给内核保证一定的带宽,那么留给DMA的就只有20Mhz吗?更奇怪的是我把主频从150Mhz改成168Mhz之后这个翻转率依然不变还是20Mhz,这就有点不理解了,150Mhz主频的时候翻转20Mhz,168Mhz还是20Mhz难道留给DMA的是个固定值吗?有大神能给解答一下吗?(GPIO配置是没问题的,在主函数while循环里168Mhz主频可以输出接近84Mhz的波形)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-07-21 10:18
sabaka 发表于 2018-8-1 18:24
这个一开始就试过了,两个和多个没区别的,倒是刚刚看到了篇文章“STM32的FSMC扩展SRAM的时序测量及配 ...

F4的FSMC,WR时钟,大概可以到35Mhz左右
因此写SRAM,应该在35M*2左右的速度是可以达到的。
sabaka
2楼-- · 2019-07-21 10:21
正点原子 发表于 2018-8-2 01:35
F4的FSMC,WR时钟,大概可以到35Mhz左右
因此写SRAM,应该在35M*2左右的速度是可以达到的。

     理论值是这样,实际考虑器件的参数一般达不到。那位作者测试的内部sram读取速度也才27Mbyt,所以我认为这个才是限制了dma-gpio速度的原因吧

一周热门 更多>