Stm32基本概念

ARM公司简介

ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。

ARM微处理器的特点

(1)体积小、低功耗、低成本、高性能;
(2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
(3)大量使用寄存器,指令执行速度更快;
(4)大多数数据操作都在寄存器中完成;
(5)寻址方式灵活简单,执行效率高;
(6)指令长度固定。

芯片结构

处理器特点

硬件资源

处理器(Stm32f103RBT6)

处理器参数

电源

STM32F103ZE要求2.0~3.6V的操作电压(VDD),并采用嵌入式的调压器提供内部1.8V的数字电源。当主电源VDD关闭时,实时时钟(RTC)和备用寄存器可以从VBAT供电,官方给出的标准供电。

电源参数

复位

系统复位将复位除了时钟控制器CSR中的复位标志和备用域的寄存器以外的所有寄存器(图1)。当下列事件有一个发生都将产生系统复位:

  1. 窗口看门狗计数终止(WWDG复位)(区间内允许喂狗)
  2. 独立看门狗计数终止(IWDG复位)(任何时候允许喂狗)
  3. 软件复位(SW复位)
  4. 低功耗管理复位

时钟

始终是MCU的心脏。STM32三个不同的时钟源可以用来驱动系统时钟(SYSCLK):

● HSI晶振时钟(高速内部时钟信号)
● HSE晶振时钟(高速外部时钟信号)
● PLL时钟

STM32有两个二级时钟源:
● 40kHz的低速内部RC,它可以驱动独立看门狗,还可选择地通过程序选择驱动RTC。 RTC用于从停机/待机模式下自动唤醒系统。
● 32.768kHz的低速外部晶振,可选择它用来驱动RTC(RTCCLK)。

每个时钟源在不使用时都可以单独被打开或关闭,这样就可以优化系统功耗。

时钟树

下载电路

JTAG/SWD仿真与下载接口

STM32F103 板载的JTAG/SWD 接口电路如图所示。值得注意的是JTAG的标准接口是 20 针。

下载电路

STM32 启动模式

在STM32F10xxx里,可以通过BOOT[1:0] 引脚选择三种不同启动模式

Stm32内存启动

在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。

在从待机模式退出时,BOOT引脚的值将被重新锁存;因此,在待机模式下BOOT 引脚应保持为需要的启动配置。在启动延迟之后,CPU从地址0x0000 0000 获取堆栈顶的地址,并从启动存储器的0x0000 0004 指示的地址开始执行代码。

因为固定的存储器映像,代码区始终从地址0x0000 0000 开始( 通过ICode 和DCode总线访问),而数据区(SRAM) 始终从地址0x2000 0000 开始(通过系统总线访问) 。Cortex-M3的CPU始终从ICode 总线获取复位向量,即启动仅适合于从代码区开始( 典型地从Flash启动) 。STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。

根据选定的启动模式,主闪存存储器、系统存储器或SRAM 可以按照以下方式访问:

● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000) 访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000 。

● 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000) ,但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。

● 从内置SRAM启动:只能在0x2000 0000 开始的地址区访问SRAM。

注意:当从内置SRAM 启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,重新映射向量表之SRAM 中。

内嵌的自举程序存放在系统存储区,由ST在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程: