STM32F4xxx 参考手册学习摘录

更新时间:2024-05-19 01:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2存储器和总线架构

64 KB CCM(内核耦合存储器)数据 RAM 不属于总线矩阵,只能通过 CPU 对其进行访问。

对 APB 寄存器执行 16 位或 8 位访问时,该访问将转换为 32 位访问:总线桥将 16 位或 8 位数据复制后提供给 32 位向量。 存储器组织结构

程序存储器、数据存储器、寄存器和 I/O 端口排列在同一个顺序的 4 GB 地址空间内。 各字节按小端格式在存储器中编码。字中编号最低的字节被视为该字的最低有效字节,而编号最高的字节被视为最高有效字节。

嵌入式 SRAM

STM32F405xx/07xx 和 STM32F415xx/17xx 带有 4 KB 备份 SRAM(请参见第 5.1.2 节:电 池备份域)和 192 KB 系统 SRAM 系统 SRAM 分为三个块:

● 映射在地址 0x2000 0000 的 112 KB 和 16 KB 块 ● 映射在地址 0x2002 0000

的 64 KB 块,(适用于 STM32F42xxx 和 STM32F43xxx)。。

AHB 主总线支持并发 SRAM 访问(通过以太网或 USB OTG HS):例如,当 CPU 对 112 KB 或 64 KB SRAM 进行读/写操作时,以太网 MAC 可以同时对 16 KB SRAM 进行读/写操作。

● 在地址 0x1000 0000 映射的 64 KB 块,只能供 CPU 通过数据总线访问。

位段

Cortex?-M4F 存储器映射包括两个位段区域。这些区域将存储器别名区域中的每个字映射 到存储器位段区域中的相应位。在别名区域写入字时,相当于对位段区域的目标位执行读-修改-写操作。

bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)

自举配置

BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于其它用途。

器件退出待机模式时,还会对 BOOT 引脚重新采样。因此,当器件处于待机模式时,这些引 脚必须保持所需的自举模式配置。这样的启动延迟结束后,CPU 将从地址 0x0000 0000 获 取栈顶值,然后从始于 0x0000 0004 的自举存储器开始执行代码。

注意:如果器件从 SRAM 自举,在应用程序初始化代码中,需要使用 NVIC 异常及中断向量表和偏 移寄存器来重新分配 SRAM 中的向量表。

嵌入式自举程序模式用于通过以下串行接口重新编程 Flash: ● USART1(PA9/PA10)

● USART3(PB10/11 和 PC10/11) ● CAN2(PB5/13)

● USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)。

嵌入式自举程序代码位于系统存储器中,在芯片生产期间由 ST 编程。

物理重映射

选择自举引脚后,应用程序软件可以将某些存储器设定为从代码空间进行访问(这样,可通过ICode 总线而非系统总线执行代码)。这样的修改通过在 SYSCFG 控制器中编程第 8.2.1 节: SYSCFG 存储器重映射寄存器 (SYSCFG_MEMRMP) 来实现。

3 嵌入式 Flash 接口

主要特性

● Flash 读操作

● Flash 编程/擦除操作 ● 读/写保护

● I-Code 上的预取操作

● I-Code 上的 64 个缓存(128 位宽) ● D-Code 上的 8 个缓存(128 位宽)

● 对于 STM32F40x 和 STM32F41x,容量高达 1 MB;对于 STM32F42x 和 STM32F43x, 容量高达 2 MB

● 128 位宽数据读取

● 字节、半字、字和双字数据写入 ● 扇区擦除与全部擦除 ● 存储器组织结构 Flash 结构如下:

— 主存储器块,分为 4 个 16 KB 扇区、1 个 64 KB 扇区和 7 个 128 KB 扇区 — 系统存储器,器件在系统存储器自举模式下从该存储器启动 — 512 字节 OTP(一次性可编程),用于存储用户数据

OTP 区域还有 16 个额外字节,用于锁定对应的 OTP 数据块。

— 选项字节,用于配置读写保护、BOR 级别、软件/硬件看门狗以及器件处于待机或 停止模式下的复位。

● 低功耗模式(有关详细信息,请参见参考手册的“电源控制 (PWR)”部分)

自适应实时存储器加速器 (ART Accelerator?)

Flash 控制寄存器解锁

复位后,Flash 控制寄存器 (FLASH_CR) 不允许执行写操作,以防因电气干扰等原因出现对 Flash 的意外操作。此寄存器的解锁顺序如下:

1.在 Flash 密钥寄存器 (FLASH_KEYR) 中写入 KEY1 = 0x45670123 2. 在 Flash 密钥寄存器 (FLASH_KEYR) 中写入 KEY2 = 0xCDEF89AB

如果顺序出现错误,将返回总线错误并锁定 FLASH_CR 寄存器,直到下一次复位。 也可通过软件将 FLASH_CR 寄存器中的 LOCK 位置为 1 来锁定 FLASH_CR 寄存器。 擦除

Flash 擦除操作只能针对扇区或整个 Flash(批量擦除)执行。擦除时间取决于 PSIZE 编程 值。 通过 FLASH_CR 寄存器中的 PSIZE 字段配置并行位数。并行位数表示每次对 Flash 进行写 操作时将编程的字节数。PSIZE 受限于电源电压以及是否使用外部 VPP 电源。

编程

不允许针对 Flash 执行跨越 128 位行界限的数据编程操作。

写访问宽度(字节、半字、字或双字)必须与所选并行位数类型(x8、x16、x32 或 x64)相 符。

选项字节 OTP

OTP 区域划分为 16 个 32 字节的 OTP 数据块和 1 个 16 字节的 OTP 锁定块。OTP 数据块 和锁定块均无法擦除。锁定块中包含 16 字节的 ,用于锁定相应的 OTP 数据块(块 0 到 15)。每个 OTP 数据块均可编程,除非相应的 OTP 锁定字节编程为 0x00。锁定字节的值只能是 0x00 和 0xFF,否则这些 OTP 字节无法正确使用。

