7

如何设计一款单片机的最小系统

 2 years ago
source link: https://wiki-power.com/%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E4%B8%80%E6%AC%BE%E5%8D%95%E7%89%87%E6%9C%BA%E7%9A%84%E6%9C%80%E5%B0%8F%E7%B3%BB%E7%BB%9F
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何设计一款单片机的最小系统

本文将参照 STM32 单片机(F1 系列)展开讲解。

背景#

学嵌入式,我们一般从单片机学起。学单片机,不能只学软件,硬件知识也要跟上。软硬件相结合的设计,才是真正优秀的设计。

谈及单片机的硬件设计,我们会先将其浓缩为最小系统,即能实现最基础的功能的最简化设计。以 STM32(F1 系列)单片机为例,最小系统无非是这几部分:电源、复位、时钟、启动模式、下载调试

20200605234144.jpg

电源#

STM32 的电源有以下几种类型:

主电源(VDD / VSS)#

主电源指的是标记为 VDD1、VDD2... 的引脚。
每个引脚必须加一个 100nF 的滤波电容,且尽量靠近引脚放置,此外需要一个 10uF 的钽电容公用。

20200605163136.png

20200605163204.png

后备电源(VBAT)#

VBAT 引脚可用于电池供电。如果不用,可以与 VDD 连接在一起。VBAT 也需要一个 100nF 电容滤波。
可参考以下的电源选择电路:

20200605163337.jpg

ADC 电源(VDDA / VSSA)#

为了提高转换精度,ADC 设备可以从这里取电。一般将 VDDA 通过一个电感后, 与 VDD 相连接。

若不用到 ADC,可将 VDD,VDDA,VREF+(如果有的话) 接在一起,并对地接 1uF 钽电容 + 10nF 陶瓷电容滤波。

复位#

因为 STM32 内部有上拉电阻,所以外部只接 100nF 电容 + 按键即可:

20200605163429.png

上电时,CPU 处于复位状态,此时电容充电,NRST 引脚电位持续拉低,当电容充满电后,NRST 电位变为高电平,此时 CPU 退出复位模式,进入正常运行状态。当按钮被按下时,电容被短路清空电量,按钮松开后重新充电,触发复位。

根据官方设计指南,电容选取 100nF 即可,以保证 NRST 低电平持续的时间满足 CPU 复位的最小脉宽要求,能正常触发复位。

如果不需要手动复位功能,也可以略去按键。

时钟#

20200605155729.png

如上图,STM32 的时钟分以下几种:

  1. HSI:高速内部时钟,是内部的 RC 振荡器,频率为 8MHz
  2. HSE:高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~16MHz
  3. LSI:低速内部时钟,RC 振荡器,频率为 40kHz. 独立看门狗的时钟源只能是它,同时它也可以作为 RTC 的时钟源
  4. LSE:低速外部时钟,接频率为 32.768kHz 的石英晶体。LSE 是给 RTC 用的时钟源
  5. PLL:锁相环倍频输出,其时钟输入源可选择为 HSI/2,HSE 或 HSE/2. 倍频可为 2~16 倍,但是输出频率最大不得超过 72MHz

从稳定性上考虑,我们在设计的时候一般使用外部晶振作为时钟源。一般选取 8MHz 晶振作为 HSE,便于倍频(一般倍频到 72MHz);选取 32.768kHz 晶振作为 LSE,RTC 使用便于分频(32768 是 2 的 15 次方,可以得到精准的时间)。

至于晶振的选用,有源的精度高,无源的成本低,一般无源就足够了。
如果选用无源晶振,则需要在两端要加上起振电容,滤除晶振波形中的高频杂波。容值可选 10 ~ 40pF.

晶振输入输出引脚之间可加一个 1M 的电阻,产生负反馈,保证放大器工作在高增益的线性区。同时还起到限流作用,防止反相器驱动过载损坏晶振。

20200605171011.png

20200612130149.jpg

启动模式配置#

一般将 BOOT0 引脚下拉(串接 10K 电阻再接地),BOOT1 任意 即可。

如果需要模式切换,也可以参照以下的设计:

20200605163537.png

启动模式详见 STM32 的启动模式

下载调试接口#

一般我们用 SWD 接口(接线少,方便),直接引出 SWDIO,SWCLK,VCC,GND 即可
不需要添加外部上拉/下拉电阻,因为 STM32 内部已经有集成了。

20200605170741.png

总结#

以上就是 STM32(F1 系列)最小系统的电路设计。更加详细的内容,可以跳转下面的官方文档和相关文章。

参考与致谢#

文章作者:Power Lin
原文地址:https://wiki-power.com
版权声明:文章采用 CC BY-NC-SA 4.0 协议,转载请注明出处。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK