目录
大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。
硬件分享系列的第一节,主要是涉及STM32F1系列最小系统启动设计,不涉及具体外设以及相关驱动芯片设计电路。若需要更深入去了解的话,建议详看参考资料中的文档。
好的,言归正传。直接进入正题。
01 电源电路
电源应用总览
1. VDD 输入[2.0, 3.6],然后内部经过稳压器输出一个1.8V的数字电源;
2. RTC和备份域寄存器由VBAT提供, 可以在VDD关闭后继续工作(VBAT由外部电源供电时,不使用外部电源时,推荐将VDD连接到VBAT引脚);
3. AD转换独立供电可以由VDDA引脚输入;
4. AD转换独立GND可以由VSSA引脚输入;
5. AD转换参考电压VREF+和VREF-,对于64pin甚至更少的芯片,两个引脚未使能,由内部VDDA和VSSA连接;对于100/144-pin的芯片,可以由外部供电提供;
电源PCB设计
1. 使用ADC,VDD输入范围在[2.4, 3.6];否则为[2.0, 3.6];
2. 用作供电的VDD电压,必须经过去耦电容组合后才能输入;
(N个100nF陶瓷电容[N取决于VDD个数] + 1个钽电容/陶瓷电容[min. 4.7uF, typ. 10uF]);
3. VBAT引脚可以连接外部的电池(1.8V-3.6V)供电;不使用外部电池的话,将VDD经过一个100nF的陶瓷电容去耦后作为输入;
4. VDDA引脚必须经过两个外部去耦电容,再作为输入;
(100nF陶瓷电容 + 1uF钽电容/陶瓷电容);
5. VREF+引脚可接外部电源VDDA,如果VREF+连接外部独立的电源时,必须要有一个100nF、1uF电容连接该引脚;并且VREF+保持在[2.4V, VDDA];
6. 过滤模拟噪声措施:
VDDA由VDD经过磁珠过滤高频噪声后作为输入;
VREF+通过一个电阻(typ. 47Ω)连接VDDA;
设计原理图如下:
02 复位电路
复位电路
03 时钟设计
时钟设计
时钟 | 来源 | 说明 |
SYSCLK | 1. HSE 2. HSI 3. PLL | 本推送只涉及硬件电路设计部分,实际配置&软件应用查看参考手册和数据手册; |
LSI RC | 芯片内部低速RC振荡器40Khz | 用于独立看门狗、在Stop/Standby模式下RTC自动唤醒(可选的); |
LSE | 外部石英晶振 (LSE crystal) | 32.768Khz,作为RTC说时钟; |
HSE OSC clock
高速外部时钟(HSE)由两种方式生成:
1. HSE 外部石英/陶瓷起振器;
2. HSE 外部时钟输入;
方式 | 说明 |
Crystal/Ceramic Resonator |
|
BYPASS Clock Source |
|
Crystal/Ceramic Resonator晶振电路如下:
04 BOOT启动设计
Boot mode选择
系统复位后,BOOT引脚的电平在SYSCLK的第4个上升沿锁存;
模式 | 设计说明 |
主存储器 | CM3内核复位后, 程序都是从0x0000_0000开始运行的,三种模式的区别主要是在0x0000_0000和 0x0000_0004地址映射的内容不一致; 主存储器: 0x0000_0000: 0x0800_0000; 嵌入式闪存:0x0000_0000: 0x0200_0000; 系统存储器:0x0000_0000: 0x1FFF_F000; 硬件设计: 系统存储器: BOOT0接电阻,接到GND(BOOT1不关心); 其他模式: BOOT0通过电阻接Vdd,BOOT1通过跳帽切换(或者直接通过电阻拉到对应电平); |
嵌入式闪存 | |
系统存储器 |
PCB设计电路
05 JTAG/SWD烧录模式
引脚功能说明
STM32F1系列集成了SW/JTAG调试端口(SWJ-DP)。MCU复位完成后,SWJ-DP所有引脚都自动配置为调试接口专用引脚(全功能引脚)。JTAG和SW调试接口引脚配置如下图:
在设计和配置过程中,软件可以通过配置,去选择对应的引脚模式,将一些不需要的引脚继续作为通用GPIO使用(写代码要尤其注意,但此处仅设计硬件设计部分,不进行总结)。下图为不同配置下所需的引脚:
PCB原理图设计
20PIN-JTAG设计如下图:
4PIN-SWD设计如下图:
06 文章总结
本篇内容涉及STM32F1系列的最小启动系统的硬件外围电路设计,不涉及具体的外设以及相关驱动芯片的设计电路。
参考文档:
《AN2586-Getting started with STM32F10xxx hardware development》