4 CRC 计算单元

CRC 主要特性

● 使用 CRC-32 (以太网)多项式:0x4C11DB7

— X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2+ X +1 ● 单输入/输出 32 位数据寄存器

● CRC 计算在 4 个 AHB 时钟周期 (HCLK) 内完成 ● 8 位通用寄存器 (可用于临时存储)

5电源控制器 (PWR)

器件的工作电压 (VDD) 要求介于 1.8 V 到 3.6 V 之间。嵌入式线性调压器用于提供内部 1.2 V 数字电源。

当主电源 VDD 断电时,可通过 VBAT 电压为实时时钟 (RTC)、RTC 备份寄存器和备份 SRAM (BKP SRAM) 供电。 备份域访问

复位后,备份域(RTC 寄存器、RTC 备份寄存器和备份 SRAM)将受到保护,以防止意外 的写访问。要使能对备份域的访问,请按以下步骤进行操作: ● 访问 RTC 和 RTC 备份寄存器

1.将 RCC_APB1ENR 寄存器中的 PWREN 位置 1,使能电源接口时钟

2. 将用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的 PWR 电源控制寄存器 (PWR_CR)中的 DBP 位置 1,使能对备份域的访问 3. 选择 RTC 时钟源

4. 通过对 RCC 备份域控制寄存器 (RCC_BDCR) 中的 RTCEN [15] 位进行编程,使能 RTC 时钟

● 访问备份 SRAM

1.将 RCC_APB1ENR 寄存器中的 PWREN 位置 1,使能电源接口时钟

2. 将用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的 PWR 电源控制寄存器的 DBP 位 置 1,使能对备份域的访问。

3. 通过将 RCC AHB1 外设时钟使能寄存器 (RCC_AHB1ENR) 中的 BKPSRAMEN 位置 1, 使能备份 SRAM 时钟。 RTC 和 RTC 备份寄存器

RTC 包含 20 个备份数据寄存器 (80 字节),在检测到入侵事件时将复位。 备份 SRAM

备份域还包括仅可由 CPU 访问的 4 KB 备份 SRAM,可被 32 位、16 位、8 位访问。使能低功耗备份调压器时,即使处于待机或 VBAT 模式,备份 SRAM 的内容也能保留。一直存在 VBAT 时,可以将此备份 SRAM 视为内部 EEPROM

入侵事件不会擦除备份 SRAM。备份 SRAM 设置了读保护,可防止用户对加密私钥等机密 数据进行访问。擦除备份 SRAM 的唯一方法是在请求将保护级别从级别 1 更改为级别 0 时 通过 Flash 接口实现

调压器

嵌入式线性调压器为备份域和待机电路以外的所有数字电路供电。调压器输出电压约为 1.2 V。此调压器需要将两个外部电容连接到专用引脚 VCAP_1 和 VCAP_2,

电源监控器

上电复位 (POR)/掉电复位 (PDR)

欠压复位 (BOR)

可编程电压检测器 (PVD)

用于指示 VDD 是大于还是 小于 PVD 阈值。该事件内部连接到 EXTI 线 16,如果通过 EXTI 寄存器使能,则可以产生中 断。

POR/PDR or BOR reset //Power-on/power-down reset (POR/PDR reset) or brownout (BOR) reset

PVD = Programmable Votage Detector

低功耗模式

器件有三个低功耗模式:

● 睡眠模式(Cortex?-M4F 内核停止,外设保持运行) ● 停止模式(所有时钟都停止) ● 待机模式(1.2 V 域断电)

此外,可通过下列方法之一降低运行模式的功耗: ● 降低系统时钟速度

● 不使用 APBx 和 AHBx 外设时,将对应的外设时钟关闭

RTC 复用功能可以从低功耗模式唤醒 MCU。 RTC 复用功能包括 RTC 闹钟(闹钟 A 和闹钟 B)、RTC 唤醒事件、RTC 入侵事件和 RTC 时间戳事件。

通过使用 RTC 闹钟或 RTC 唤醒事件,无需依赖外部中断即可将系统从低功耗模式唤醒(自 动唤醒模式)。

6复位和时钟控制 (RCC)

共有三种类型的复位,分别为系统复位、电源复位和备份域复位。 系统复位

除了时钟控制寄存器 CSR 中的复位标志和备份域中的寄存器外,系统复位会将其它全部寄 存器都复位为复位值(请参见图 4)。

只要发生以下事件之一,就会产生系统复位: 1.NRST 引脚低电平(外部复位)

2. 窗口看门狗计数结束(WWDG 复位) 3. 独立看门狗计数结束(IWDG 复位) 4. 软件复位(SW 复位)(请参见软件复位) 5. 低功耗管理复位(请参见低功耗管理复位)

电源复位

除备份域内的寄存器以外,电源复位会将其它全部寄存器设置为复位值 只要发生以下事件之一,就会产生电源复位:

1.上电/掉电复位(POR/PDR 复位)或欠压 (BOR) 复位 2. 在退出待机模式时 备份域复位

备份域复位会将所有 RTC 寄存器和 RCC_BDCR 寄存器复位为各自的复位值。BKPSRAM 不受 此复位影响。BKPSRAM 的唯一复位方式是通过 Flash 接口将 Flash 保护等级从 1 切换到 0。

只要发生以下事件之一,就会产生备份域复位:

1.软件复位,通过将 RCC 备份域控制寄存器 (RCC_BDCR) 中的 BDRST 位置 1 触发。 2. 在电源 VDD 和 VBAT 都已掉电后,其中任何一个又再上电。

时钟

可以使用三种不同的时钟源来驱动系统时钟 (SYSCLK): ● HSI 振荡器时钟 ● HSE 振荡器时钟 ● 主 PLL (PLL) 时钟

器件具有以下两个次级时钟源:

● 32 kHz 低速内部 RC (LSI RC),该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用 于停机/待机模式下的自动唤醒。

