STM32最小系统硬件组成详解

电源、复位、时钟、启动、调试接口  

1、电源

常见电源名词解析

VCC 电路的供电正电压   GND  电路的供电负电压   VDDD 芯片的工作数字正电压 VSSD 芯片的工作数字正电压 VDD 芯片的工作正电压  VSS  芯片的工作负电压 VREF+ 

 ADC基准参考正电压

VREF- ADC基准参考负电压 VDDA 芯片的工作模拟正电压 VSSA 芯片的工作模拟负电压  VBAT 电池或其他电源供电  VEE 负电压供电

        1.1、一般3.3V  LDO供电   加多个 0.01uF 去耦电容  

        1.2、MCU 电源部分

 1.2.1  VDD、VSS工作电源

           两脚之间靠近芯片要加0.1uF电容,有多少组加多少个

 1.2.2  VDDA、VSSA工作模拟电源

           两脚之间靠近芯片要加滤波处理同时分别接到VDD、VSS

1.2.3  VREF+、VREF-  ADC基准参考电压

1.2.4  VBAT 电池备份区域

        使用电池或其他电源连接到VBAT 脚上,当VDD 断电时,可以保存备份寄存器的内容和维持RTC的功能。

 1.2.5  VCAP1、VCAP2调压器引脚

        芯片上VCAP脚,他需要外接一个电容到地。目的是为了保证内部主调压器的电压稳定,选择不当可能会引起程序无法下载或者运行不稳定的情况。

最小系统电源总结:VDD、VSS、VCAP1、VCAP2是必须接的。VDDA、VSSA  VREF+、VREF-若没用ADC、DAC可以分别接到VDD、VSS。

2、复位

2.1 MCU系统硬件复位

       有三种复位方式:上电复位、手动复位、程序自动复位

        通常低电平复位:(51单片机高电平复位,电容电阻位置调换)

        上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,计算方式如下:t = 1.1RC(固定计算公式)  1.1*10K*0.1uF=1.1ms

        手动复位:按键按下时,RESET和地导通,从而产生一个低电平,实现复位。

2.2 内部电源监视器 使能/禁止脚 PDR_ON 

        一些 STM32 产品能够,通过 PDR_ON 引脚电平进行控制实现内部电源监视器使能/禁止。这个管脚大于1V小于2V就会有复位动作,如果是稳定的3.3V供电就接高电平也可以接低电平,如果是不想让复位就接低电平,接低电平外部电压过低不会复位。

最小系统复位总结:硬件复位电路必须要。PDR_ON有些单片机有,有些没有,有的话没特别要求就上拉到VDD。

3、时钟       

3.1、使用内部时钟

1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。

2)对于少于100脚的产品,OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性。

3.2、使用外部时钟

        外部可选择外部高速时钟 或 外部低速时钟 32.768kHZ。

3.2.1  外部低速时钟(LSE OSC)32.768kHZ

        32.768K HZ时钟作用:用于精准计时电路  万年历

        通常会选择32.768KHz的晶振,原因在于32768=2^15,而嵌入式芯片分频设置寄存器通常是2的次幂的形式,这样经过15次分频后得到1HZ的频率。实现精准定时。用于精准计时电路  万年历 。

3.2.2 外部高速时钟(HSE OSC)4~26MHZ

        晶振:一般选择 8MHZ  方便倍频。有源晶振、无源晶振 最大区别:是否需要单独供电 。

A、有源:更稳定 成本更高 需要接电源供电,不需要外围电路。3脚单线输出,OSC_OUT不接,悬空。

B、无源:精度基本够 方便灵活 便宜。无需接电源供电,电路接法:晶振 + 起振电容  +(反馈电阻MΩ级)。

起振电容作用

1)、使晶振两端的等效电容等于或接近于负载电容;

2)、起到一定的滤波的作用,滤除晶振波形中的高频杂波;

        该起振电容的大小一般选择10~40pF,当然根据不同的单片机使用手册可以具体查阅,如果手册上没有说明,一般选择20pF、30pF即可,这是个经验值。调整电容可微调振荡频率:一般情况下,增大电容会使振荡频率下降,而减小电容会使振荡频率升高

晶振并联电阻作用:负反馈 、限流。

1)、连接晶振的芯片端内部是一个线性运算放大器,将输入进行反向180度输出,晶振处的负载电容电阻组成的网络提供另外180度的相移; 整个环路的相移360度,满足振荡的相位条件,

2)、 晶振输入输出连接的电阻作用是产生负反馈,保证放大器工作在高增益的线性区,一般在M欧级;一般1MΩ。

3、 限流的作用,防止反向器输出对晶振过驱动,损坏晶振,有的晶振不需要是因为把这个电阻已经集成到了晶振里面。

4、启动

        用户使用通常都设置成Boot0  Boot1均为0即均为低电平 。

        M3核的器件有3种启动方式,M4的有4种。通过BOOT0,BOOT1的电平进行选择。

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

1)用户闪存 = 芯片内置的Flash。

2)SRAM = 芯片内置的RAM区,就是内存啦。

3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,它是使用USART1作为通信口。

       M4在上述基础上又增加了可在FSMC的BANK1区域启动。

5、调试接口

STM32有两种调试接口,JTAG为5针,  SWD为2线串行(一共四线),下图是SWD

ARM 仿真器种类与概念(JTAG、SWD、JLink、ULink、ST-Link):

https://blog.csdn.net/weixin_46672094/article/details/121106421

03-09
<think>好的,用户想查询与VCAP相关的技术信息,特别是编程语言或框架的资料。首先我需要确定VCAP在这里指的是什么。根据提供的引用资料,引用[4]提到了CloudController源码和Cloud Foundry的核心cloud_controller,而VCAP可能与Cloud Foundry有关。因为在Cloud Foundry的上下文中,VCAP通常指的是其环境变量,比如VCAP_SERVICES和VCAP_APPLICATION,这些用于传递应用配置和服务绑定信息。 接下来,我需要检查用户提供的引用内容。引用[1]提到蓝心千询,引用[2]关于SCDF的安装,引用[3]是Spring Cloud Gateway,引用[4]提到CloudController和Cloud Foundry。因此,VCAP很可能与Cloud Foundry相关,而不是一个独立的编程语言或框架。 用户可能将VCAP误解为某个编程语言或框架,但实际上它是Cloud Foundry平台的一部分。需要向用户澄清这一点,并解释VCAP环境变量的作用,以及相关的技术资料,如Cloud Foundry的文档和Spring Cloud Connector等工具。同时,根据用户的问题,生成相关问题,帮助用户进一步了解VCAP和Cloud Foundry的相关内容。</think>根据您提供的信息,“VCAP”并非指某个具体的编程语言或框架,而是与**Cloud Foundry**平台相关的环境变量配置,主要用于传递应用程序的部署和服务绑定信息[^4]。以下是详细说明: --- ### **1. VCAP环境变量解析** 在Cloud Foundry平台中,当应用程序部署到云环境时,系统会自动注入两个核心环境变量: - **`VCAP_APPLICATION`**:包含当前应用的元数据,如应用名称、实例数、内存限制等。示例: ```json { "application_name": "my-app", "space_id": "a1b2c3", "limits": {"mem": 512} } ``` - **`VCAP_SERVICES`**:存储绑定到应用的服务(如数据库、消息队列)的连接信息。示例: ```json { "mysql": [{ "credentials": {"host": "db.example.com", "username": "user"} }] } ``` --- ### **2. 相关技术资料** 若需开发与Cloud Foundry集成的应用,可参考以下技术栈: - **Spring Cloud Connector**:简化从`VCAP_SERVICES`解析服务配置的过程,支持Java应用快速接入数据库、消息中间件等[^3]。 - **Cloud Foundry CLI**:命令行工具用于管理应用部署、服务绑定及环境变量查看。 - **官方文档**:Cloud Foundry的[VCAP环境变量文档](https://docs.cloudfoundry.org/devguide/deploy-apps/environment-variable.html)详细说明了变量结构和使用场景。 --- ### **3. 示例代码(Java解析VCAP_SERVICES)** ```java import org.springframework.cloud.cloudfoundry.CloudFoundryServiceInfoCreator; import org.springframework.cloud.service.ServiceInfo; public class MyServiceParser { public void parseServices() { String vcapServices = System.getenv("VCAP_SERVICES"); // 使用Spring Cloud工具解析为服务列表 List<ServiceInfo> services = CloudFoundryServiceInfoCreator.fromJson(vcapServices); } } ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值