当前位置: 首页 > news >正文

硬件作品3----STM32F103RCT6最小系统板MCU配置

参考文章:对stm32F103RCT6原理图解析(详细)-CSDN博客

        本想绘制稍微复杂一些的电路,但是出现很多问题,因此先绘制一块最小系统板进行原理、绘制方法的验证。

设计难度:★

适合人群:初学者

一、原理说明

1. 主控芯片及GPIO拓展电路

        主控采用STM32F103RCT6,STM32与STM8系列芯片型号各字母代表不同的含义。

        数据手册:High-density performance line ARM®-based 32-bit MCU with 256 to 512KB Flash, USB, CAN, 11 timers, 3 ADCs, 13 communication interfaces

        这里的电路原理图中只有电源3V3、晶振引脚、DP下载引脚、USB数据引脚、BOOT引脚使用,故只给定这些网络标签,其余GPIO引脚均引出至排针。

        芯片关于电源的引脚有很多,VDD VDD1 VDD2 VDD3均为芯片正供电端, 一般为3.3V。VSS VSS1 VSS2 VSS3均为芯片接地端。数据手册对供电电压有介绍,纽扣电池为RTC供电,与32kHz晶振搭配使用。

        实际电路设计如下图,未接纽扣电池,但是将VBAT引脚单独引到排针。

2. 复位引脚NRST

        NRST引脚是异步复位引脚,NRST置为低电平时MCU复位,重设所有内部寄存器及片内SRAM;当NRST从低电平变为高电平时,PC指针(程序计数器)从0开始。

上电复位

        上电复位是通过外部复位电路中的电容充放电来实现的,也就是通过电容给RST端输入一个短暂的高电平,此高电平随着Vcc对电容充电时间的增加而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为保证单片机能可靠地复位,必须使RST引脚至少保持两个机器周期高电平,CPU 在第2个机器周期内执行内部复位操作,以后每一个机器周期重复一次, 直至RST端电平变低。

        单片机上电瞬间,由于电容的“隔直通交”,电容支路通过电流,NRST接地被置为低电平;电容充电需要一定时间,充电完成,NRST引脚被置为高电平,完成上电复位操作。

        上电复位是自动发生的,不需要外部干预,保证了每次电源开启时单片机都能从初始状态开始运行。

按键复位

        按键复位是指通过外部按钮手动触发单片机的复位过程。用户按下复位按钮时,会向单片机提供一个低电平信号,使单片机的寄存器和状态位重置到初始状态。

        按键复位通常通过一个简单的按钮开关实现,该开关连接到单片机的复位引脚。当按钮被按下时,复位引脚接收到低电平信号,触发复位。为了确保稳定性,通常会在按钮和复位引脚之间加入去抖动电路,以防止由于接触不良或操作失误导致的多次复位。

        按键复位提供了用户干预的可能性,允许在不关闭电源情况下重置单片机,适用于需要用户控制复位过程的场合。

        复位按键电路如下。

3. 晶振配置

STM32 外部晶振电路设计和匹配_stm32晶振电路-CSDN博客

        STM32系列有内部时钟源(依靠芯片内部的RC振荡器,内部高速时钟HSI,精度不高)与外部时钟源HSE。高精度定时的场合使用内部晶振有误差,需要使用外部晶振时钟(一般选用8MHz外部晶振),接在芯片OSC_IN与OSC_OUT引脚之间的外部晶振需要外接负载电容到地。一般取负载电容CL1=CL2,两个负载电容与晶振Q构成三点式电容振荡器。

        负载电容与晶振的参数CL(Load Capacitance,数据手册可查)匹配,晶振电容CL=20pF,电路板走线上的寄生电容(约为3~5pF)与芯片输入端的等效电容(STM32F103晶振输入电容为5pF)约为Cs=10pF。计算公式为CL-Cs=(CL1*CL2)/(CL1+CL2),取CL1=CL2,故匹配电容CL1=CL2=2*(CL-Cs)=2*(20pF-10pF)=20pF。

        晶振部分电路如下,这里选用4P引脚的贴片电容,32.768kHz的低速晶振与8MHz的高速晶振。其中,8MHz为外部晶振,32kHz晶振作为外部低速晶振最终到达RTC,纽扣电池为芯片RTC(real time clock,实时时钟)供电进而记录系统时间,若不需要此功能可以去掉纽扣电池与32kHz低速晶振。

4. 指示灯

        LED1为电源供电指示灯,LED2为PA0引脚高低电平指示灯。PA0=高电平,LED2两端无压差,灯不亮;PA0=低电平,LED2两端有压差,灯亮。

