STM32自己从零开始实操08:STM32主控原理图

由于老师使用的各引脚分门别类的单片机原理图我没有找到,我使用是引脚按顺序摆放的,不方便一个模块一个模块截图展示,所以这部分使用老师的原理图。

一、电源

1.1电源的介绍

1.1.1数字电源和地(VDD和VSS)

数字电源引脚提供电压给所有的数字电路部分。这些数字电路包括:

  • 处理器核心: 执行指令、处理数据。
  • 存储器: 包括 Flash 和 SRAM,用于存储程序和数据。
  • 数字外设: 包括 GPIO、UART、SPI、I2C、TIMERS 等,用于各种数字通信和控制。
  • 内部振荡器: 产生时钟信号以驱动处理器和其他外设。

数字地引脚提供了所有数字电路部分的接地参考点,有:

  • 所有通过 VDD 供电的电流最终都会返回 VSS,以形成一个完整的电流回路。
  • 在 PCB 设计中,所有的 VSS 引脚通常都连接到一个共同的地平面,以减少电噪声和干扰。

1.1.2模拟电源和地(VDDA和VSSA)

模拟电源引脚提供电压给所有的模拟电路部分。主要包括:

  • ADC(模数转换器): 将模拟信号转换为数字信号。
  • DAC(数模转换器): 将数字信号转换为模拟信号。
  • 内部参考电压源: 提供一个稳定的参考电压给 ADC 和 DAC ,确保转换精度。

模拟地引脚提供了所有模拟电路部分的接地参考点,有:

  • 与 VSS 相同,所有通过 VDDA 供电的电流最终都会返回 VSSA,以形成一个完整的电流回路。

1.1.3两电源的区别与联系

数字电路通常会产生高频开关噪声,这些噪声如果直接干扰到模拟电路,会导致模拟信号的不稳定和精度下降。因此,使用独立的模拟电源和接地可以减少这种干扰。

模拟电路需要一个非常干净、稳定的电源,以确保精确的信号处理,因此 VDDA 通常通过额外的滤波电路进行去耦。

为了减少数字电路产生的高频噪声对模拟电路的干扰,VSSA 和 VSS 通常在 PCB 设计中被单独处理,只有在一个单点连接,通常是靠近电源入口的地方。

1.2滤波介绍

将 3.3V 的电源引入供单片机使用。

(1)120R 磁珠

  • 作用: 磁珠是一种高频阻抗元件,串联在电源线上,阻止高频噪声沿电源线传播。
  • 原理: 磁珠在直流和低频交流信号下表现为低阻抗,但在高频下表现为高阻抗,从而滤除高频噪声。
  • 选择: 120Ω 的磁珠通常用于中等频率范围的噪声抑制。它在高频范围内提供足够的阻抗来衰减噪声。

(2)10µF 电容

  • 作用: 10µF 电容用于低频滤波,平滑直流电压,消除较低频率的电源波动。
  • 原理: 较大电容值在低频下有较小的阻抗,可以有效地平滑直流电压和滤除低频噪声。
  • 位置: 10µF 电容通常放置在电源入口处,以平滑整个电源网络的电压。

(3)0.1µF 电容

  • 作用: 0.1µF 电容用于高频滤波,抑制高频噪声和尖峰干扰。
  • 原理: 较小电容值在高频下有较小的阻抗,可以有效地滤除高频噪声和尖峰干扰。
  • 位置: 0.1µF 电容通常放置在每个 VDD/VDDA 引脚附近,尽量靠近 IC,以提供最有效的高频噪声滤波。 

(4)10nF 电容

  • 补充滤波频段: 与其他滤波电容(10µF、0.1µF)结合使用,可以覆盖更宽的频率范围,为模拟电源提供全频段的电源噪声抑制(上面也说了模拟电源需要非常的纯净)。

1.3电路图

1.4陈氏理解(可能只有我自己能看懂)

数字信号(数字电源供电)比如信号线上的差分信号,1 就是 1 , 0 就是 0 ,差别还是挺大的,不容易混淆,但是变化快,存在对其他形式信号的干扰(此处就是指模拟信号),所以将数字信号和模拟信号区分开了。