● 32.768 kHz 低速外部晶振(LSE 晶振),用于驱动 RTC 时钟 (RTCCLK)

可通过多个预分频器配置 AHB 频率、高速 APB (APB2) 和低速 APB (APB1)。AHB 域的最 大频率为 168 MHz。高速 APB2 域的最大允许频率为 84 MHz。低速 APB1 域的最大允许频率为 42 MHz

如果直接或间接使用 HSE 振荡器作为系统时钟(间接是指该振荡器直接用作 PLL 的输入时 钟,并且该 PLL 时钟为系统时钟)并且检出故障,则系统时钟将切换到 HSI 振荡器并且 HSE 振荡器将被禁止。

基于 TIM5/TIM11 的内部/外部时钟测量

7 通用 I/O (GPIO)

GPIO的英文全称General-Purpose Input /Output Ports AFIO的英文全称Alternate-Fuction Input /Output Ports

可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式: ● 输入浮空 ● 输入上拉 ● 输入下拉 ● 模拟功能

● 具有上拉或下拉功能的开漏输出 ● 具有上拉或下拉功能的推挽输出 ● 具有上拉或下拉功能的复用功能推挽 ● 具有上拉或下拉功能的复用功能开漏

在复位期间及复位刚刚完成后,复用功能尚未激活,I/O 端口被配置为输入浮空模式。 复位后,调试引脚处于复用功能上拉/下拉状态: ● PA15:JTDI 处于上拉状态

● PA14:JTCK/SWCLK 处于下拉状态 ● PA13:JTMS/SWDAT 处于下拉状态 ● PB4:NJTRST 处于上拉状态 ● PB3:JTDO 处于浮空状态

微控制器 I/O 引脚通过一个复用器连接到板载外设/模块,该复用器一次仅允许一个外设的

TIM1 和 TIM8 定时器具有以下特性:

● 16 位递增、递减、递增/递减自动重载计数器。

● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 到 65536 之间。

● 多达 4 个独立通道,可用于: — 输入捕获 — 输出比较

— PWM 生成(边沿和中心对齐模式) — 单脉冲模式输出

● 带可编程死区的互补输出。

● 使用外部信号控制定时器且可实现多个定时器互连的同步电路。 ● 重复计数器,用于仅在给定数目的计数器周期后更新定时器寄存器。 ● 用于将定时器的输出信号置于复位状态或已知状态的断路输入。 ● 发生如下事件时生成中断/DMA 请求:

— 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发) — 触发事件(计数器启动、停止、初始化或通过内部/外部触发计数) — 输入捕获 — 输出比较 — 断路输入

● 支持定位用增量(正交)编码器和霍尔传感器电路。 ● 外部时钟触发输入或逐周期电流管理。

15 通用定时器(TIM2 到 TIM5)

通用 TIMx 定时器具有以下特性:

● 16 位(TIM3 和 TIM4)或 32 位(TIM2 和 TIM5) 递增、递减和递增/递减自动重载计 数器。

● 16 位可编程预分频器,用于对计数器时钟频率进行分频 (即运行时修改),分频系数介 于 1 到 65536 之间。

● 多达 4 个独立通道,可用于: — 输入捕获 — 输出比较

— PWM 生成(边沿和中心对齐模式) — 单脉冲模式输出

● 使用外部信号控制定时器且可实现多个定时器互连的同步电路。 ● 发生如下事件时生成中断/DMA 请求:

— 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发) — 触发事件(计数器启动、停止、初始化或通过内部/外部触发计数) — 输入捕获 — 输出比较

● 支持定位用增量(正交)编码器和霍尔传感器电路 ● 外部时钟触发输入或逐周期电流管理

16 通用定时器(TIM9 到 TIM14)

TIM9/TIM12 主要特性:

● 16 位自动重载递增计数器(属于中等容量器件)

● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 和 65536 之间

● 多达 2 个独立通道,可用于: — 输入捕获 — 输出比较

— PWM 生成(边沿对齐模式) — 单脉冲模式输出

● 使用外部信号控制定时器且可实现多个定时器互连的同步电路 ● 发生如下事件时生成中断:

— 更新:计数器上溢、计数器初始化(通过软件或内部触发) — 触发事件(计数器启动、停止、初始化或者由内部触发计数) — 输入捕获 — 输出比较

TIM10/TIM11 和 TIM13/TIM14 主要特性 ● 16 位自动重载递增计数器

● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 和 65536 之间 ● 独立通道,可用于: — 输入捕获 — 输出比较

— PWM 生成(边沿对齐模式) — 单脉冲模式输出

● 发生如下事件时生成中断:

— 更新:计数器上溢、计数器初始化(通过软件) — 输入捕获 — 输出比较

17基本定时器(TIM6 和 TIM7)

基本定时器(TIM6 和 TIM7)的特性包括: ● 16 位自动重载递增计数器

● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 和 65536 之间

● 用于触发 DAC 的同步电路

● 发生如下更新事件时会生成中断/DMA 请求:计数器上溢

18 独立看门狗 (IWDG)

独立看门狗 (IWDG) 由其专用低速时钟 (LSI) 驱动,因此即便在主时钟发生故障时仍然保持 工作状态。窗口看门狗 (WWDG) 时钟由 APB1 时钟经预分频后提供,通过可配置的时间窗 口来检测应用程序非正常的过迟或过早的操作。

IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时

间精度要求较低的场合。WWDG 最适合那些要求看门狗在精确计时窗口起作用的应用程 序。

当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

IWDG 主要特性

● 自由运行递减计数器

● 时钟由独立 RC 振荡器提供(可在待机和停止模式下运行) ● 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)

硬件看门狗

如果通过器件选项位使能“硬件看门狗”功能,上电时将自动使能看门狗;如果在计数器计数结束前,若软件没有向关键字寄存器写入相应的值,则系统会产生复位。

19 窗口看门狗 (WWDG)

WWDG 主要特性

● 可编程的自由运行递减计数器 ● 复位条件

— 当递减计数器值小于 0x40 时复位(如果看门狗已激活) — 在窗口之外重载递减计数器时复位(如果看门狗已激活)(请参见图 200)

● 提前唤醒中断 (EWI):当递减计数器等于 0x40 时触发(如果已使能且看门狗已激活) 应用程序在正常运行过程中必须定期地写入 WWDG_CR 寄存器以防止 MCU 发生复位。只 有当计数器值低于窗口寄存器值时,才能执行此操作。存储在 WWDG_CR 寄存器中的值必 须介于 0xFF 和 0xC0 之间:

20 加密处理器 (CRYP)

CRYP 主要特性

● 适用于 AES、DES 和 TDES 加密和解密操作 ● AES

— 支持 ECB、CBC、CTR、CCM 和 GCM 链接算法(CCM 和 GCM 仅适用于 STM32F42xxx 和 STM32F43xxx)

— 支持 128 位、192 位和 256 位密钥

— 支持在 CBC、CTR、CCM 和 GCM 模式下使用的 4 × 32 位初始化向量 (IV) ● DES/TDES

— 直接执行简单 DES 算法(使用单一密钥 K1) — 支持 ECB 和 CBC 链接算法

— 支持 64 位、128 位和 192 位密钥(包括奇偶校验) — 支持在 CBC 模式下使用的 2 × 32 位初始化向量 (IV) — 使用 DES 处理一个 64 位块需要 16 个 HCLK 周期 — 使用 TDES 处理一个 64 位块需要 48 个 HCLK 周期 ● DES/TDES 和 AES 的共同点

— 采用 IN 和 OUT FIFO(各具有 8 个字深和 32 位宽,与 4 个 DES 块或 2 个 AES 块相对应)

— 采用自动数据流控制,支持直接存储器访问 (DMA)(使用 2 个通道,分别用于传 入数据和已处理数据)

— 采用数据交换逻辑,支持 1 位、8 位、16 位或 32 位数据

21 随机数发生器 (RNG)

RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的 随机数。 RNG 主要特性

● 提供由模拟量发生器产生的 32 位随机数

● 两个连续随机数的间隔为 40 个 PLL48CLK 时钟信号周期

● 通过监视 RNG 熵来标识异常行为(产生稳定值,或产生稳定的值序列) ● 可被禁止以降低功耗

22 散列处理器 (HASH)

散列处理器完全兼容安全散列算法(SHA-1、SHA-224 和 SHA-256)、MD5(消息摘要算法 5)散列算法和适合多种应用的 HMAC(密钥散列消息认证码)散列算法。对长达 (264 — 1) 位的消息,散列处理器计算消息摘要(SHA-1 算法为 160 位,SHA-256 算法为 256 位, SHA-224 算法为 224 位,MD5 算法为 128 位),而 HMAC 算法则通过散列函数来对消息 进行验证。HMAC 算法存在于两次调用 SHA-1、SHA-224、SHA-256 或 MD5 散列函数。 散列主要特性

● 适合于数据验证应用,符合以下标准:

— FIPS PUB 180-2(联邦信息处理标准出版物 180-2) — 安全散列标准规范(SHA-1、SHA-224 和 SHA-256)

— IETF RFC 1321(互联网工程任务组征求意见文档编号 1321)规范 (MD5) ● 快速计算 SHA-1、SHA-224、SHA-256 以及 MD5(仅 STM32F42xxx 和 STM32F43xxx 中可使用 SHA-224 和 SHA-256) ● AHB 从外设

● 32 位数据字用于输入数据,支持字、半字、字节和位位串表示法(仅采用小端模式数据 表示法)

● 可自动交换,以兼容大端模式 SHA1、SHA-224 和 SHA-256 计算标准(采用小端模式 输入位串表示法)

● 可自动填充来完成输入位串,从而适应模数为 512(16 × 32 位)消息摘要计算

● STM32F405xx/07xx 和 STM32F415xx/17xx 上的 5× 32 位字(H0 到 H5)和 STM32F42xxx

和 STM32F43xxx 上的 8 x 32 位字(H0 到 H7)用于输出摘要,重载可继续被打断的消 息摘要计算

● 连续消息块中摘要的对应 32 位字添加到彼此之中,以构成整个消息的摘要 ● 数据流自动控制,支持直接存储器访问 (DMA)

23 实时时钟 (RTC)

RTC 主要特性

● 包含亚秒、秒、分钟、小时(12/24 小时制)、星期几、日期、月份和年份的日历。 ● 软件可编程的夏令时补偿。

● 两个具有中断功能的可编程闹钟。可通过任意日历字段的组合驱动闹钟。 ● 自动唤醒单元,可周期性地生成标志以触发自动唤醒中断。

● 参考时钟检测:可使用更加精确的第二时钟源(50 Hz 或 60 Hz)来提高日历的精确度。

● 利用亚秒级移位特性与外部时钟实现精确同步。 ● 可屏蔽中断/事件: — 闹钟 A — 闹钟 B — 唤醒中断 — 时间戳 — 入侵检测

● 数字校准电路(周期性计数器调整) — 精度为 5 ppm

— 精度为 0.95 ppm,在数秒钟的校准窗口中获得 ● 用于事件保存的时间戳功能(1 个事件) ● 入侵检测:

— 2 个带可配置过滤器和内部上拉的入侵事件 ● 20 个备份寄存器(80 字节)。发生入侵检测事件时,将复位备份寄存器。 ● 复用功能输出 (RTC_OUT),可选择以下两个输出之一:

— RTC_CALIB:512 Hz 或 1 Hz 时钟输出(LSE 频率为 32.768 kHz)。

可通过将 RTC_CR 寄存器中的 COE[23] 位置 1 来使能此输出。该输出可连接到器件 RTC_AF1 功能。

— RTC_ALARM(闹钟 A、闹钟 B 或唤醒)。

可通过配置 RTC_CR 寄存器的 OSEL[1:0] 位选择此输出。该输出可连接到器件RTC_AF1 功能。

