我们大多数人在学习stm32的时候都会陷入这样的误区——只注重软件代码层面而忽略硬件层面。 简单来说,我们只使用开发板。 一旦我们需要设计自己的stm32系统,我们就无从下手。 本文旨在完成stm32最小系统的设计。
STM32最小系统的组成
STM32最小系统简述
STM32最小系统是STM32微控制器正常工作所必需的组件集合。 也是STM32单片机正常运行所必需的环境。 STM32最小系统的主要组成部分有:
stm32最小系统包括:
1、电源电路;
2、时钟电路;
3、下载电路;
4.复位电路;
5.BOOT启动方式选择。
由于STM32单片机已经集成了时钟电路,因此STM32只需要电源和复位电路即可正常工作。 但在实际应用中,为了增加单片机的灵活性、抗干扰能力、适应性、可调试性等,最小系统还必须有其他电路来维持最小系统的稳定性。 本文介绍的STM32最小系统基于STM32F103RCT6设计。
电源电路
在设计最小系统的电源电路时,首先需要确定电源电压。 本文使用的STM32采用USB供电电路,供电电压为5V。 单片机的工作电压为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(串行线调试)、JTAG(联合测试行动组)和ISP(系统内编程)下载电路。 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。 所以在画原理图的时候就可以找到对应的引脚,连接对应的外部电路。
硬件笔记本,一起学习电路设计、PCB设计、仿真、调试和EMC知识