再其次,模拟信号不像数字信号那样 1 就是 1 ,0 就是 0 ,它的值是多少会换算成相应的二进制数字,所以更要准确,滤波也更严格。

二、复位

2.1工作过程

  1. 正常工作状态: 当复位按钮未按下时,上拉电阻将 RST 引脚维持在高电平。此时,微控制器处于正常工作状态。
  2. 按下复位按钮: 当按下复位按钮时,RST 引脚被直接拉低到地。这触发了微控制器的复位过程。
  3. 释放复位按钮: 当释放复位按钮时,RST 引脚通过上拉电阻恢复到高电平。需要去耦电容帮助滤除任何在恢复过程中的瞬态噪声(也有按下过程的去耦),确保 RST 引脚稳定地返回高电平,从而使微控制器从复位状态中正常启动。

2.2特殊情况

  • 外部干扰: 在有较强电磁干扰的环境中,复位引脚可能会受到干扰,导致误复位。适当的滤波电路(如更大的电容或更低的上拉电阻)可以进一步增强抗干扰能力。
  • 复位时间: 去耦电容的值决定了复位信号的时间常数。较大的电容会导致较长的复位时间,但可以更好地滤除低频噪声。需要根据实际应用进行选择。

2.3我有一个愚蠢的问题

问:为什么上拉到的电源是数字电源 VDD 而不是模拟电源 VDDA ?

答:

1. 电源稳定性

VDD 稳定性: VDD 是数字电源,通常由稳压器直接供电,电压相对稳定,且开机时能快速达到稳定值。复位电路需要一个稳定的电压源来保证复位信号的可靠性。

VDDA 依赖 VDD: VDDA 是模拟电源,虽然也很稳定,但它通常依赖于 VDD 的供电,在一些设计中,VDDA 可能会经过滤波和调节以满足模拟电路的需求,启动速度和稳定性可能稍微慢于 VDD。

2. 复位电路对数字电路的作用

复位电路主要针对数字电路: 复位信号主要用于重置 STM32 内部的数字电路(包括 CPU 和外设)。数字电路的工作电压是 VDD,因此复位引脚上拉到 VDD 更为合适。

3. 电源电流负载考虑

VDD 电流能力强: VDD 电源的电流供应能力通常大于 VDDA,因为它要供电给整个数字部分,包括处理器、内存和外设等。上拉电阻的电流负载对 VDD 的影响微乎其微。

VDDA负载要求高: VDDA 电源主要供电给模拟部分(如 ADC、DAC 等),这些电路对电源的纹波和噪声要求更高。将上拉电阻连接到 VDDA 可能会引入不必要的负载和噪声,影响模拟电路的性能。

2.4电路图

三、BOOT 启动

3.1介绍

BOOT 引脚( BOOT0 和 BOOT1 )用于选择微控制器的启动模式。通过不同的引脚电平组合,可以选择不同的启动模式,如下图所示:

3.2电路

将单片机的 BOOT0 和 BOOT1 引脚引出,通过 2×3 的公排针,可以通过跳线帽向上选择VDD_MCU (1),向下选择 GND (0),来配置单片机的启动模式。老师选择的启动方式为:从内置 SRAM 启动,如下图。

四、晶体电路

4.1 为什么STM32需要两个晶振电路?

STM32微控制器通常使用两个晶振电路是为了满足不同的时钟需求:

  • 主晶振电路(8MHz): 用于提供主系统时钟(HSE, High-Speed External Clock)。这个时钟源通常用于微控制器的核心处理单元、高速外设(如USB、CAN等),以及需要高精度、高速时钟的功能。
  • 副晶振电路(32.768kHz): 用于提供低功耗时钟(LSE, Low-Speed External Clock)。这个时钟源通常用于实时时钟(RTC, Real-Time Clock)和低功耗模式下的计时功能。32.768kHz的频率正好适合计时,因为它可以方便地用于生成1秒的时钟周期(32,768是2的15次方,适合二进制计数)。

4.2 为什么这两个晶振电路的频率是那样?

选择不同频率和规格的晶振主要基于以下原因:

  • 8MHz晶振(主晶振):

    • 频率选择: 8MHz是一个常用的高频率,能够满足STM32核心和高速外设的时钟需求。
    • 负载电容(22pF): 确保晶振在该频率下的稳定性和可靠性。22pF是常见的负载电容值,用于匹配晶振的负载要求。
  • 32.768kHz晶振(副晶振):

    • 频率选择: 32.768kHz是标准的RTC晶振频率,适用于低功耗时钟应用。
    • 负载电容(10pF): 这种低值电容适合低频率晶振,确保其在低频下的稳定振荡。

4.3 晶振电路是怎么运作的?(更容易理解4.4和4.5的问题)

(1)晶振起振

  • 当电源接通时,晶振开始产生微弱的振荡信号。
  • 该信号通过OSC_IN引脚进入STM32内部振荡器电路。

(2)负载电容调节

  • C1和C2电容与晶振一起工作,确保晶振以其标称频率振荡。
  • 负载电容值通常选取在10pF到22pF范围内,但实际值应根据晶振的规格书和电路板的寄生电容进行调整。

(3)信号放大

  • STM32内部的振荡器电路对输入的微弱振荡信号进行放大,生成一个稳定的时钟信号。
  • 这个稳定的时钟信号通过OSC_OUT引脚输出,并作为系统时钟供STM32使用。

(4)信号反馈

  • 振荡器电路将放大的振荡信号通过OSC_OUT引脚反馈回晶振电路,继续维持晶振的振荡。
  • 这个反馈环路确保晶振能够持续产生稳定的振荡信号。

(现在你就清楚了晶振电路中存在的一个回路了。)

4.4 为什么主晶振电路OSC有大电阻?有什么作用吗?

主晶振电路中包含一个1MΩ的大电阻(通常连接在OSC_IN和OSC_OUT之间),其主要作用如下:

  • 防止启动困难: 大电阻提供了一个初始反馈路径,有助于晶振在上电时快速启动,避免由于初始状态不稳定导致的启动困难。
  • 稳定振荡: 大电阻能够稳定振荡器的启动过程,确保振荡器能够在启动后快速进入稳定状态。

(说的通俗一点就是快一点形成4.3中说的电流回路。)

4.5 为什么副晶振电路OSC32没有大电阻?

副晶振电路通常不需要大电阻的原因包括:

  • 频率和功率低: 32.768kHz的晶振工作在非常低的频率和功率下,启动相对容易,不需要额外的电阻来帮助启动。
  • 低功耗设计: 副晶振电路通常用于RTC和低功耗应用,添加大电阻会增加功耗,不符合低功耗设计的要求。

4.6电路图

五、RTC 实时时钟

5.1 VBAT 引脚的功能

VBAT 引脚用于为 RTC 和备份寄存器供电,以便在主电源断开时,RTC 仍能继续运行。

5.2设计原理

  1. 主电源供电(VDD_MCU): 当主电源(VDD_MCU)供电时,BAT54-C 二极管正向偏置,VBAT 引脚通过二极管获得 VDD_MCU 的电压,RTC 和备份寄存器正常工作。
  2. 备用电源供电: 当主电源断开时,BAT54-C 二极管防止电流反向流动,RTC 和备份寄存器可以通过 ZH1.25-2A 连接器从备用电源(如纽扣电池)继续供电,确保 RTC 的时间和备份数据不会丢失。

5.3原理图

5.3.1BAT54-C二极管的作用

  1. 保证供电: 当主电源存在时,二极管正向偏置,保证 VBAT 引脚获得稳定的电压供电;当主电源断开时,二极管反向偏置,备用电源立即接替供电,保证 RTC 持续运行。
  2. 防止反向电流: 确保在主电源断开时,备用电源电流不会流回到主电源电路,避免不必要的电能消耗和可能的电路损坏。同时也保证在主电源正常供电时,芯片的电流不会回流到备用电池中,造成损害。

5.3.2 ZH1.25-2A连接器的作用

  1. 备用电源接口: 提供一个连接备用电源的接口,可以方便地连接和更换电池或其他备用电源。
  2. 确保供电路径: 通过 ZH1.25-2A 连接器,备用电源可以可靠地提供电压给 VBAT 引脚,确保RTC的供电不中断。

