首页 > 其他分享 >STM32F103简介

STM32F103简介

时间:2024-11-17 12:45:10浏览次数:1  
标签:STM32F103 电容 引脚 芯片 简介 晶振 STM32 时钟

自从大学毕业之后,已经很久没有接触STM32控制器了,最近打算学习一下LVGL,控制芯片计划使用STM32,因此这里我们会简单介绍有关STM32的知识。

一、STM32F103RTC6介绍

1.1 命名规则

我从网上买了一块STM32F103RTC6开发板,STM32F103RCT6 各个字段的含义:

  • STM32(芯片系列):STM32代表ARM Cortex-M内核的32位微控制器;
  • 103(芯片子系列):101基本型,102USB基本型(USB2.0),103代表增强型系列,105107互联型;
  • F(产品类型):F代表通用系列 ;
  • R(引脚数量):T=36, C=48, R=64, V=100 ,Z =144
  • C(闪存容量):4=16K6=32K8=64KB=128KC=256KD=384KE=512K
  • T(表封装): H代表BGA封装、T代表LQFP封装 、U代表VFQFPN封装 、Y代表WLCSP64
  • 6(工作温度范围):6代表-40~85℃7代表-40~105℃

更多细节可以参考下图:

1.2 原理图

接下来我们看一下这块开发板的完整电路原理图,后续我们会一一介绍各个组成部分;

STM32F103RCT6核心板丝印尺寸图:

1.2.1 MCU部分

MCU采用的STM32F103RTC6,一共64个引脚;

由于引脚比较多,我们不可能一一介绍,这里我们仅仅介绍比较重要的引脚;

  • 电源引脚,包括:
    • VDD1319324864):供电电源引脚,D=device表示器件的意思,即器件内部的工作电压,通常连接到3.3V电源;
    • VSS1218314763):接地引脚,S=series表示公共连接的意思,通常指电路公共接地端电压;
    • VBAT1):RTC的电池供电引脚,当使用电池或其他电源连接到VBAT脚上时,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。如果应用中没有使用外部电池,VBAT引脚应接到VDD引脚上;
  • 复位与时钟引脚,包括:
    • NRST7):复位引脚,外部低电平触发复位。若外部复位被激活,MCU会重新启动;
    • BOOT0/12860):启动引脚,选择MCU启动方式,用于选择从闪存或外部设备启动;
  • RTC引脚:
    • RTC2):RTC实时时钟的输出引脚,可以配置为1Hz信号输出,通常用于提供精确的时间基准;
  • 通信引脚,STM32F103RTC6提供了多种通信接口,其中包括:
    • USART(通用同步异步收发器,424316172930):例如,TX(发送)和RX(接收)引脚;
    • SPI(串行外设接口,212223):例如,MOSI(主输出从输入)、MISO(主输入从输出)等引脚;
    • I2C5253):SCL(时钟线)、SDA(数据线)引脚。
  • GPIO引脚:STM32F103RTC6提供了多个通用输入输出引脚(GPIO),这些引脚可以用于多种不同的外设功能,如数字输入、输出、高低电平控制、外部中断等;
  • 外部中断引脚:EXTI(外部中断)引脚,用于从外部设备(如按钮、传感器等)接收中断信号;
  • 模拟引脚:ADC(模拟数字转换器)引脚,用于接收模拟信号并进行数字化处理。这些引脚通常与外部传感器连接;
  • 调试引脚:SWDIO46)和 SWCLK49):用于调试的串行线(Serial Wire Debug)接口引脚,用于与调试器连接;
  • PWM输出引脚:
    • TIMx:定时器模块的输出引脚,用于生成脉宽调制(PWM)信号,通常用于电机控制、亮度调节等应用。
1.2.2 复位引脚NRST原理图

STM32NRST是异步复位脚。 复位就是让单片机重启,使其恢复到一个缺省的状态。

  • NRST输入低电平的时候,MCU处于复位状态,重设所有的内部寄存器,及片内几十KBSRAM。;
  • NRST从低电平变高时,PC指针从0开始。 但是复位的时候不会将STM32F片内RTC的寄存器以及后备存储器重置,因为它们是用电池通过专门的VBAT脚供电。

STM32中的NRST有施密特功能。大概在输入电压低于1.V的时候将芯片复位。

开发板上电的瞬间,电容C4两端电压可以认为是0,刚上电的时候电流会通过R1C4到地,为C4充电,RESET会输出低电平,stm32处于复位状态,VCC3.3通过电阻R1给电容充电,当电容C4的电压升高到0.8V以上,stm32退出复位状态进入运行状态。

1.2.3 晶振引脚原理图

1.2.3.1 8MHz晶振

高速晶振8MHz作为系统时钟的来源,可以由芯片内部的HSI RC时钟源或芯片外部的独立时钟源提供。

STM32最小系统板上,8M晶振是用于提供系统时钟的外部晶体振荡电路之一。

高速晶振8MHz作为系统时钟的来源,可以由芯片内部的HSI RC时钟源或芯片外部的独立时钟源提供。由于芯片内部的HSI RC时钟源不够精准,我们通常采用外部独立时钟源来来为芯片提供系统时钟。
具体计算方法如下:

\[晶振频率 = 8MHz \]

\[晶振周期 = 1 / 晶振频率 = 0.125us \]

如果需要一个1秒的周期,需要多少个晶振周期?

\[1s / 0.125us = 8000000个周期 \]

因此,如果使用8MHz晶振,系统需要运行8000000个晶振周期才能完成一个1秒的周期。

1.2.3.2 32.768k晶振

低速晶振32.768kHz连接LSElow-speed external clock signal),最终到达RTCreal-time clock)。

RTC是一个独立的定时器 。从real-time clock(实时时钟)四字可以理解,RTC可以为系统实时记录当前系统时间和日期,不管芯片有没有掉电。如果想要使用RTC实时记录系统时间,芯片需要接入额外备用电源,通常为纽扣电池。这样以来,RTC在芯片掉电后,可以由电池供电继续运行。

对于掉电后不需要记录系统时间的电路板,我们将低速晶振32.768kHz舍去,节约板子空间,精简电路设计。 

215次方正好等于32768,反过来讲,如果要把32.768K的时钟频率经过15次分频的话,得到的频率正好是1Hz

1.2.3.3 电容介绍

晶振旁的俩个电容到底有啥作用?

主要作用是平衡晶振引脚的电感的。因为晶振在高频工作时有寄生电感,为了平衡电感起到谐振的作用。所以要用两个小电容来平衡电感。一般电容的选20pf–30pf的就可以了。具体的大小请参看晶振厂家提供的数据手册。

芯片晶振引脚的内部通常是一个反相器,芯片晶振的两个引脚之间还需要连接一个电阻,使反相器在振荡初始时处与线性状态,但这个电阻一般集成在芯片的内部,反相器就好像一个有很大增益的放大器,为了方便起振,晶振连接在芯片晶振引脚的输入和输出之间,等效为一个并联谐振回路, 振荡的频率就是石英晶振的并联谐振频率。

晶振旁边的两个电容需要接地,其实就是电容三点式电路的分压电容,接地点就是分压点,以分压点为参考点,振荡引脚的输入和输出是反相的,但从晶振两端来看,形成一个正反馈来保证电路能够持续振荡。

芯片设计的时候,其实这两个电容就已经形成了,一般是两个的容量相等,但容量比较小,不一定适合很宽的振荡频率范围,所以需要外接两个负载电容。

为了让晶振能够可靠、稳定的起振,我们在布线时,需要让晶振和负载电容尽量的靠近芯片的晶振引脚。

1.3 电源转换电路

我们可以发现电源转换电路是由一个稳压芯片AMS1117-3.3V、两个电解电容(C21C22)组成。实际上C21C22两侧还应该各接一个104的贴片电容;比如这种:

设计原因:STM32芯片的工作电压为2.0~3.6V,我们一般取3.3V;而通过USB接口输出的电源为5V,为防止STM32芯片损坏,需要我们通过该电源转换电路,把5V的输入电压降低到3.3V工作电压。

电容作用:

  • C4C5是输出滤波电容,作用是抑制自激振荡,如果不接这两个电容,通常线性稳压器的输出会是个振荡波形;
  • C6C7是输入电容,对于交流电压整流输入,它们的第一个作用是把单向脉动电压转换成直流电压,在本图中输入已经是+5V直流电源了,它们的作用就是防止断电后出现电压倒置,因此通常输入电容的容量应该大于输出电容。

概括性地说,输出的电容的作用是把输出信号的干扰作为滤除。输入电容的作用就是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除。

1.4 调试接口

众所周知,SWDJTAG是单片机下载程序与调试的常用接口。其共同之处:

  • 供电电压范围: 1.2 V - 5.5 V
  • 时钟速率: 可配置高达10 MHz
  • SWO跟踪捕获: 数据速率高达50 Mbit/sUART/NRZ模式);
  • 隔离电压: 1 kV
  • 热插拔:支持;
1.4.1 JTAG

JTAG,全名为Joint Test Action Group(联合测试行动小组)。截至本文最新的标准为IEEE Standard 1149.1-1990。其拓扑图如下:

JTAG 一般使用5个引脚:

  • TDITest Data In):串行输入引脚;
  • TDOTest Data Out):串行输出引脚;
  • TCKTest Clock):时钟引脚,一般附加100k下拉电阻;
  • TMSTest Mode Select):模式选择(控制信号)引脚;
  • TRSTTest Reset):复位引脚;

JTAG的优势:

  • 不限于ARM系列芯片;
  • 具有更多用于编程,调试和生产测试的用途。
1.4.2 SWD

全称为Serial Wire Debug(串行线调试),是ARM专门设计的协议,仅支持ARM(所以在ARM系列单片机中性能表现较佳)。

SWD一般使用 2 个引脚:

  • SWDIOSerial Wire Data Input Output):串行数据输入输出引脚;
  • SWCLKSerial Wire Clock):串行线时钟引脚;

SWD的优势:

  • 使用引脚更少,只需SWDIOSWCLK两个引脚;
  • SWD具有特殊功能,例如打印调试信息;
  • JTAG相比,SWD在速度上具有更好的整体性能;

我们使用的开发板就使用了SWD接口,电路原理图如下:

SWDIO:在芯片内部已经有上拉,但在电路板上必须再一次上拉(100k或者10k电阻);不过我们这个开发板原理图并没有接上拉电阻,如果我们设计原理图,最好接上上拉电阻;

SWCLK,在芯片内部已经有下拉,在电路板上没有特殊要求进一步下拉。

1.4.3 JTAGSWD的兼容性

一般来说,单片机板子上会有以下这些烧录座,可同时兼容JTAGSWD

其中:

  • TCK兼容SWCLK
  • TMS兼容SWDIO
  • TDO兼容SWO;

选用SWD而非JTAG的理由:

  • 电路原理图设计需要足够简单,且可以在没有JTAG功能的情况下进行测试;
  • PCB在尺寸方面有限制,SWD可以节省空间;
  • MCU已经没有多余的引脚给 JTAG用了。

1.5 BOOT0/1

BOOT决定的模式:

BOOT1 BOOT0 启动方式 说明
X 0 主闪存存储器 主闪存存储器被选为启动区域
0 1 系统存储器 系统存储器被选为启动区域
1 1 内置SRAM 内置SRAM被选为启动区域
1.5.1 主闪存存储器

STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

1.5.2 系统存储器

从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。

系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。

一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:

  • BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
  • 最后在BootLoader的帮助下,通过串口下载程序到Flash中;
  • 程序下载完成后,又有需要将BOOT0设置为0,手动复位,这样,STM32才可以从Flash中启动。
1.5.3 内置SRAM

内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。

假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,再将程序下载到Flash中。

1.6 LCD外围电路

开发板支持外接一块I2C通信的OLED的屏幕,比如可以连接与开发板配套的128*128 TFT_LCD液晶屏;

