第5章STM32F407单片机的基本原理
5.1概述 STM32F4系列单片机是ST(STMicroelectronics,意法半导体)公司于2011年推出的基于ARM内核CortexM4的32位微控制器。CortexM4内核是为低功耗和价格敏感的应用而专门设计的,具有突出的性价比和处理速度。STM32F4系列单片机又分为STM32F40x、STM32F41x、STM32F42x和STM32F40x等几个系列,数十个产品型号。不同型号单片机在软件和引脚方面具有良好的兼容性。本书选用的单片机型号为STM32F40x系列的STM32F407VET6(以下简称STM32F407单片机),TQFP100封装。 STM32F407单片机的简化框图如图5.11所示,其主要片内资源及特点有: (1) 采用先进的CortexM4内核。带32位单精度硬件FPU(Floating Point Uint)。支持浮点指令集,支持DSP指令,可实现**的信号处理和复杂的算法。 (2) 内含自适应实时存储器加速器(ART加速器)。ART加速器通过预取指令和分支缓存,在运行频率达到168MHz时,CPU无须等待闪存,提高了系统的总体速度和能效。 (3) 丰富的资源。片内含有192KB SRAM、512KB FlashROM、带摄像头接口(DCMI)、全速USB OTG、真随机数发生器RNG、3个12位ADC(2.4MSPS)、2个12位DAC、12个16位定时器、2个32位定时器、DMA、3个I2C、4个UART、3个SPI、2个CAN、SDIO接口、10/100M Ethernet MAC等。 (4) 并行总线接口FSMC。 (5) 时钟系统。包括4~26MHz外部晶体、16MHz内部RC振荡器(1%精度)、32kHz内部低频振荡器、32kHz外部晶体振荡器。 (6) 更低的功耗。功耗为238μA/MHz。 从图5.11所示的框图可知,STM32F407单片机内部有多条总线,不同的外设是挂在不同的总线上。在使用片内外设时,需要了解该外设与什么总线相连、总线的带宽等信息。单片机内部的几条主要总线说明如下: (1) AHB1(Advanced High performance Bus)总线,频率可达168MHz。主要用于连接GPIO端口以及两个AHB/APB桥。其中两个AHB/APB桥与两个DMA控制器单独开辟了用于DMA传输的总线,从而大大减少了AHB1总线的负担。 (2) AHB2总线。主要用于连接随机数生成器RNG、摄像头接口和全速USBOTG单元。因为在图像应用中摄像头接口数据量太大,单独开辟总线避免和其他设备争总线造成系统反应缓慢。 (3) AHB3总线。只连接了FSMC单元,FSMC单元用于外扩存储器(包括ROM、SRAM和SDRAM等),FSMC单元使用独立总线可获得快速的存取响应。 (4) APB1(Advanced Peripheral Bus)总线。*高时钟频率为42MHz,用于连接I2C、SPI2、DAC、定时器2~7、定时器12~14等片内外设。
图5.11STM32F407单片机的简化框图
(5) APB2(Advanced Peripheral Bus)总线。*高时钟频率为84MHz,用于连接SPI1、USART、ADC、定时器1、定时器8~11等片内外设。 以下为了叙述方便,将单片机内部除CortexM4内核外的部件均称为片内