求教一个关于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-20 10:45
 精彩回答 2  元偷偷看……
sabaka
2楼-- · 2019-07-20 13:05
正点原子 发表于 2018-7-30 02:14
限制在GPIO,不在DMA.

    请问为什么说限制是在GPIO呢,直接CPU操作是可以到最大84M的方波的呢。
正点原子
3楼-- · 2019-07-20 15:15
 精彩回答 2  元偷偷看……
sabaka
4楼-- · 2019-07-20 20:22
正点原子 发表于 2018-7-31 02:10
直接操作能达到84M的话,那用DMA也可以很快才对,我前面说错了。
你定时器触发,没用中断吧?纯硬件的 ...

    是的,直接用TIM1UP触发的dma 纯硬件,感觉是有限制的,用180M的429也只能到差不多25M的翻转率
正点原子
5楼-- · 2019-07-21 01:04
sabaka 发表于 2018-7-31 18:22
是的,直接用TIM1UP触发的dma 纯硬件,感觉是有限制的,用180M的429也只能到差不多25M的翻转率

试试一次dma多个数据,比如发送搞一个 0XFF,0X00,0XFF,0X00,0XFF,0X00,之类的数组
sabaka
6楼-- · 2019-07-21 06:30
 精彩回答 2  元偷偷看……

一周热门 更多>