5. TYPE-C烧录接口与电源降压

        这里选用USB2.0协议的TYPE-C接口,根据其数据手册,原理图较为简单如下。但是由于TYPE-C接口从电脑端获得的电压为5V,直接给芯片工作容易烧坏芯片,故需要DC-DC电源转换。

        降压芯片选用AMS1117-3.3(低压差线性稳压器LDO),根据数据手册的固定电压输出的典型电路,将USB的5V电压转换为3.3V电压为芯片供电。C1 C2 C4 C5为滤波电容,一般为10uF与100nF(大电容与小电容)的组合,使得输出电压更稳定。

6. 烧录接口ST/DP

        GND与3V3引脚直接与芯片相连,SWDIO SWCLK引脚需要与芯片数据手册的引脚对应。

7. BOOT引脚

        关于BOOT引脚的配置,决定了芯片的启动模式。

STM32启动BOOT0 BOOT1设置方法 - zgc261 - 博客园

        总结来说,0X配置常见,从FLASH启动,一般程序下载模式;10配置通过出厂不可修改的boot loader下载程序,从ROM启动,使用麻烦,不常用;11模式从SRAM启动,程序调试用。

        为了能够实现三种模式,选用排针分别接3V3 BOOT GND引脚,用跳线帽连接。这里选择接两个保护电阻,防止配置错误直接烧坏引脚。

二、原理图与PCB绘制

        可开源,私信即可

三、调试过程

 电路已调试成功。烧写PA0端口的测试代码,能实现LED的闪烁。

		GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);		GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);

随意选择两个GPIO端口,进行OLED显示测试,能够正常工作。

		GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);		GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);

存在问题:

BOOT0 BOOT1引脚均处于悬空状态下,程序能够正常烧录并运行,后查阅数据手册得知默认状态为从0x0800 0000H即FLASH烧录,故能正常工作,使用跳线帽将两个BOOT引脚接到高电平,程序能够正常烧录但无法正常运行。

相关文章:

硬件作品3----STM32F103RCT6最小系统板MCU配置

参考文章:对stm32F103RCT6原理图解析(详细)-CSDN博客 本想绘制稍微复杂一些的电路,但是出现很多问题,因此先绘制一块最小系统板进行原理、绘制方法的验证。 设计难度:★ 适合人群:初学者 一、…...

人脸识别打卡系统--基于QT(附源码)

逃离舒适区 项目源代码放在我的仓库中,有需要自取 项目地址 https://gitcode.com/hujiahangdewa/Face_recognition.git 文章目录 一、项目结构分析二、服务器的搭建三、客户端的搭建四、人脸识别库的申请五、基于人脸识别库的识别判断六、QT人脸识别----调用百度ai…...

【深度学习入门】深度学习知识点总结

一、卷积 (1)什么是卷积 定义:特征图的局部与卷积核做内积的操作。 作用:① 广泛应用于图像处理领域。卷积操作可以提取图片中的特征,低层的卷积层提取局部特征,如:边缘、线条、角。 ② 高层…...

通过视觉语言模型蒸馏进行 3D 形状零件分割

大家读完觉得有帮助记得关注和点赞!!!对应英文要求比较高,特此说明! Abstract This paper proposes a cross-modal distillation framework, PartDistill, which transfers 2D knowledge from vision-language models …...

机器学习10-解读CNN代码Pytorch版

机器学习10-解读CNN代码Pytorch版 我个人是Java程序员,关于Python代码的使用过程中的相关代码事项,在此进行记录 文章目录 机器学习10-解读CNN代码Pytorch版1-核心逻辑脉络2-参考网址3-解读CNN代码Pytorch版本1-MNIST数据集读取2-CNN网络的定义1-无注释版…...

微服务学习-Gateway 统一微服务入口

1. 微服务为什么需要 API 网关? 1.1. 在微服务架构中,通常一个系统会被拆分为多个微服务,面对多个微服务客户端应该如何去调用呢? 如果根据每个微服务的地址发起调用,存在如下问题: 客户端多次请求不同的…...

2025寒假备战蓝桥杯02---朴素二分查找升级版本的学习+分别求解左右端点

文章目录 1.朴素二分查找的升级版2.查找左端点3.查找右端点4.代码的编写 1.朴素二分查找的升级版 和之前介绍的这个二分查找相比,我觉得这个区别就是我们的这个二分查找需要找到的是一个区间,而不是这个区间里面的某一个元素的位置; 2.查找…...

PHP语言的软件工程

PHP语言的软件工程 引言 软件工程是计算机科学中的一个重要分支,它涉及软件的规划、开发、测试和维护。在现代开发中,PHP作为一种流行的服务器端脚本语言,广泛应用于网页开发和各种企业应用中。本文将深入探讨PHP语言在软件工程中的应用&am…...

linux-FTP服务配置与应用

也许你对FTP不陌生,但是你是否了解FTP到底是个什么玩意? FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 “文传协议” 用于Internet上的控制文件的双向传输。同时,它也是一个应用程序…...

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析: 比较规则的性能,分为light和heavy两种情况,性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶(第一条)2. 无限制(去掉了第一条…...

(1)STM32 USB设备开发-基础知识

开篇感谢: 【经验分享】STM32 USB相关知识扫盲 - STM32团队 ST意法半导体中文论坛 单片机学习记录_桃成蹊2.0的博客-CSDN博客 USB_不吃鱼的猫丿的博客-CSDN博客 1、USB鼠标_哔哩哔哩_bilibili usb_冰糖葫的博客-CSDN博客 USB_lqonlylove的博客-CSDN博客 USB …...

Spring中如何动态的创建、监听MQ以及创建Exchange

文章目录 前言动态创建和管理Exchange、Queue动态消费Queue结论 前言 前面我们学习 RabbitMQ 的时候,都是在编译的时候就确定了Exchange、Queue,也就是说我们需要在程序启动之前就创建好需要的Exchange和Queue,但是实际使用的时候&#xff0…...

中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p39061 在全球算力因数字化技术发展而竞争加剧,我国积极推进算力发展并将综合算力作为数字经济核心驱动力的背景下,该报告对我国综合算力进行研究。 中国算力大会发布的《中国综合算力指数(2024年…...

【Python项目】小区监控图像拼接系统

【Python项目】小区监控图像拼接系统 技术简介:采用Python技术、B/S框架、MYSQL数据库等实现。 系统简介:小区监控拼接系统,就是为了能够让业主或者安保人员能够在同一时间将不同地方的图像进行拼接。这样一来,可以很大程度的方便…...

常用排序算法之插入排序

目录 前言 一、基本原理 1.算法步骤 2.动画演示 3.插入排序的实现代码 二、插入排序的时间复杂度 1. 时间复杂度 1.最优时间复杂度 2.最差时间复杂度 3.平均时间复杂度 2. 空间复杂度 三、插入排序的优缺点 1.优点 2.缺点 四、插入排序的改进与变种 五、插入排…...

Elasticsearch(ES)基础查询语法的使用

1. Match Query (全文检索查询) 用于执行全文检索,适合搜索文本字段。 { “query”: { “match”: { “field”: “value” } } } match_phrase:精确匹配短语,适合用于短语搜索。 { “query”: { “match_phrase”: { “field”: “text” }…...

一篇文章学会Milvus【Docker 中运行 Milvus(Windows),Python实现对Milvus的操作,源代码案例,已经解决巨坑】【程序员猫爪】

一篇文章学会Milvus【Docker 中运行 Milvus(Windows),Python实现对Milvus的操作,源代码案例,已经解决巨坑】【程序员猫爪】 一、Milvus 是什么?【程序员猫爪】1、Milvus 是一种高性能、高扩展性的向量数据库…...

前端之移动端

视口 布局视口 layout viewport 视口(viewport)就是浏览器显示页面内容的屏幕区域。 视口可以分为布局视口、视觉视口和理想视口 一般移动设备的浏览器都默认设置了一个布局视口,用于解决早期的PC端页面在手机上显示的问题。 iOS, Androi…...

记一次 SpringBoot 启动慢的问题

记一次 SpringBoot 启动慢的问题 背景问题描述分析处理Flame Graph 火焰图Call Tree 调用树关键词检索尝试解决 为什么这样反向检索问题梳理 复盘处理流程为什么 Reference 背景 最近临时接了一个任务,就从一个旧 springboot 项目 copy 出来,临时写个服…...

高效安全文件传输新选择!群晖NAS如何实现无公网IP下的SFTP远程连接

文章目录 前言1. 开启群晖SFTP连接2. 群晖安装Cpolar工具3. 创建SFTP公网地址4. 群晖SFTP远程连接5. 固定SFTP公网地址6. SFTP固定地址连接 前言 随着远程办公和数据共享成为新常态,如何高效且安全地管理和传输文件成为了许多人的痛点。如果你正在寻找一个解决方案…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

腾讯云V3签名

想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...