STM32F407xx芯片手册第1到3章中文翻译

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1文档约定

寄存器缩写列表

下面的缩写用于描述寄存器

Read/Write(rw)软件可读写

Read-Only(r)软件只读

Write-only(w)软件只写

Read/clear(rc_w1)软件可读,写1清除,写0无作用

Read/clear(rc_w0)软件可读,写0清除,写1无作用

Read/clear by read软件可读,读后自动清零,写0无作用Read/set(rs)软件可读,可置位,写0无作用

Read-only write

Trigger(rt_w)软件可读,写0或1翻转此位

Toggle(t)写1翻转,写0无作用

Reserved(Res.)保留位,必须保持复位值

2存储器和总线架构

2.1系统架构

主系统包括32位多层互联AHB总线阵列,连接以下部件:

Height masters

—Cortex TM-M4F内核I-Bus(指令总线),D-bus(数据总线)和S-bus(系统总线)—DMA1存储器总线

—DMA2存储器总线

—DMA2外设总线

—以太网DMA总线

—USB OTG HS DMA总线

Seven slaves

—内置Flash存储器指令总线

—内置Flash存储器数据总线

—主内置SRAM1(112KB)

—辅助内置SRAM2(16KB)

—AHB1外设,包括AHB到APB的桥以及APB外设

—AHB2外设

—FSMC接口

总线矩阵提供从主设备到从设备的访问,即使在有若干高速外设同时运行的情况下也能并行访问并高效运转。这个架构如图1所示。

注意:64KB的CCM(内核耦合存储器core coupled memory)数据RAM并不是总线矩阵的一部分,它只能通过CPU来访问。

图1系统架构

2.1.1S0:指令总线

这条总线连接Cortex TM-M4F内核的指令总线到总线矩阵,用于内核取指。总线的Target是存储有代码的存储器(包括内置Flash存储器/SRAM以及通过FSMC外扩的外部存储器)。

2.1.2S1:数据总线

这条总线连接Cortex TM-M4F的数据总线和64KB的CCM数据RAM到总线矩阵,用于内核立即数的load以及调试访问。总线的Target是存储有代码和数据的存储器(包括内置Flash存储器以及通过FSMC外扩的外部存储器)。

2.1.3S2:系统总线

这条总线连接Cortex TM-M4F的系统总线到总线矩阵,用于访问位于外设或者SRAM 中的数据,指令也可通过这条总线取指(但是没有从ICode中取指效率高)。总线的Target 是112KB和16KB内置SRAMs,AHB1外设,APB外设,AHB2外设以及通过FSMC外扩

的外部存储器。

2.1.4S3、S4:DMA存储器总线

这条总线连接DMA存储器总线主设备接口到总线矩阵,用于DMA在存储器中执行传送指令。总线的Target是内置SRAM和通过FSMC外扩的外部存储器。

2.1.5S5:DMA外设总线

这条总线连接DMA外设主总线接口到总线矩阵,用于DMA访问AHB外设或者执行存储器之间的传送指令。总线的Target是AHB和APB外设加(plus)数据存储器:内部SRAM和通过FSMC外扩的外部存储器。

2.1.6S6:以太网DMA总线

这条总线连接以太网DMA主设备接口到总线矩阵,用于以太网DMA加载或传送数据到一个存储器。总线的Target是内置SRAM和外部通过FSMC外扩的存储器。

2.1.7S7:USB OTG HS DMA总线

这条总线连接USB OTG HS DMA主设备接口到总线矩阵,用于USB OTG DMA加载或存储数据到一个存储器。总线的Target是数据存储器:内置SRAM和外部通过FSMC 外扩的存储器。

2.1.8总线矩阵

总线矩阵管理主设备之间的访问仲裁,仲裁用了一系列的算法。

2.1.9AHB/APB桥(APB)

APB1和APB2两个AHB/APB桥提供AHB到两个APB之间的全速同步连接,允许外设频率的灵活选择。

设备复位以后,所有的外设时钟都是禁止的(除了SRAM和Flash存储器接口)。在使用一个外设之前,必须在RCC_AHBxENR或者RCC_APBxENR寄存器中使能相应的时钟。

注意:当产生一个对APB寄存器16位或者8位的访问时,此次访问会被转换成一个32位的访问:桥会复制这个16或8位的数据来提供给32位的向量。

2.2存储器结构

程存、数存、寄存器和IO端口被安排在一个线性的4G地址空间里。

字节在存储器中按照小端格式编码。一个字中的最低字节被称为最低有效字节。……

可寻址的存储器空间被分为8个主要的块,每一个为512MB。

存储器中所有没有分配区域都被称为“保留”。

2.3存储器映射

下图给出了在F40x和F41x中可用的外设的边界地址。

2.3.1内置SRAM

STM32F40x和STM32F41x内置了4K的备份SRAM和192K的系统SRAM。

系统SRAM可以按字节、半字、全字访问。SRAM的起始地址是0x20000000.可以以CPU的速度并0等待地对SRAM进行读写操作。

系统SRAM被分成三个块,112KB,64KB和16KB。有被AHB主机(比如以太网或者USB OTG HS)并行访问的能力:比如以太网可以在CPU读写112KSRAM的同时读写16KSRAM。

CPU可以通过系统总线访问系统SRAM或者在选择从SRAM中启动或者选择物理重映射时通过指令总线/数据总线访问。为了达到SRAM执行的最大效率,应该选择物理重映射。

2.3.2位带

Cortex-M4F存储器映射表中两个位带区。这些区域把位带区的一个位映射到别名区的一个字。对别名区的写操作会对位带区相应的位产生如同读-改-写操作。

在STM32F40x和STM32F41x中的外设寄存器和SRAM都映射到一个位带区,所以就可以对单个位进行读写操作。这个操作只能Cortex-M4F来进行,而不是其他总线主机。

下面的计算公式给出了别名区的字和位带区的位之间的关系:

bit_word_addr=bit_band_base+(byte_offset x32)+(bit_number×4)

这里:

bit_word_addr是位带区的位相应的别名区的字的地址

bit_band_base是别名区的起始地址

byte_offset是包含目标位的字节的数字

Bit_number是目标位在包含它的字节中的位置(0-7)

实例:

下面的例子展示了怎样计算在位于SRAM地址0x20000300的字节的bit2对应别名区的字的地址:

0x22006008=0x22000000+(0x300*32)+(2*4)

写地址0x22006008和对位于SRAM地址0x20000300的字节的bit2进行读-改-写操作会产生同样的效果。

相关文档
最新文档