● RTC 复用功能输入:

— RTC_TS:时间戳事件检测。该输入可连接到器件 RTC_AF1 和 RTC_AF2 功能。

— RTC_TAMP1:TAMPER1 事件检测。该输入可连接到器件 RTC_AF1 和 RTC_AF2功能。 — RTC_TAMP2:TAMPER2 事件检测。

— RTC_REFIN:参考时钟输入(通常为市电,50 Hz 或 60 Hz)。

RTC 日历时间和日期寄存器可通过与 PCLK1(APB1 时钟)同步的影子寄存器来访问。这 些时间和日期寄存器也可以直接访问,这样可避免等待同步的持续时间。

24 控制器区域网络 (bxCAN)

bxCAN 主要特性

● 支持 2.0 A 及 2.0 B Active 版本 CAN 协议 ● 比特率高达 1 Mb/s ● 支持时间触发通信方案 发送

● 三个发送邮箱

● 可配置的发送优先级 ● SOF 发送时间戳 接收

● 两个具有三级深度的接收 FIFO ● 可调整的筛选器组:

— CAN1 和 CAN2 之间共享 28 个筛选器组 ● 标识符列表功能 ● 可配置的 FIFO 上溢 ● SOF 接收时间戳 时间触发通信方案

● 禁止自动重发送模式 ● 16 位自由运行定时器

● 在最后两个数据字节发送时间戳 管理

● 可屏蔽中断

● 在唯一地址空间通过软件实现高效的邮箱映射 双 CAN

● CAN1:主 bxCAN,用于管理 bxCAN 与 512 字节 SRAM 存储器之间的通信。 ● CAN2:从 bxCAN,无法直接访问 SRAM 存储器。 ● 两个 bxCAN 单元共享 512 字节 SRAM 存储器

25 内部集成电路 (I2C) 接口

I2C 主要特性

● 并行总线/I2C 协议转换器

● 多主模式功能:同一接口既可用作主模式也可用作从模式 ● I2C 主模式特性: — 时钟生成

— 起始位和停止位生成 ● I2C 从模式特性: — 可编程 I2C 地址检测

— 双寻址模式,可对 2 个从地址应答 — 停止位检测

● 7 位/10 位寻址以及广播呼叫的生成和检测 ● 支持不同的通信速度: — 标准速度(高达 100 kHz) — 快速速度(高达 400 kHz)

● 适用于 STM32F42xxx 和 STM32F43xxx 的可编程数字噪声滤波器 ● 状态标志:

— 发送/接收模式标志 — 字节传输结束标志 — I2C 忙碌标志 ● 错误标志:

— 主模式下的仲裁丢失情况

— 地址/数据传输完成后的应答失败 — 检测误放的起始位和停止位

— 禁止时钟延长后出现的上溢/下溢 ● 2 个中断向量:

— 一个中断由成功的地址/数据字节传输事件触发 — 一个中断由错误状态触发 ● 可选的时钟延长

内部集成电路 (I2C) 接口

648/1284 文档 ID 018909 第 4 版 ● 带 DMA 功能的 1 字节缓冲

● 可配置的 PEC(数据包错误校验)生成或验证:

— 在 Tx 模式下,可将 PEC 值作为最后一个字节进行传送 — 针对最后接收字节的 PEC 错误校验 ● SMBus 2.0 兼容性:

— 25 ms 时钟低电平超时延迟

— 10 ms 主器件累计时钟低电平延长时间 — 25 ms 从器件累计时钟低电平延长时间 — 具有 ACK 控制的硬件 PEC 生成/验证 — 支持地址解析协议 (ARP) ● PMBus 兼容性

26 通用同步异步收发器 (USART)

USART 主要特性 ● 全双工异步通信

● NRZ 标准格式(标记/空格)

● 可配置为 16 倍过采样或 8 倍过采样,因而为速度容差与时钟容差的灵活配置提供了可能

● 小数波特率发生器系统

— 通用可编程收发波特率(有关最大 APB 频率时的波特率值,请参见数据手册)。 ● 数据字长度可编程(8 位或 9 位) ● 停止位可配置 - 支持 1 或 2 个停止位

● LIN (局域互连网络)主模式同步停止符号发送功能和 LIN 从模式停止符号检测功能

— 对 USART 进行 LIN 硬件配置时可生成 13 位停止符号和检测 10/11 位停止符号 ● 用于同步发送的发送器时钟输出

● IrDA(红外线数据协会) SIR 编码解码器 — 正常模式下,支持 3/16 位持续时间 ● 智能卡仿真功能

— 智能卡接口支持符合 ISO 7816-3 标准中定义的异步协议智能卡 — 智能卡工作模式下,支持 0.5 或 1.5 个停止位 ● 单线半双工通信

● 使用 DMA(直接存储器访问)实现可配置的多缓冲区通信 — 使用 DMA 在预留的 SRAM 缓冲区中收/发字节 ● 发送器和接收器具有单独使能位 ● 传输检测标志: — 接收缓冲区已满 — 发送缓冲区为空 — 传输结束标志 ● 奇偶校验控制: — 发送奇偶校验位

— 检查接收的数据字节的奇偶性 ● 四个错误检测标志: — 溢出错误 — 噪声检测 — 帧错误

— 奇偶校验错误

● 十个具有标志位的中断源: — CTS 变化

— LIN 停止符号检测 — 发送数据寄存器为空 — 发送完成

— 接收数据寄存器已满 — 接收到线路空闲 — 溢出错误 — 帧错误 — 噪声错误 — 奇偶校验错误

● 多处理器通信 - 如果地址不匹配,则进入静默模式 ● 从静默模式唤醒(通过线路空闲检测或地址标记检测) ● 两个接收器唤醒模式:地址位(MSB,第 9 位),线路空闲

27 串行外设接口 (SPI)

SPI 特性

● 基于三条线的全双工同步传输

● 基于双线的单工同步传输,其中一条可作为双向数据线 ● 8 位或 16 位传输帧格式选择

● 主模式或从模式操作 ● 多主模式功能

● 8 个主模式波特率预分频器(最大值为 fPCLK/2) ● 从模式频率(最大值为 fPCLK/2)

● 对于主模式和从模式都可实现更快的通信

● 对于主模式和从模式都可通过硬件或软件进行 NSS 管理:动态切换主/从操作 ● 可编程的时钟极性和相位

● 可编程的数据顺序,最先移位 MSB 或 LSB ● 可触发中断的专用发送和接收标志 ● SPI 总线忙状态标志 ● SPI TI 模式

● 用于确保可靠通信的硬件 CRC 功能:

— 在发送模式下可将 CRC 值作为最后一个字节发送 — 根据收到的最后一个字节自动进行 CRC 错误校验 ● 可触发中断的主模式故障、上溢和 CRC 错误标志

● 具有 DMA 功能的 1 字节发送和接收缓冲器:发送和接收请求 I2S 特性

● 全双工通信

● 半双工通信(仅作为发送器或接收器) ● 主模式或从模式操作

● 8 位可编程线性预分频器,可实现精确的音频采样频率(从 8 kHz 到 192 kHz) ● 数据格式可以是 16 位、24 位或 32 位

● 数据包帧由音频通道固定为 16 位(可容纳 16 位数据帧)或 32 位(可容纳 16 位、 24 位、32 位数据帧)

● 可编程的时钟极性(就绪时的电平状态)

● 从发送模式下的下溢标志、接收模式下的上溢标志(主模式和从模式),以及接收和发 送模式下的帧错误标志(仅从模式)

● 发送和接收使用同一个 16 位数据寄存器 ● 支持的 I2S 协议: — I2S Phillps 标准

— MSB 对齐标准(左对齐) — LSB 对齐标准(右对齐)

— PCM 标准(在 16 位通道帧或扩展为 32 位通道帧的 16 位数据帧上进行短帧和长 帧同步)

● 数据方向始终为 MSB 在前

● 用于发送和接收的 DMA 功能(16 位宽) ● 可输出主时钟以驱动外部音频元件。比率固定为 256 × FS(其中 FS 为音频采样频率) ● 两个 I2S(I2S2 和 I2S3)均有专用的 PLL (PLLI2S),可生成更为精确的时钟。 ● I2S(I2S2 和 I2S3)时钟可由 I2S_CKIN 引脚上的外部时钟提供。

28 安全数字输入/输出接口 (SDIO)

SDIO 具有以下特性:

● 完全兼容多媒体卡(MMC)系统规范版本 4.2。卡支持三种不同数据总线模式:1 位(默

认)、4 位和 8 位

● 完全兼容先前版本的多媒体卡(向前兼容性) ● 完全兼容 SD 存储卡规范版本 2.0 ● 完全兼容 SD I/O 卡规范版本 2.0:卡支持两种不同数据总线模式:1 位(默认)和 4 位 ● 完全支持 CE-ATA 功能(完全符合 CE-ATA 数字协议版本 1.1) ● 对于 8 位模式,数据传输高达 48 MHz

● 数据和命令输出使能信号,控制外部双向驱动程序。

多媒体卡/SD/SD I/O 总线上的基本事务是命令/响应事务。这些类型的总线事务直接在命令 或响应结构中传输其信息。此外,某些操作具有数据令牌。

29 以太网(ETH):通过DMA控制器进行介质访问控制 (MAC)

MAC 内核特性

● 支持外部 PHY 接口实现 10/100 Mbit/s 数据传输速率

● 通过符合 IEEE 802.3 的 MII 接口与外部快速以太网 PHY 进行通信 ● 支持全双工和半双工操作

— 支持适用于半双工操作的 CSMA/CD 协议

— 支持适用于全双工操作的 IEEE 802.3x 流量控制

— 全双工操作时可以将接收的暂停控制帧转发到用户应用程序 — 半双工操作时提供背压流量控制

— 全双工操作中如果流量控制输入信号消失,将自动发送零时间片暂停帧 ● 报头和帧起始数据 (SFD) 在发送路径中插入、在接收路径中删除 ● 可逐帧控制 CRC 和 pad 自动生成 ● 接收帧时可自动去除 pad/CRC

● 可编程帧长度,支持高达 16 KB 的巨型帧

● 可编程帧间隔(40-96 位时间,以 8 为步长) ● 支持多种灵活的地址过滤模式:

— 高达四个 48 位完美 (DA) 地址过滤器,对每个字节进行掩码操作 — 高达三次 48 位 SA 地址比较检查,对每个字节进行掩码操作 — 64 位 Hash 滤波器(可选),适用于多播和单播 (DA) 地址 — 可传送所有多播地址帧

— 支持混合模式,因此可传送所有帧,无需为网络监视进行过滤 — 传送所有传入数据包时(每次过滤时)均附有一份状态报告 ● 为发送和接收数据包分别返回 32 位状态

● 支持对接收帧进行 IEEE 802.1Q VLAN 变量检测 ● 为应用程序提供单独的发送、接收和控制接口

● 支持通过 RMON/MIB 计数器 (RFC2819/RFC2665) 进行强制网络统计 ● 使用 MDIO 接口配置和管理 PHY 设备 ● 检测 LAN 唤醒帧和 AMD Magic Packet? 帧

● 在接收功能中支持对接收到的由以太网帧封装的 IPv4 和 TCP 数据包进行校验和卸载 ● 在增强型接收功能中支持检查 IPv4 头校验和以及在 IPv4 或 IPv6 数据包中封装的 TCP、UDP 或 ICMP 校验和

● 支持以太网帧时间戳(请参见 IEEE 1588-2008)。每个帧的发送或接收状态下给出 64

位时间戳

● 两组 FIFO:一个具有可编程阈值功能的 2 KB 发送 FIFO 和一个具有可配置阈值(默认 为 64 个字节)功能的 2 KB 接收 FIFO