1.7 串口一键下载电路(CH340

参考文章

[1] stm32F103RCT6原理图解析

标签:STM32F103,电容,引脚,芯片,简介,晶振,STM32,时钟
From: https://www.cnblogs.com/zyly/p/18550432

相关文章

  • SAP GR(Group Reporting)合并报表内容及功能简介(五)-合并和抵消
    合并和抵消审核公司间匹配和对账公司间匹配和对账概览随着合并和收购数量的显著增加,企业在全球经济中面临着诸多挑战。其中最常见的是法律实体与子公司之间缺乏透明度,导致无法以经济高效的方式对账法律实体与子公司之间的公司间交易,从而造成结算出现重大延迟。公司间匹配......
  • 62种加密算法简介
    加密算法,这里分为4类:非对称加密算法对称加密算法哈希功能算法消息认证算法非对称加密算法1.Blum–Goldwasser(BG)cryptosystemBlum-Goldwasser密码系统是一种概率公钥加密方案,由ManuelBlum和ShafiGoldwasser于1984年提出,包含三种算法,包括概率加密算法、确定......
  • 【Python学习笔记】 第10章 Python语句简介
    重温Python的知识结构程序由模块组成。模块包含语句。语句包含表达式。表达式创建并处理对象。从基础上看,Python编写的程序实际上时由语句和表达式构成的。表达式用于处理对象,并被嵌入到语句中。语句使用并引导表达式处理我们前几章所学的对象。语句可以创建对象。Python......
  • STM32简介
    STM32F11、片上资源/外设Peripheral深颜色内核里的外设,其它为外部外设各外设作用介绍:NVIC:内核中用于管理中断的设备,比如配置中断优先级SysTick:内核中的定时器,主要用来给操作系统提供定时服务RCC:对系统的时钟进行配置,STM32中其它外设上电情况下,默认是没有时钟的,没有时钟的......
  • Python并行编程1并行编程简介(上)高频面试题:GIL进程线程协程
    1并行编程简介首先,我们将讨论允许在新计算机上并行执行的硬件组件,如CPU和内核,然后讨论操作系统中真正推动并行的实体:进程和线程。随后,将详细说明并行编程模型,介绍并发性、同步性和异步性等基本概念。介绍完这些一般概念后,我们将讨论全局解释器锁(GIL)及其带来的问题,从而了解Py......
  • c++简介
    C++是一种面向对象的程序设计语言,它是在C语言的基础上发展起来的。C++拥有C语言的特性,例如高性能、底层控制和直接内存访问等,同时还添加了面向对象编程的特性,比如封装、继承和多态等。由于这些特性,C++在软件开发中非常灵活和强大。C++的应用非常广泛,它可以用于开发各种类型的......
  • PyAEDT:Ansys Electronics Desktop API 简介
    在本文中,我将向您介绍PyAEDT,这是一个Python库,旨在增强您对AnsysElectronicsDesktop或AEDT的体验。PyAEDT通过直接与AEDTAPI交互来简化脚本编写,从而允许在Ansys的电磁、热和机械求解器套件之间无缝集成。通过利用PyAADT的强大功能,您可以将分析提升到一个新的水......
  • Lenovo笔记本F1-F12功能键作用简介
        在现代笔记本电脑的使用中,快捷键扮演着提高效率和便捷性的重要角色。Lenovo笔记本作为市场上的主流品牌之一,其F1-F12功能键集成了多种实用的快捷操作,这些功能键可以帮助用户快速执行常用任务,从而提升工作效率和用户体验。然而,许多用户可能并不完全了解这些功能键的......
  • Flutter OHOS 外接纹理适配简介 - 图片显示
    FlutterOHOS外接纹理适配简介-图片显示Flutter在OHOS平台使用外接纹理,图片场景,以PixelMap的形式注册到flutterengine,与视频播放和相机预览有所区别。注:1.一般而言,为了方便复用,会将ohos对接flutter外接纹理的功能代码作为一个module模块组件单独写一个插件注册到......
  • PyTorch——从入门到精通:PyTorch简介与安装(最新版)【PyTorch系统学习】
    前言        在这个由数据驱动的时代,深度学习已经成为了推动技术进步的核心力量。而PyTorch,作为当今最流行的深度学习框架之一,以其动态计算图、易用性和灵活性,受到了全球开发者和研究者的青睐。为了帮助更多的学习者和开发者掌握这一强大的工具,我决定在CSDN开设一个专......