Stm32 最小系统
Stm32芯片要正常工作起来,必须为芯片加相应的外围电路,使其构成最小系统。
最小系统最基本的电路包括:晶振电路,复位电路,电源电路,下载电路。
如果将Stm32比作人类的大脑,那么电源可以理解为人类的消化系统,将外部输入能量稳定供给单片机;晶振则类似心脏,
提供时序(脉搏)保障芯片内部工作正常;复位可以说是单片机的免疫系统,单片机工作时,有时候会因为程序bug或者硬件原因而工作混乱,
复位可以让单片机系统一切归零,重新开始工作。
晶振电路
stm32工作时序可以由HSE、LSE、HSI、LSI、PLL五个时钟源产生,
其中高速外部时钟(HSE)可以使用一个4~16MHz的晶振构成的振荡器产生;
低速外部时钟(LSE)可以使用一个32.768kHz的晶体/陶瓷谐振器构成的振荡器产生。
时钟源,系统时钟参考:stm32 滴答定时器与数码管
如下图所示,在我们自制的 STM32F103C8最小系统 中, 选取8M晶振作为高速外部时钟,32.768K晶振作为低速外部时钟。
在C8最小系统中,就是通过按下按键,是NRST引脚产生低电平从而复位单片机系统。
备份域复位
备份区域拥有两个专门的复位,它们只影响备份区域。当以下事件中之一发生时,产生备份区域复位。
-
- 软件复位,备份区域复位可由设置备份域控制寄存器
(RCC_BDCR)(见6.3.9节)中的BDRST位产生。
- 软件复位,备份区域复位可由设置备份域控制寄存器
-
- 在VDD和VBAT两者掉电的前提下, VDD或VBAT上电将引发备份区域复位。
电源电路
- VDD = 2.0~3.6V: VDD引脚为I/O引脚和内部调压器供电。
- VSSA、VDDA = 2.0~3.6V:为ADC、复位模块、
RC振荡器和PLL的模拟部分提供供电。使用ADC时, VDDA不得小于2.4V。
VDDA和VSSA必须分别连接到VDD和VSS。 - VBAT = 1.8~3.6V:当关闭VDD时,
(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电
下载电路
在了解下载方式之前我们先看看数据手册中32的启动模式。
启动模式
在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nj3bVIK-1621218393429)(https://taotaodiy-mcu.readthedocs.io/en/latest/_images/principle005.png)]
在系统复位后, 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)访问它,即闪存存储器的内容可以在两个地址区域访问,
0x00000000或0x0800 0000。 - 从系统存储器启动:系统存储器被映射到启动空间(0x0000
0000),但仍然能够在它原有的地址访问它。 - 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。
所以我们也应该明白Keil中设置的某些莫名的值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EcM6EBhD-1621218393429)(https://taotaodiy-mcu.readthedocs.io/en/latest/_images/principle006.png)]{.align-cente}
那么现在再来看stm32单片机的两种下载方式,一种是串口下载,一种是仿真器下载。
串口下载
stm32内嵌了自举程序,存放在系统存储区,由ST在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程,即串口下载程序。
下面是使用CH340芯片组成的一键下载电路。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PHyLaTab-1621218393430)(https://taotaodiy-mcu.readthedocs.io/en/latest/_images/principle007.png)]{.align-cente}
从电路图可以看出,BOOT0和RESET分别由CH340G芯片的RST和DTR控制,而这两个引脚可以通过与下载程序的上位机通信来改变电平的高低,从而控制启动方式进行程序下载。
仿真器下载
stm32支持JLINK、JTAG、ULINK和STLINK等,如原理图所示,我们在这里留的SWD调试接口。
- GND:公共地信 ;
- SWDIO:串行数据输入信 ,作为仿真信 的双向数据信 线,建议上拉;
- SWCLK:串行时钟输入,作为仿真信 的时钟信 线,建议下拉;
- VCC:3.3V
使用jlink或者stlink连接即可下载程序。参考 stm32 调试下载
原文链接
https://taotaodiy-mcu.readthedocs.io/en/latest/base/pcb.html
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!