MCU

Tony

MCU(Microcontroller Unit),也被叫做单片机。

最小系统

1. 复位电路

复位电路的存在是为了让我们能在系统出现错误时,回到程序的起始位置,便于修改代码。也能让我们在系统在被外部因素影响(e.g. 电磁干扰) 后,及时重启。

复位电路分为两种:高电平复位低电平复位,根据单片机的型号而定

1.1 低电平复位

低电平复位
低电平复位

这是一个上电复位的高电平复位电路。当VCC 开始上电,根据电容两端电压不能突变的特性,电容两端的电平低,RESET 引脚的电平为低,继而复位。而当电容充完电,电容部分变为开路,RESET 处于高电平,单片机开始工作。

不难看出电容充电的开满决定了RESET 引脚处于低电平的时间,也决定了单片机上电后多久开始工作。根据单片机的型号不同,复位引脚所需保持的电平的时间也不同。因此电容 的选择需要参考MCU的数据手册决定,不过 0.1uF 的电容较为常见。

1.2 高电平复位

高电平复位
高电平复位

高电平复位的原理与低电平复位相似,不再赘述。

1.3 按键复位

按键复位电路
按键复位电路

当这个低电平复位电路连接上电源后,会先复位一次。当我们按下按钮,相当于RESET引脚直接短接到GND,然后复位。

1.4 看门狗复位

TODO

2. 时钟电路

时钟电路时通过晶体振荡器,为整个系统提供统一信号的电路,可以说是整个系统沟通的 「心脏」

时钟电路
时钟电路

上图是以STM32F103C8T6为例,具体的单片机需要参考其数据手册绘制时钟电路

3. 电源电路

USB的输出电压通常为5V,但MCU 的工作电压一般为3.3V,此时我们便需要通过低压差线性稳压器(LDO)。但有时我们为了驱动比如电机之类的大功率器件时,我们不可能使用多个电压输入输入,解决方法时通过降压型稳压器(DC-DC),来将十几甚至几十 V 的电压降到5V,再输入给LDO。

LDO 进行压降
LDO 进行压降

4. 调试电路、下载电路

MCU 常用的调试电路,有

MCU 常用的下载电路,除了上面的两个,还有

5. 启动电路 (boot)

有些单片机为用户提供了不同的boot 方式,让用户可以选择从不同的程序启动,以下是STM32 的三种boot 模式,

  • 从芯片内部Flash 启动
  • SRAM:从芯片内置的RAM区启动
  • 从系统内存启动:通常是ROM区中的Bootloader 程序,用以通过串口的方式下载程序

参考