● 接收 FIFO 进行多帧存储时,通过在 EOF 传输后向接收 FIFO 插入接收状态矢量,从而 使得接收 FIFO 无需存储这些帧的接收状态

● 在存储转发模式下,可以在接收时过滤所有的错误帧,但不将这些错误帧转发给应用 程序

● 可以转发过小的好帧

● 为接收 FIFO 中丢失或损坏的帧(由于溢出)生成脉冲,借此支持数据统计 ● 向 MAC 内核发送数据时支持存储转发机制

● 根据接收 FIFO 填充(阈值可配置)级别自动生成要发送至 MAC 内核的暂停帧控制或 背压信号

● 发送时处理冲突帧的自动重新发送

● 丢弃延迟冲突、过度冲突、过度延迟和下溢条件下的帧 ● 通过软件控制刷新 Tx FIFO

● 计算 IPv4 头校验和与 TCP、UDP 或 ICMP 校验和并将其插入在存储转发模式下发送的 帧中

● 支持调试时通过 MII 进行内部回送

DMA 特性

● AHB 从接口中支持所有 AHB 突发类型

● 软件可以在 AHB 主接口中选择 AHB 突发类型(固定或不确定突发) ● 可以从 AHB 主端口选择地址对齐突发

● 通过帧定界符优化以数据包为导向的 DMA 传输 ● 支持对数据缓冲区进行字节对齐寻址

● 双缓冲区(环)或链表(链接)描述符链接

● 采用描述符架构可以在 CPU 几乎不干预的情况传输大型数据块。 ● 每个描述符可传输高达 8 KB 的数据 ● 报告正常工作和传输错误时的综合状态

● 可为发送和接收 DMA 引擎单独编程突发大小,以充分利用主总线 ● 可编程中断选项,适用于不同的工作条件 ● 按帧控制发送/接收完成中断

● 接收引擎和发送引擎间采用循环调度仲裁或固定优先级仲裁 ● 启动/停止模式

● 当前 Tx/Rx 缓冲区指针作为状态寄存器 ● 当前 Tx/Rx 描述符指针作为状态寄存器

PTP 特性

● 接收帧和发送帧时间戳 ● 粗略校准法和精细校准法

● 系统时间大于目标时间时触发中断 ● 输出秒脉冲(产品复用功能输出)

站管理接口 (SMI) 允许应用程序通过 2 线时钟和数据线访问任意 PHY 寄存器。该接口支

持 访问多达 32 个 PHY。

电源管理 (PMT) 机制。PMT 支持接收网络(远程)唤醒帧和魔 术数据包帧

精密时间协议 (IEEE1588 PTP)

DMA 和 STM32F4xx 通过以下两种数 据结构进行通信: ● 控制和状态寄存器 (CSR) ● 描述符列表和数据缓冲区。

MAC 管理计数器:MMC

30 全速 USB on-the-go (OTG_FS)

OTG_FS 主要特性

通用特性

OTG_FS 接口的通用特性如下:

● 经 USB-IF 认证,符合通用串行总线规范第 2.0 版

● 模块内嵌的 PHY 还完全支持定义在标准规范 OTG 补充第 1.3 版中的 OTG 协议 — 支持 A-B 器件识别(ID 线)

— 支持主机协商协议 (HNP) 和会话请求协议 (SRP) — 允许主机关闭 VBUS 以在 OTG 应用中节省电池电量 — 支持通过内部比较器对 VBUS 电平采取监控 — 支持主机到从机的角色动态切换 ● 可通过软件配置为以下角色:

— 具有 SRP 功能的 USB FS 从机(B 器件) — 具有 SRP 功能的 USB FS/LS 主机(A 器件) — USB On-The-Go 全速双角色设备 ● 支持 FS SOF 和 LS Keep-alive 令牌 — SOF 脉冲可通过 PAD 输出

— SOF 脉冲从内部连接到定时器 2 (TIM2) — 可配置的帧周期 — 可配置的帧结束中断

● 具有省电功能,例如在 USB 挂起期间停止系统、关闭数字模块时钟、对 PHY 和 DFIFO 电源加以管理

● 具有采用高级 FIFO 控制的 1.25 KB 专用 RAM

— 可将 RAM 空间划分为不同 FIFO,以便灵活有效地使用 RAM — 每个 FIFO 可存储多个数据包 — 动态分配存储区

— FIFO 大小可配置为非 2 的幂次方值,以便连续使用存储单元 ● 一帧之内可以无需要应用程序干预,以达到最大 USB 带宽 主机模式特性

OTG_FS 接口在主机模式下具有以下主要特性和要求:

● 通过外部电荷泵生成 VBUS 电压。 ● 多达 8 个主机通道(管道):每个通道都可以动态实现重新配置,可支持任何类型的 USB 传输。

● 内置硬件调度器可:

— 在周期性硬件队列中存储多达 8 个中断加同步传输请求 — 在非周期性硬件队列中存储多达 8 个控制加批量传输请求

● 管理一个共享 RX FIFO、一个周期性 TX FIFO 和一个非周期性 TX FIFO,以有效使用 USB 数据 RAM。 从机模式特性

OTG_FS 接口在从机模式下具有以下特性: ● 1 个双向控制端点 0

● 3 个 IN 端点 (EP),可配置为支持批量传输、中断传输或同步传输 ● 3 个 OUT 端点,可配置为支持批量传输、中断传输或同步传输

● 管理一个共享 Rx FIFO 和一个 Tx-OUT FIFO,以高效使用 USB 数据 RAM ● 管理多达 4 个专用 Tx-IN FIFO(分别用于每个使能的 IN EP),降低应用程序负荷 ● 支持软断开功能。

31 高速 USB on-the-go (OTG_HS)

OTG_HS 主要特性

通用特性

OTG_HS 接口的通用特性如下:

● 经 USB-IF 认证,符合通用串行总线规范 2.0 版本 ● 支持 3 个 PHY 接口 — 片上全速 PHY