六、Flash 芯片

在STM32微控制器中,外部Flash存储器(如W25Q64JVSSIQ)通常用于存储固件、数据日志或其他需要非易失性存储的应用。

电路设计与工作原理

1. CS# (Chip Select):
  • 设计: CS#引脚通过PA15引脚控制。低电平激活芯片,高电平关闭芯片。
  • 原理: 当CS#为低电平时,Flash芯片被选中,STM32可以与其通信;当CS#为高电平时,Flash芯片处于非活动状态,多个SPI设备可以共享同一条SPI总线。
2. SO (Serial Output):
  • 设计: SO引脚通过PB4引脚(MISO,Master In Slave Out)连接到STM32。
  • 原理: 用于在SPI通信中将数据从Flash芯片发送到STM32。
3. WP# (Write Protect):
  • 设计: WP#引脚直接连接到3.3V电源。
  • 原理: 将WP#连接到高电平(3.3V)禁用写保护功能,使能写操作。
4. GND (Ground):
  • 设计: GND引脚连接到地。
  • 原理: 提供芯片的电源回路。
5. SI (Serial Input):
  • 设计: SI引脚通过PB5引脚(MOSI,Master Out Slave In)连接到STM32。
  • 原理: 用于在SPI通信中将数据从STM32发送到Flash芯片。
6. CLK (Clock):
  • 设计: CLK引脚通过PB3引脚连接到STM32。
  • 原理: 提供SPI通信的时钟信号,由STM32生成并控制。
7. HOLD3#:
  • 设计: HOLD3#引脚连接到3.3V电源。
  • 原理: 将HOLD3#连接到高电平(3.3V)禁用暂停功能,使Flash芯片正常工作。
8. VCC (Power Supply):
  • 设计: VCC引脚连接到3.3V电源。
  • 原理: 为Flash芯片提供工作电压。

电源滤波电路

  • 设计: 3.3V电源通过0.1uF电容连接到地。
  • 原理: 去耦电容用于滤除电源线上的高频噪声,稳定供电,确保Flash芯片正常工作。

电路运行

  1. 上电: 3.3V电源为Flash芯片提供电源,电容滤除电源噪声。
  2. SPI通信: STM32通过SPI接口(PA15, PB3, PB4, PB5引脚)与Flash芯片通信:
    • PA15控制CS#,选择芯片。
    • PB3提供时钟信号(CLK)。
    • PB5发送数据到Flash芯片(MOSI)。
    • PB4接收Flash芯片的数据(MISO)。

为什么这样设计

  1. 标准SPI接口: 这种连接方式符合SPI协议,便于STM32与Flash芯片通信。
  2. 写保护: WP#连接到高电平,确保写操作不被禁用,方便数据写入。
  3. 暂停功能: HOLD3#连接到高电平,禁用暂停功能,确保正常操作。
  4. 滤波电路: 0.1uF电容滤除电源噪声,保障电源稳定,避免因噪声导致的通信错误。

其他设计方法

  1. 硬件写保护: 如果需要硬件写保护功能,可以将WP#引脚连接到STM32的一个GPIO引脚,通过软件控制写保护状态。
  2. 使用较大电容: 在电源滤波电路中,可以根据实际情况使用更大容量的电容(如1uF或10uF)进一步平滑电源电压。
  3. 增加缓冲电路: 在噪声较大的环境中,可以在SPI信号线上增加缓冲电路,提高通信可靠性。

疑惑1:多个SPI设备共享同一条SPI总线

SPI(Serial Peripheral Interface)是一种全双工的通信协议,支持主设备(Master)与多个从设备(Slave)之间的通信。你的电路设计中只有一个SPI从设备,但为了更全面地解释,提到了SPI总线的共享能力。多个SPI设备共享同一条SPI总线的原因和方法如下:

为什么共享同一条SPI总线?
  1. 节省引脚: STM32或其他主控设备的引脚数量有限,通过共享SPI总线,可以连接多个SPI从设备而不增加额外的引脚需求。
  2. 硬件资源复用: 共享SPI总线可以最大化利用现有的硬件资源,不需要为每个SPI从设备单独配置一条SPI总线。
