首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32F4系统总线架构的话题

STM32F4系统总线架构的话题

本帖最后由 yuchengze 于 2016-12-27 10:19 编辑

最近有人在STMCU社区网站咨询如下问题:
    由于实验需要,要用到STM32F407的两个DMA并用定时器触发,在使用过程中发现DMA1无法把GPIO的IDR上的数据传输到内存,调试过程中出现DMA1的数据流传输错误标志,但是使用DMA2没有问题。然后我看了下参考手册上两个DMA的控制系统实现图,DMA1的外设端口有一个桥接器把APB1和AHB1连起来,不知道这个桥连器作用是什么?是把APB1和AHB1连起来互相访问吗? 另外测试把GPIO的IDR改成APB1下的tim5的ARR,DMA1正常工作。请问这是怎么回事?


    咨询者提到STM32F4系列中的两个DMA,即DMA1与DMA2,AHB到APB桥接器;再就是两个外设,GPIO和TIM5 。为了弄清这个问题,我们有必要先看看STM32F407的总线与存储框架图。 如下图所示:
63317283466467.jpg
              STM32F4系统存储及总线框图



    整个系统架构由多层32位AHB总线矩阵及主从总线构成,并建立起各个主从模块间的互联访问。
    图中方框内纵横交错的矩阵线就是总线矩阵,犹如纵横交错的公路,让各类交通工具在里面同时运行而互不干扰。只有在图中红色箭头所指的地方,可能出现主控总线访问撞车的时刻,此时总线矩阵会按照一定规矩进行仲裁,即谁先谁后而不会发生交通事故。
    总线矩阵跟图中上方的8条主控总线和右方的7条从控总线保持互联。
八条主控总线: [主控总线简单点说就是可以用来主动访问别的外设的通路]
—Cortex?-M4F 内核 I 总线、D 总线和 S 总线
—DMA1 存储器总线
—DMA2 存储器总线
—DMA2 外设总线
以太网 DMA 总线
—USB OTG HS DMA 总线
● 七条被控总线:
内部 Flash ICode 总线
内部 Flash DCode 总线
主要内部 SRAM1 (112 KB)
辅助内部 SRAM2 (16 KB)
辅助内部 SRAM3 (64 KB)(仅适用于STM32F42xxx 和 STM32F43xxx 器件)
—AHB1 外设(包括 AHB-APB 总线桥和 APB 外设)
—AHB2 外设 —FSMC
    借助于总线矩阵,可以实现主控总线到被控总线的访问,可以实现多个高速外设并发访问和高效运行。
返回列表