— 连接外部全速 PHY 的 I2C 接口 — 连接外部高速 PHY 的 ULPI 接口

● 支持主机协商协议 (HNP) 和会话请求协议 (SRP)

● 在 OTG 应用中允许主机关闭 VBUS 以节省功耗,而不需要外部组件 ● 允许使用内部比较器来监视 VBUS 电平 ● 支持主机和从机之间的动态角色切换 ● 可通过软件配置为以下角色:

— 支持 SRP 的 USB HS/FS 从机(B 器件) — 支持 SRP 的 USB HS/FS/LS 主机(A 器件) — USB OTG FS 双角色设备

● 支持 HS/FS SOF 以及低速 (LS)“Keep-alive”令牌并具有如下功能: — SOF 脉冲引脚输出功能

— SOF 脉冲与定时器 2 (TIM2) 的内部连接 — 可配置的帧周期 — 可配置的帧结束中断

● 模块内嵌 DMA,并可软件配置 AHB 的突发传输类型 ● 具备省电功能,例如在 USB 挂起期间停止系统时钟,关闭数字模块内部时钟域、PHY 和 DFIFO 电源管理

● 具有包含高级 FIFO 管理的专用 4K 字节数据 RAM:

— 可以将存储区配置为不同 FIFO,以便灵活高效地使用 RAM — 每个 FIFO 可包含多个数据包 — 动态地进行存储器分配

— FIFO 大小可配置为 2 的幂以外的值,以便连续使用存储区 ● 一帧之内可以无需要应用程序干预,以达到最大 USB 带宽 主机模式特性

主机模式下的 OTG_HS 接口特征如下: ● 需要外部电荷泵来生成 VBUS ● 具有多达 12 个主机通道(管道),每个通道可动态地进行重新配置,可支持任何类型的 USB 传输

● 内置硬件调度器:

— 在周期性硬件队列中存储多达 8 个中断加同步传输请求 — 在非周期性硬件队列中存储多达 8 个控制加批量传输请求

● 管理一个共享 RX FIFO、一个周期性 TX FIFO 和一个非周期性 TX FIFO,以有效使用 USB 数据 RAM

● 在主机模式下具备对 SOF 帧周期进行动态调校的功能 从机模式特性

OTG_HS 接口在从机模式下具有以下特性: ● 具有 1 个双向控制端点 0

● 具有 5 个 IN 端点 (EP),可配置为支持批量、中断或同步传输 ● 具有 5 个 OUT 端点,可配置为支持批量、中断或同步传输

● 管理一个共享 Rx FIFO 和一个 Tx-OUT FIFO,可高效使用 USB 数据 RAM

● 管理多达 6 个专用 Tx-IN FIFO(每个 IN 配置的 EP 使用一个)以降低应用程序负载 ● 具备软断开功能

32 灵活的静态存储控制器 (FSMC)

FSMC 主要特性

FSMC 能够连接同步、异步存储器和 16 位 PC 存储卡。其主要用途如下: ● 将 AHB 数据通信事务转换为适当的外部器件协议 ● 满足外部器件的访问时序要求

所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一 个外部器件。

FSMC 具有以下主要功能:

● 连接静态存储器映射的器件: — 静态随机访问存储器 (SRAM) — 只读存储器 (ROM)

— NOR Flash/OneNAND Flash — PSRAM(4 个存储区域)

● 两个带有 ECC 硬件的 NAND Flash 存储区域,可检查多达 8 KB 的数据 ● 16 位 PC 卡兼容设备

● 支持对同步器件(NOR Flash 和 PSRAM)的突发模式访问 ● 8 或 16 位宽的数据总线

● 每个存储区域有独立的片选控制 ● 每个存储区域可独立配置

● 可对时序进行编程,以支持各种器件,尤其是: — 等待周期可编程(最多 15 个时钟周期) — 总线周转周期可编程(最多 15 个时钟周期)

— 输出使能和写入使能延迟可编程(最多 15 个时钟周期) — 独立的读和写时序和协议,以支持各种存储器和时序

● 写使能和字节通道选择输出,可配合 PSRAM 和 SRAM 器件使用

● 将 32 位的 AHB 事务转换为针对外部 16 位或 8 位器件进行的连续 16 位或 8 位访问。

● 用于写入的 FIFO,2 字长(对于 STM32F42x 和 STM32F43x,为 16 字长),每个字为 32 位宽,仅用于存储数据,而不存储地址。因此,此 FIFO 仅会缓冲 AHB 批量写事务。 从而可对慢速存储器执行写入操作后能快速释放 AHB,以供其它操作使用。每次仅缓 冲一个突发事务:如果在有操作正在进行时发生一个新的 AHB 突发事务或者一个单独 事务,则 FIFO 将会清空。FSMC 将插入等待周期,直至当前存储器访问已完成)。 ● 外部异步等待控制

33 调试支持 (DBG)

ARM Cortex?-M4F 内核提供集成片上调试支持。它包括: ● SWJ-DP:串行/JTAG 调试端口 ● AHP-AP:AHB 访问端口 ● ITM:指令跟踪单元 ● FPB:Flash 指令断点 ● DWT:数据断点触发

● TPUI:跟踪端口单元接口(大封装上提供,其中会映射相应引脚) ● ETM:嵌入式跟踪宏单元(大封装上提供,其中会映射相应引脚) 它还包括专用于 STM32F4xx 的调试功能: ● 灵活调试引脚分配

● MCU 调试盒(支持低功耗模式和对外设时钟的控制等)

STM32F4xx MCU 中提供了一些 ID 代码。ST 强烈建议工具设计人员使用位于外部 PPB 存 储器映射的地址 0xE0042000 中的 MCU DEVICE ID 代码锁定调试工具。

34 设备电子签名

唯一设备 ID 寄存器(96 位)

唯一设备标识符最适合:

● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)

● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性 ● 激活安全自举过程等

本文来源:https://www.bwwdw.com/article/w617.html

Top