首页 > 编程知识 正文

stm32f103最小系统原理,stm32f030

时间:2023-05-06 16:13:40 阅读:18118 作者:1591

单片机最小系统是指构成能够以最小电路运行单片机的系统,通常最小系统包括电源电路、时钟电路、复位电路、调试/下载电路,对STM32进行启动选择

根据电源电路的不同,MCU的动作电压可能不同。 例如,51单片机通常为5V,STM32单片机通常为3.3V。 因此,通常要确定工作电压和规格,需要参考本MCU的数据手册。

打开“2_官方资料”中的《1_STM32F103xE数据手册【重要】.pdf》 (以下简称,《数据手册》 ),找到“5.1.6Power supply scheme”电源方案总结,即可看到图5.2.1的框图。

根据《数据手册》“5.3.1 generaloperatingconditions”中的表5.2.1,可以看出上图中各电压值的大小。

VDD-VSS :标准工作电压; 电压范围: 2V~3.6V; VDD1 ~ VDD11、VSS1 ~VSS11一共11组; 需要11个100nF、1个4.7uF去耦电容器; 经过MCU内部的Regulator电源管理,向CPU、存储器等供电; VDDA-VSSA :模拟工作电压; 电压范围: 2.4V~3.6V (未使用ADC ) 2.4V~3.6V (使用ADC ); 需要一个10nF和一个1uF去耦电容;由VDDA输入,向ADC、DAC等供电; VREFVREF-:基准基准电压; 电压范围: 2.4V~ VDDA; 可以使用独立的基准电压vref (需要10 nf-1 uf的高频滤波电容),也可以使用VDDA输入将ADC、DAC等作为基准基准电压。 VBAT:RTC备用电源电压范围: 1.8V~ 3.6V; 通常使用纽扣电池的外部电源,主电源的VDD断电后,VBAT为实时时钟(RTC )和备份寄存器供电)时,功耗超低); 从数据手册中获得以上知识后,请看原理图第3页的MCU电源部分。 左侧的U1B(U1a和u1b共同构成u1,即MCU )是MCU的所有电源相关端子,可见VDDA、VDD1 ~ VDD11、VREF直接连接到vdd _ 3v3 (3.3v )、VSSA、 VREF-右侧均为一系列去耦电容器,这些电容器在布局(PCB )走线时,需要均匀分布在各组电源引脚附近。 此时,MCU的电源部分满足数据手册的要求。

上一个VDD_3V3必须从外部提供给MCU。 也就是说,必须通过电源适配器供电,但典型的电源适配器通常为5V或12V,因此还需要将外部输入的12V或5V转换为3.3V的电源转换电路。 下图5.2.3、图5.2.4、图5.2.5分别为12V电源输入电路、12V旋转5V电路、5V旋转3.3V电路。 5V旋转3.3V电路配有红色LED灯,提示用户全系统电源正常工作,这部分电路读者只需理解即可。

最后从RTC电源电路来看,外部12V输入时,VDD_3V3为3.3V,而J5的纽扣电池约为3V,D5为肖特基二极管。 此时,VDD_3V3大于纽扣电池的电压,因此由VDD_3V3供电。 在外部12V没有输入的情况下,VDD_3V3为0V,但J5的纽扣电池约为3V。 在这种情况下,VDD_3V3小于纽扣电池的电压,由纽扣电池供电,确保RTC继续运行。 电路如图5.2.6所示。

时钟电路MCU是由非常复杂的数字电路和其他电路组成的集成芯片,需要稳定的时钟脉冲信号才能保证正常工作。 时钟就像人体内部的心脏一样,心脏跳动一下,让血液流动一下。 一旦发生时钟,就让处理器执行指令。 不仅是CPU,芯片上的所有外围设备(GPIO、I2C、SPI等)都需要时钟,这表明时钟的重要性。

芯片工作的时钟频率越高,芯片的处理速度越快,但同时功耗也越高。 为了兼顾功耗和性能,微处理器通常具有多个时钟源,同时将时钟划分为多个大小以适应不同需求的外围设备。

在《数据手册》中,可以获得类似于图5.2.7的时钟树。 这里,我只关心钟表的来源。 时钟的分配稍后说明。

总共可以看到四个时钟源。HSI(High Speed Internal clock signal):

HSI是内部的高速时钟信号,频率为8MHz。 因为是内部提供,所以可以降低成本。 缺点是精度差。HSE(High Speed External clock signal):

HSE是外部的高速时钟信号,需要外部电路的晶振,输入频率范围要求为4-16MHz。 因为我们需要外部电路

虽然供给、成本会增加,但是精度很好。LSE(Low Speed External clock signal):

LSE是外部的低速时钟信号,需要外部电路的晶体振荡,输入频率范围要求32.768KHz。 一般在RTC实时使用

手表。LSI(Low Speed Internal clock signal):

LSI是内部的低速RC振荡器,频率为40KHz。 一般用于看门狗、RTC实时时钟等。