如何实现多个SPI设备共享同一条SPI总线?
  • 共用时钟和数据线: 所有从设备共享主设备的SCK(时钟),MOSI(主输出从输入),MISO(主输入从输出)引脚。
  • 独立的芯片选择引脚: 每个从设备都有独立的CS#(Chip Select)引脚。通过控制不同的CS#引脚,可以选择与哪一个从设备进行通信。只有被选择的从设备会响应主设备的SPI指令。

例如:

  • 设备A: CS_A 连接到 STM32 的一个 GPIO 引脚。
  • 设备B: CS_B 连接到 STM32 的另一个 GPIO 引脚。

在通信时:

  • 当需要与设备A通信时,将CS_A置低,CS_B置高。
  • 当需要与设备B通信时,将CS_B置低,CS_A置高。

疑惑2:在SPI信号线上增加缓冲电路

在噪声较大的环境或长距离通信中,增加缓冲电路可以提高SPI信号的稳定性和可靠性。

增加缓冲电路的方法
  1. 使用缓冲芯片: 选择适合的缓冲芯片(如74HC244、74HC541等)放置在主设备和从设备之间。
  2. 串联电阻: 在SPI信号线上串联小阻值电阻(如几十欧姆),可以减缓信号上升和下降的速率,减少反射和噪声。
  3. 电容滤波: 在信号线上并联小电容(如几皮法到几十皮法),可以滤除高频噪声。
  4. 屏蔽电缆: 使用屏蔽电缆来减少电磁干扰。

七、SWD 调试接口

八、STM32

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/783141.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

修改CentOS7.9跟Unbantu24的ip地址

修改CentOS的IP地址 ip addr 查看IP地址 cd /etc/sysconfig/network-scripts ls vi ifcfg-ens33修改ip地址跟干网关地址 TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" DEFROUTE"yes" IPV4_FA…

项目2:API Hunter 细节回顾 -2

一. 接口上线/下线功能 接口的上线和下线是由管理员负责进行的。 上线接口,即发布接口。首先需要判断接口是否存在,然后判断接口是否可调用。如果可以调用,就修改数据库中该接口的状态字段为 1,代表发布,默认状态为 …

精美个人博客 付费搭建

博客演示地址:http://gavana.top/ 1、前端博客页 2、后端管理页 此项目原作者已开源,地址:Naccl/NBlog: 🍓 Spring Boot Vue 前后端分离博客系统 https://naccl.top (github.com) 可以自己搭建,我只是负责搭建起可直…

【Java13】包

“包”这个机制,类似于分组。主要作用是区分不同组内的同名类。例如,高三三班有一个“王五”,高二八班也有一个“王五”。高三三班和高三八班就是两个不同的包。 Java中的包(package)机制主要提供了类的多层命名空间&…

被全球数千企业应用的TOGAF®标准,不仅仅是IT框架

2022 年 4 月 25 日,The Open Group 发布了 TOGAF标准第10版。这不仅仅是 The Open Group 的重要里程碑,也是整个企业架构行业和所有从业者的重大利好。作为企业架构师的首选标准,TOGAF一直以来都受到人们的欢迎。对此,第10版必须…

Java异常详解及自定义异常

认识异常,掌握异常处理主要的5个关键字:throw、try、catch、final、throws并掌握自定义异常 目录 1、异常概念与体系结构 1、1异常的概念 1、2异常体系结构 1、3异常的分类 编译时异常: 运行时异常 : 2、异常处理 2、1防御式…

每日直播分享车载知识:硬件在环、UDS诊断、OTA升级、TBOX测试、CANoe、ECU刷写、CAN一致性测试:物理层、数据链路层等

每日直播时间:(进腾讯会议方式:QazWsxEdc_2010) 周一到周五:20:00-23:00(讲一个小时,实操两个小时) 周六与周日:9:00-17:0…

C# 中的Semaphore(信号量)详解与应用

