(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的波形)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>