当前位置: 首页 > 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固定地址连接 前言 随着远程办公和数据共享成为新常态,如何高效且安全地管理和传输文件成为了许多人的痛点。如果你正在寻找一个解决方案…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...