STM32F407总线存储框架及应用设计

曾有人在stmcu社区网站咨询如下问题:
由于实验需要,要用到stm32f407的两个dma并用定时器触发,在使用过程中发现dma1无法把gpio的idr数据传输到内存,调试过程中出现dma1的数据流传输错误标志,但是使用dma2没有问题。另外当把访问gpio的idr改成访问apb1下的tim5的arr时,dma1也能正常工作。请问这是怎么回事?
咨询者提到stm32f4系列中dma1与dma和另外两个外设gpio和tim5 。为了弄清这个问题,我们有必要先看看stm32f407的总线与存储框架图。 如下图所示:
整个系统架构由多层32位ahb总线矩阵及主从总线构成,并建立起各个主从模块间的互联访问。借助于总线矩阵,可以实现主控设备到从控设备的访问,可以实现多个高速外设的并发访问和高效运行。[需要注意的是,对于stm32f4系列,图中64k ccm并不经过总线矩阵,只能被cpu访问。自然dma是不能访问它的.]
我们接着看看stm32f407 的dma1和dma2的访问框架图。这两个dma都具有双ahb总线访问端口,一端用于存储器访问,另一端用于外设访问。
结合这幅dma总线访问框图和上面的系统存储总线框架图可以看出,2个dma的外设访问端口的总线连接有点不一样。
dma2的外设访问端口既与总线矩阵相连,经过矩阵可以访问ahb外设,又与ahb-apb桥2相连,可以进一步访问apb2外设;而dma1却没有与总线矩阵相连,只是跟ahb-apb桥1相连,从而访问apb1外设。[长方形方框代表总线矩阵]
现在的问题是说dma1访问不了gpio,但如果换成tim5就可以。我们可以去芯片数据手册的device overview部分查看相关总线和外设联结图。截取stm32f40x block diagram的部分如下:
不难看出gpio外设跟ahb1相连;tim5跟apb1相连。我们再结合中间的dma访问框图看得清楚,dma1的外设端口根本没连接ahb1,自然没法访问相应外设,比如gpio。而dma2 可以,因为它可以经过总线矩阵后再去访问ahb1的外设。dma1为什么能访问tim5也不难解释了,因dma1的ahb外设端口总线经过ahb/apb1桥后就可以访问apb1各类外设,而tim5就是挂在apb1总线上的外设之一。
咨询者的问题基本上靠看上面几幅图可以得到答案。这些图很重要,很多信息用图描述也很直观明了。各技术手册里的插图往往大有乾坤,不要视而不见。上面提到的都是基于stm32f4系列的总线架构,你也可以去看看其它系列的系统总线框图,相信你一定会另有发现和收获。

硅化物、氮化物与钙钛矿:第三代半导体的四大分类与应用探索
AUTO插件和自动批处理的最佳实践
如何链接Spice模型
基于无线通讯技术的边缘计算网关及其在电网中的应用
智能制造的定义、关键技术与实现智能制造的意义是什么
STM32F407总线存储框架及应用设计
Gartner2021年安全和风险管理领域的八大趋势
同欣智能科技PS1356开关介绍
Linux系统中标准输入设备的控制方法
利用异步采样速率转换简化数字数据接口
详解光刻胶技术并阐述光刻胶产业现状和国内发展趋势
电容串并联该如何取值?完整的电容降压电路该如何实现?
电动车防盗跟踪器浪涌可靠性研究
小米6怎么样?小米6是否值得你们前赴后继的抢购?看了这6点你还抢购吗?
aigo移动固态硬盘S7 Pro评测:凭实力圈粉无数 真国民好物
紫光国微荣获安全之星“2021年度优秀汽车安全芯片方案奖”
光数字继电保护测试仪的功能有哪些
基于三网融合的互联网电视的技术方案、优势特点与发展趋势介绍
比亚迪在新能源市场不断领先,但不同能源车型发展不均衡问题不可忽视
如何减少分立元件的数量和电路板空间