文章目录 1. 信号量是什么?2. C# 中的 Semaphore 类3. 信号量的使用示例3.1 创建信号量3.2使用信号量同步线程 4. 总结 在并发编程中,同步是一种基本的需求。信号量(Semaphore)是一种常见的同步机制,它用于控制对共享资…

智能充电(新能源电动车,电单车)云管理系统的定制解决方案

一 系统简介 智能充电(新能源电动车,电单车)云管理系统 是一套能够实现对充电站/桩的实时通讯、状态监控、故障检测、运营分析、数据统计、策略设置的智能化多任务管理系统。 二 平台概览 智能充电云管理系统 https://chongdianzhuang.itg…

AI大模型+软件开发,计算机从业者转行的契机?

自从大模型吹响新一轮技术革命的号角后,整个行业各个层次都面临大模型带来的范式转换。我今年在 4 月份上海举办的全球机器学习技术大会上演讲时曾提出,大模型为计算产业带来了计算范式、开发范式、交互范式的三大范式改变。今天是软件研发技术大会&…

职业理念教育观

职业道德理念——教育观 教育是什么、干什么、为了什么,教育心该培养什么样的人、如何培养人等。 教育观 素质教育内涵 教学观 素质教育内涵 新课程改革的教学观

力扣-贪心算法4

406.根据身高重建队列 406. 根据身高重建队列 题目 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或…

微信商城自定义小程序源码系统,PHP+MySQL组合开发 带完整的源代码包以及搭建教程

系统概述 传统电商模式面临着诸多挑战,如用户体验不够个性化、运营成本较高等。而微信商城小程序凭借其轻量级、便捷性和与微信生态系统的紧密结合,为企业提供了新的发展机遇。小编给大家分享一款功能强大、易于定制和扩展的源码系统,帮助企…

C# 快速排序算法的详细讲解

目录 一、前言 二、例子 三、快速排序算法图片讲解 四、快速排序算法代码 五、纯净代码 一、前言 用比较好懂的方式讲一下快速排序算法。 二、例子 如果我有一堆钱,想数清楚,最快的方案是什么? 图1 一堆钱 答:先分类&…

数据库之MQL

1,查询所有 mysql> select * from grade;2, mysql> select id,firstname,lastname from grade;3, mysql> select firstname,lastname from grade where id > 4;4, mysql> select * from grade where sex f;5&…

『SD』比例切换插件 sd-webui-aspect-ratio-helper(附插件)

本文简介 ✨ 告别手动计算,SD绘图神器来啦! 💔 是不是每次使用SD绘图时,都要自己手动去计算图片的宽高比,感觉好繁琐啊? 🎉 今天就来给各位工友安利一个超实用的插件——sd-webui-aspect-ratio-…

【kubernetes集群如何更改所有节点IP】

kubernetes集群如何更改所有节点IP 情景描述更换IP前的准备工作更换IP后的工作--master更换IP后的工作--node节点重新部署之前那些服务 情景描述 我有三台服务器,想要将其组成了一个kubernetes集群,在部署之前,我就对其进行了固定IP的操作&a…

C++、QT企业管理系统

目录 一、项目介绍 二、项目展示 三、源码获取 一、项目介绍 人事端: 1、【产品中心】产品案列、新闻动态的发布; 2、【员工管理】新增、修改、删除、搜索功能;合同以图片的方式上传 3、【考勤总览】根据日期显示所有员工上班、下班时间…

springboot331+vue“有光”摄影分享网站系统+论文+源码+讲解

第3章 系统分析 3.1 可行性分析 3.1.1技术可行性 研发设计程序流程挑选面向对象设计、功能齐全、简单实用的Java编程设计核心理念。MySQL数据库存储数据。Idea工具作为编程软件,win10计算机操作系统作为应用系统,以及数据库可视化工具等技术职称。一般…

十款绚丽的前端 CSS 菜单导航动画

CSS汉堡菜单是一种非常流行的PC端和移动端web菜单风格,特别是移动端,这种风格的菜单应用更为广泛。这款菜单便非常适合在手机App上使用,它的特点是当顶部菜单弹出时,页面内容将会配合菜单出现适当的联动,让整个页面变得…