STM32F103系列MCU需要高速时钟和低速时钟。 这两个时钟可以选择使用内部时钟源节约成本,也可以选择外部时钟

时钟源输入提高精度。如果使用内部时钟源,则无需设计外部电路,反之,则需要时钟电路。

继续查看《数据手册》,可以看到如图 5.2.8 和图 5.2.9 所示的外部时钟输入参考电路。手册上提到对于HSE,当晶振为8MHz时,CL1和CL2的容值范围为5pF~25pF。REXT用于产生负反馈,保证放大器工作在高增益的线性区,同时也起到限流作用,通常在兆欧级,具体由晶振决定。

对于LSE,当晶振为32.768KHz时,CL1和CL2的容值范围为5pF~15pF。之所以选择32.768KHz,是因为32768=215,分频设置寄存器通常为2n的形式,这样经过15次分频就很容易得到1Hz的频率。

从数据手册了解到以上知识后,再来看看原理图第三页的时钟电路部分,如图 5.2.10 所示。高速时钟和低速时钟都可由外部提供,且电路设计与数据手册一致。

晶振旁的负载电容,应选择高质量陶瓷电容(NPO),以满足高频率场合。在Layout(PCB布局走线)时,晶振和负载电容,应尽可能的靠近MCU,以减少输出失真和启动时的稳定时间,保证振荡器可靠工作。

复位电路

嵌入式系统中,由于外界环境干扰,难免出现程序跑飞或死机,这时就需要复位让MCU重新运行。查看《参考手册》,可见如图 5.2.11 所示复位电路。该电路将一个按键接在了NRST引脚,一旦按键按下,NRST就会接地,拉低NRST,实现复位。

再来看看原理图上的复位电路,如图 5.2.12 所示。当开发板正常工作时,VDD_3V3上拉NRST, POWER_EN为前面12V转5V电源芯片的使能引脚,此时被电源芯片钳位在6.5V。当SW1被按下,D1为肖特基二极管,NRST和POWER_EN都会导通接地,拉低NRST和POWER_EN,使MCU复位,同时断开系统供电。

调试/下载电路

不同的MCU,调试/下载的方式可能不一样。比如51系列单片机,使用串口下载程序,同时也使用仿真调试。对于STM32,可以使用串口下载程序,也能使用串口打印进行简单调试,但STM32支持更高效的JTAG(Joint Test Action Group)调试接口和SWD(Serial Wire Debug)调试接口。

该电路比较简单,所涉及的引脚参考表 3.4.1,原理图如图 5.2.13 所示。

启动选择电路

不同的MCU,启动的方式的种类可能不一样。比如51系列单片机,只能从内置存储器读取数据启动,因此没有启动选择的必要。对于STM32,可以从内置存储器启动(默认),可以从系统存储器(用于从USART1下载程序),可以从内部SRAM启动(调电消失,可用于调试),出现多个启动方式,就需要启动选择。

STM32通过BOOT1和BOOT2引脚的电平组合进行启动选择,组合方式和电路设计如图 5.2.14 所示。

当J1拨码开关的1、4脚断开(对应开发板红色拨码开关的1号拨码朝下),2、3脚任意(对应开发板红色拨码开关的2号拨码任意)。此时BOO1为0,BOOT1任意,开发板上电,MCU将从内部主存储器读取数据启动,是最常用的启动方式。

当J1拨码开关的1、4脚连接(对应开发板红色拨码开关的1号拨码朝上),2、3脚断开(对应开发板红色拨码开关的2号拨码朝下)。此时BOO1为1,BOOT1为0,开发板上电,MCU将从系统存储器读取数据启动,在系统存储器里面厂家烧写的串口下载程序,此时可以通过USART1烧写新程序到主存储器。

当J1拨码开关的1、4脚连接(对应开发板红色拨码开关的1号拨码朝上),2、3脚连接(对应开发板红色拨码开关的2号拨码朝上)。此时BOO1为1,BOOT1为1,开发板上电,MCU将直接从内部SRAM启动,SRAM的烧写次数寿命比Flash更多,可用于调试。

各启动模式的启动示意图如图 5.2.15 所示。通常,我们只使用主存储器启动即可。从系统存储器启动,实现从串口下载程序也逐渐被淘汰,STM32的高端MCU已经不支持该方式下载。从SRAM启动也没什么必要,目前Flash的烧写寿命次数也远远超过用户实际烧写次数。

【总结】

本小结带领读者学习了如何读原理图,也对STM32的最小系统有了一些了解。后面的电路众多,在分析某个电路时,结合相关手册的参考电路和说明, 加上不断积累,相信读者也能灵活分析原理图。

百问网技术论坛:
http://bbs.100ask.net/

百问网嵌入式视频官网:
https://www.100ask.net/index

百问网开发板:
淘宝:https://100ask.taobao.com/
天猫:https://weidongshan.tmall.com/

技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
QQ群:869222007

单片机-嵌入式Linux交流群:
QQ群:536785813

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。