控制/MCU
序言
我们大多数人在学习stm32过程中都会陷入这样一个误区————只关注软件代码层面而忽视了硬件层面,简单来说就是只会用开发板,一旦需要设计自己的stm32系统就无从下手。本文旨在完成stm32最小系统的设计。
STM32最小系统的组成
STM32最小系统简述
STM32最小系统,就是能让STM32单片机能够正常工作所必须拥有的组成部分的集合,也是STM32单片机正常运行的必要环境。STM32最小系统主要组成部分有:
stm32最小系统包括:
1.供电电路;
2.时钟电路;
3.下载电路;
4.复位电路;
5.BOOT启动模式选择。
因为STM32单片机内部已经集成了时钟电路,所以STM32只需有供电和复位电路就能正常运行。但在实际应用中,为了使单片机的灵活性、抗干扰能力、适应力、可调试的能力等,最小系统中还需带有其它保持最小系统稳定的电路。本文所述的STM32最小系统基于STM32F103RCT6设计。
供电电路
在设计最小系统的供电电路时,需先确定供电的电压,本文所述STM32采用的供电电压为5V的USB供电电路,单片机的工作电压为3.3V,我们需要对电压进行降压处理,因此我们采用AMS1117-3.3芯片,将5V转换成3.3V给单片机供电。
在STM32单片机的某些使用场合中,需要较高的信噪比,所以将模拟信号和数字信号区分开,来规避彼此的影响。在实际应用中,VDDA供电给ADC、DAC模块,VREF+是参考电压输入引脚正极,VREF-是对应的负极。VREF+与VDDA连接,VREF-与VSSA连接。
一般情况下,数字电源VDD与模拟电源VDDA之间只需要接一个简单的低通滤波器即可(RC型、π型),而数字地和模拟地之间可以进行简单的隔离(即在两者之间接一个0Ω的电阻),或者在一些要求不高的场合,直接公用地。
时钟电路
在官方STM32数据手册中,高速外部时钟(HSE)可接4MHz~16MHz的晶振,我们一般接8MHz的晶振,方便进行倍频,在经过PLL锁相环倍频输出后,供给STM32的外设使用。下图所示的时钟电路组成:晶振+起振电容 +(反馈电阻MΩ级)。如不接高速外部时钟时,OSC_IN应接地,OSC_OUT应悬空。
低速外部时钟(LSE),接频率为32.768KHz的晶振,用于提供给(RTC)实时时钟。因为2^15=32768,在经过寄存器设置分频之后,能很容易地得到1Hz的频率,实现精准的定时,可用于计时电路(万年历等)。
有源晶振与无源晶振:
无源晶振:方便灵活、精度一般足够、成本较低、需要外接起振电容
有源晶振:更稳定、需要外接电源供电、不需要外围辅助电路
下载电路
STM32单片机的下载方式有3种,分别是SWD(Serial Wire Debug)、JTAG(Joint Test Action Group)、ISP(in-system programming)下载电路。其中JTAG和SWD下载电路可供用户对程序进行在线调试。
JTAG下载电路:
SWD下载电路:
ISP一键下载电路:一般采用CH340G芯片实现转串口,其中CH340G芯片需要单独的震荡电路,一般使用12MHz的晶振。该芯片将电脑的USB映射为串口使用,电脑在使用CH340G转串口时应安装对应的驱动程序。
ISP下载电路可直接使用转串口接入单片机串口引脚实现相应功能,这里就不贴电路图了。
复位电路
在STM32运行的过程中,为确保系统中电路稳定可靠工作,复位电路必不可少。我们利用复位电路将STM32电路恢复到初始的状态,主要是防止程序混乱,将系统恢复初始状态,以便接收各种指令进行工作。
BOOT启动模式选择
STM32直接通过两个引脚BOOT0和BOOT1设置启动模式(M3和M4):
主闪存存储器(Flash):执行程序;
系统存储器(Bootloder):执行串口程序下载;
内置SRAM:执行SRAM内代码。
附
STM32芯片选择
在设计STM32系统时,我们在选择使用哪款芯片时需要根据项目功能需求来选择,再确定好项目需求之后,我们可以在st官方技术社区下载选型手册或者下载芯片数据手册来确定选择哪款芯片。
一般在stm32中文数据手册的第一页就会有芯片资源描述,你可以根据资源介绍来选择所需的芯片。
芯片引脚功能
在设计STM32系统时,我们需要根据芯片数据手册来确认需要使用的引脚,例如我们需要外接低速外部晶振时,我们需要在芯片手册上找到外接晶振引脚。本文使用STM32F103RCT6芯片,所以是64脚的芯片封装,然后找到外接晶振引脚,就是PC14、PC15。于是在绘制原理图时就可以找到对应引脚,连接相应的外部电路。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !