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

STM32F103 最小系统 PCB 设计与原理

这篇文章是来自我学习:

​​​​​​带着你从手册开始画板 STM最小系统板教程系列(一)_哔哩哔哩_bilibili​​​​​​

这套教程的笔记,同时本文中也参考了其他教程以及我遇到的困惑与自答,最终汇总。

一、单片机最小系统

单片机最小系统是由芯片外部接上时钟电路、复位电路和电源构成的一个基本应用系统。主要包含的部分,单片机、时钟电路、复位电路、电源电路、程序加载口。

下图就 是PCB 最终效果。

二、主控芯片

这里使用 STM32F103CBT6,首先应该设置启动模式电路,在STM32 都有 BOOT1 和 BOOT0 两个引脚,接低或者高电平即可配置。

在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。

一般来说,我们都使用主闪存模式 (flash),来作为启动区域。

不过在烧录串口程序中,我们则需要系统存储器启动系统。系统储存器在出厂时设定了 bootloader (引导程序),用此方式启动,向 STM32 串口写入代码,引导程序将会帮我们把把代码写入到 flash 中。之后将引脚转化到主闪存模式 (flash),复位即成功烧录代码并运行。

当然如果我们使用 stlink、DAP 之类的调试器,则不需要设置这些,并且它还具有代码断点查看内存等功能。不过本教程并没有板载内置调试器,如果想用则只能外置了。

2.1 主控芯片 PCB 设计

以下便是 STM32F103CBT6 的 BOOT1 和 BOOT2 引脚原理图。

在 BOOT1 处接入了一个按钮,使得我们可以切换主闪存和系统储存。

 最后我们把电路整理成这样:

 

三、复位电路 

根据 STM32F103x8B 数据手册 5.3.13 章节提示,复位引脚在芯片内部以及接了一个永久上拉电阻。也就是通上电此引脚将永久处于高电平。同时也给出了推荐电路设计。

3.1 复位电路 PCB 设计

我们并不使用手册中建议的复位电路,而是采用这样的结构:

 

上图复位电路,在刚上电时c1电容需要一定时间充电,在此时 NRST 处于低电平。低电平时系统复位,这样每次上电系统就能自动复位一次。或者我们摁下按钮,也会使得电路接地,进行复位。

四、外接晶振

根据 STM32F103x8B 数据手册 5.3.6 章节提示,高速外部时钟 (HSE) 的频率应该在 0~25MHz 之间,低速外部时钟 (LSE) 应该在 0~1000KHz 之间。在这里我们使用其中的两个典型值 8MHz 和32.768KHz。

32.768KHz 在 15 次二分频后即可得到 1Hz 很适合作为时钟使用。

4.1 外接晶振 PCB 设计

 晶振电路需接入两个 20pf 电容。

五、电源 

5.1 线性稳压器 (LDO) 

 在这里使用了 me6206a33 作为稳压电源,主要是因为他体积小,比较适合这个板子。

根据参考手册提示,VIN 和 VOUT 都需要接入 1uF 的电容。

pcb设计如下:5V 为输入电源,3.3V 为输出。 

5.2 STM32 电源引脚配置

其中名词解释: 

VCC电路的供电正电压VDDD芯片的工作数字正电压
GND电路的供电负电压VSSD芯片的工作数字正电压
VDD芯片的工作正电压VREF+ADC基准参考正电压
VSS芯片的工作负电压VREF-ADC基准参考负电压
VDDA芯片的工作模拟正电压VBAT电池或其他电源供电
VSSA芯片的工作模拟负电压VEE负电压供电

 在图中提示出很重要的一点:VDD 被要求接入 5x100nf + 1x4.7uf  共六个电容。VDDA 和 VREF+ 也被要求接入特定的电容。 所以我们构建电路:

 

我在观察一些开源项目时,发现很多项目并没有按照这手册说明给足电容。关于这个问题我特地咨询了一位工程师:

 并接入 STM32:

5.3 电源的 pcb 设计

 

六、串口转 USB

6.1 CH340N 概述

首先我们需要使用一颗 CH340N 将串口转化为差分信号,这样才能输出到 usb 中。

 

CH340 内置时钟,不需要外接晶振。同时 CH340 也作为一个系列出现,我们在这里使用最小封装CH340N。

 手册说明,VCC 需要外接 0.1uF 的电容。同时 UD+ 和 UD- 可直接接入到 usb 无需电阻。

电路实现如下:

6.2 Type-C 接口

 

 

 标准的 type-c 接口是 24PIN,我们不需要这么多,只需要去掉 tx 和 rx 的 16 PIN 版即可。

 通过 CH340N 将数据转化为差分信号,后接入 type-c 的 A6、A7、B6 和 B6 差分口。其中最重要的 type-c 的CC1 和 CC2口,这两个数据口决定了插入方向,插入的版本等。

CC1 和 CC2 都接入下拉电阻即可配置 type-c 为 UFP 模式,即为被供电设备,下表中说明了 UFP 几种子模式。图中说的 Ra下拉是 1.2k 下拉电阻。Rd 下拉是 5.1k 下拉电阻。

我们需要使用的是 debug mode (调试模式),即 CC1 和 CC2 都接入 5.1k 下拉电阻。至于其他几种模式用途我还没有完全搞懂,不做介绍。

PCB 接线如下:因为正反有两排接口,所以无论是vcc、接地和差分均有一对口。

6.3 串口转 USB 的 pcb 设计

 

七 总结

相关文章:

STM32F103 最小系统 PCB 设计与原理

这篇文章是来自我学习: ​​​​​​带着你从手册开始画板 STM最小系统板教程系列(一)_哔哩哔哩_bilibili​​​​​​ 这套教程的笔记,同时本文中也参考了其他教程以及我遇到的困惑与自答,最终汇总。 一、单片机最小系统 单片机最小系统是由…...

JVM篇---第十一篇

系列文章目录 文章目录 系列文章目录一、如何选择垃圾收集器?二、什么是类加载器?三、什么是 tomcat 类加载机制?一、如何选择垃圾收集器? 如果你的堆大小不是很大(比如 100MB ),选择串行收集器一般是效率最高的。 参数: -XX:+UseSerialGC 。如果你的应用运行在单核的机…...

MongoDB——window11安装mongodb5.0.21版本服务端(图解版)

目录 一、mongodb官网下载地址二、安装步骤三、配置环境变量四、运行mongodb 一、mongodb官网下载地址 mongodb官网下载地址:https://www.mongodb.com/try/download/community 二、安装步骤 双击运行下载好的mongodb-windows-x86_64-5.0.21-signed.msi安装包&am…...

第1次 更多的bash shell命令

1.检测程序 程序都是进程在运行,进程里面有很多线程,面试经常会问进程和线程的区别,线程可以访问另一个线程的什么什么的,这些我都听腻了,区别就是进程会分配程序需要的空间,创建线程需要的资源&#xff0c…...

工业路由器项目应用(4g+5g两种工业路由器项目介绍)

引言: 随着工业智能化的不断发展,工业路由器在各个领域的应用越来越广泛。本文将介绍两个工业路由器项目的应用案例,一个是使用SR500 4g工业路由器,另一个是使用SR800 5g工业路由器。 详情:https://www.key-iot.com/i…...

国产开源无头CMS,MyCms v4.7 快捷生成接口开发后台

MyCms 是一款基于 Laravel 开发的开源免费的开源多语言商城 CMS 企业建站系统。 MyCms 基于 Apache2.0 开源协议发布,免费且可商业使用,欢迎持续关注我们。技术交流 QQ 群:887522124 加群请备注来源:如gitee、github、官网等 v4…...

C++(反向迭代器)

前言: 上一章我们介绍了适配器,也提了一下迭代器适配器,今天我们就从反向迭代器把迭代器适配器给解释一下。 既然 都叫迭代器容器了 就说名只要接口合适他可以封装实现各种容器需求包括vector list 。 目录 1.反向迭代器设计 1.1反向迭代…...

DataX和dataX-web 集群部署及使用

📑 DataX和dataX-web 集群部署及使用 一 . 安装前准备 DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 DataX 采用 框架 插件 的模式…...

常见的数据存储方案:选择合适的方式来管理您的数据

对于数据存储方案的选择,是现代企业和个人都需要面对的重要决策。本文将为您介绍几种常见的数据存储方案,包括关系型数据库、NoSQL数据库以及分布式文件系统。通过了解每种方案的特点、操作方式和适用业务类型,希望能帮助您选择合适的数据存储…...

leetcode 221 最大正方形 + 1277 统计全为1的正方形子矩阵

题目 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 示例 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“…...

yolov7车牌识别(12种中文车牌类型)

12种中文车牌类型: 1.单行蓝牌 2.单行黄牌 3.新能源车牌 4.白色警用车牌 5 教练车牌 6 武警车牌 7 双层黄牌 8 双层武警 9 使馆车牌 10 港澳牌车 11 双层农用车牌 12 民航车牌 测试demo: 以yolov7-lite-s 为例: python detect_rec_plate.py --detect_model weigh…...

Mac PF命令防火墙

查看所有网络接口及其名称 ifconfig -a 文件目录:/etc/pf.conf 在文件末尾添加以下行: block drop from IP_ADDRESS其中,"IP_ADDRESS"是您要屏蔽的IP地址。 输入以下命令以重新加载pf防火墙配置文件: sudo pfctl …...

prototype-based learning algorithm(原型学习)

Prototype-based learning(原型学习)是一种机器学习方法,它的核心思想是通过存储一组代表性的样本(原型),然后使用这些原型来进行分类、回归或聚类等任务。这种方法模拟了人类学习的方式,人们往…...

【数据结构-二叉树 八】【遍历求和】:求根到叶子节点数字之和

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【遍历求和】,使用【二叉树】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&am…...

PHP知识大全

PHP知识大全 1. 变量如何定义?如何检查变量是否定义?如何删除一个变量?怎样检测变量是否设置? $定义 isset()// 检测变量是否设置 defined()// 检测常量是否设置unset()//销毁指定的变量 empty()// 检测…...

Jmeter常用参数化技巧总结!

说起接口测试,相信大家在工作中用的最多的还是Jmeter。 JMeter是一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA 等多种协议。 在做…...

iTunes更新iOS17出现发生未知错误4000的原因和解决方案

有不少人使用iTunes更新iOS 17时出现「无法更新iPhone发生未知的错误4000」的错误提示,不仅不知道iTunes升级失败的原因,也无从解决iPhone无法更新4000的问题。 小编今天就分享iPhone更新iOS系统出现4000错误提示的原因和对应的解决方案。 为什么iPhone…...

微信小程序 table表格 固定表头和首列 右侧表格可以左右滚动

(一) 1.左侧一列固定不动 2.右侧表格内容可以左右滚动 3.单元格内容平均分配 4.每一行行高可以由内容撑开 通过 js 设置左侧一列行高与右侧表格内容行高保持一致 1.1 效果图 1.2 tabble.wxml <view classtable><!-- 左侧固定 --><view classtable_left_colum…...

Final Cut Pro 10.6.10中文用法儿

Final Cut Pro是一款专业视频编辑软件&#xff0c;主要用于影片的后期剪辑、调色、特效、音频处理等方面。 Final Cut Pro for Mac(fcpx视频剪辑) 10.6.10中文版 以下是一些基本的使用方法和快捷键&#xff1a; 添加素材: 在检视器中&#xff0c;可以使用E快捷键把所选素材片…...

【网络安全---XSS漏洞(1)】XSS漏洞原理,产生原因,以及XSS漏洞的分类。附带案例和payload让你快速学习XSS漏洞

以pikachu靶场为例子进行讲解&#xff0c;pikachu靶场的搭建请参考以下博客&#xff1b; 【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程&#xff08;提供靶场代码及工具&#xff09;_网络安全_Aini的博客-CSDN博客【网路安全 --- pikachu靶场安装】超详细的pi…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...