学点啥系列之

——STM32F103ZET6 核心板制作指引

原创资料,转载请联系

作者的话:会画stm32F103ZET6的话,rct6啥的简直不要太简单

一、电路总览

图1:电路整体

二、单片机部分

要做一块核心板,首先要搞清楚自己想在这块板子上加啥东西。

依照思路,一块单片机最小系统,应该要有电源(三处讲)、单片机本身、复位电路以及时钟电路。

我们先从单片机本身入手,如图 2 所示,是本次的主角,STM32F103ZET6


图2:STM32F103ZET6

翻开数据手册,查一下,如图 3:


图3:数据手册的zet6

从数据手册中我们可以获知这 LQFP封装的芯片各个引脚是什么。可能有的同学迷糊了,这些引脚都有编号(1-144),那么实际上单片机上引脚是如何对应编号的呢?

同学,先找 1 号引脚,那么 1号引脚在哪呢?找小圆点(引脚基准点)!

看看下面这张图 4:


图4:芯片实物

找小圆点,仔细看看,哎呀,居然有 3 个圆点,咱们这个左下角的那个点

才是引脚基准点,离该点最近且作为引脚直线上逆时针第一个引脚是 1 号引脚:

那么答案呼之欲出了,如图 5 所示:


图5:引脚基准和 1 号引脚

还有一个方法,那就是将芯片的丝印字符正对,左下角第一个引脚即为一号引脚,此法适用于没有引脚基准时的判断。

关于找 1 号脚的问题就不多说了,可以自己找资料。我们把芯片画在原理图上,如图 6

所示:



图 6:MCU 原理图

此处我们将一块 stm32f103zet6 划分为两个部件,仔细观察一下可以发现,我们将 VDD、VSS、VSSA、VREF+、VDDA、VSSA单独提出来做一个部件,其实二者封装还是共用的,AD绘制原理图库加部件的操作自己琢磨。这里有个有意思的地方,那就是右边 MCU_2 处有DGND 和 AGND,它们之间用了一个 0Ω的电阻连了起来,关于数字地和模拟地之间用0Ω电阻连接的操作,同学可自行查找资料学习。此处咱们讲点更有意思的内容,这里有着一堆VDD、VSS、VREF+、VSSA、VDDA、NRST、VBAT,我在此处做些解释,防止有些同学不明白还懒。

① VCC: 学过 51 的同学都知道 51 供电引脚是个 VCC,VCC 就是接入电路的电压。(V代表电压,C 字母代表电路)

② VDD: 器件内部的工作电压,咱们一般直接接 3.3V 了。(D 为 device器件的首字母,表示器件)

③VSS: 通常指电路公共接地端电压,所以可以看到往往咱们都把其接到GND 去了。(S为 series 表示公共连接的意思)

④VDDA: 通对比 VDD 多了个A,不用想,这肯定和模拟电路有关,所以这玩意是对所有的模拟电路部分供电。需要注意的是VDDA 和 VDD 之间的电压差不能超过 300mV,VDD 与 VDDA应该同时上电或调电,所以咱们就不自找麻烦整写花里胡哨的电路了,这两玩意直接连同一个电源就是了。

⑤VSSA:接地的玩意后面跟了个 A,毫无疑问,这是 VDDA的地,所以我们可以理解出来,VDDA 和 VSSA是单片机内部模拟电路的正负(电源),所以啊,你要是这两玩意不接好,怕是不能使得单片机正常工作了。那为啥我右边这张图的VSSA(31号引脚)接了一个数字地呢?不该是接到模拟地吗?那是因为我这个芯片画错了,这里 31号引脚是 VREF-,而不是 VSSA。但真的就是错的?这里画错是有一定道理的,在VREF-可用时,必须绑定到 VSSA。

⑥VREF+、VREF-:关于这个,看到 ref,大家就应该知道这玩意是个参考电压,结合stm32 的引脚具备 A/D 转换的功能这点,就能清楚这玩意是用来提高 ADC精度的。在引脚数目上了 100后,为了保证更好的低电压输入精度,连接一个单独的参考电压输入到VREF+中,VREF+输入电压范围为 2.0V 到 VDDA,VREF-可用时,必须绑定到VSSA。在引脚数为 64 时,将没有这个 VREF(实际上不是没有,而是不引出了,VREF+、VREF-在内部被接到 VDDA、VSSA 上去了)对于 NRST 和VBAT,电路如图 7 所示:


图 7:时钟、复位、VBAT 电路

红色框的是时钟电路,蓝色框的是复位电路,绿色框的是 VBAT外围电路。时钟电路和复位电路不多说,此处讲一下这个 VBAT 外围电路。

VBAT 的作用: 使用电池或其他电源连接到 VBAT 脚上时,当 VDD断电时,可以保存备份寄存器的内容和维持 RTC 的功能。

图7上的 VBAT 电路,外接 3V3 或者不外接,都有 BT1 在作用,对于VBAT外围电路,还有更好的接法,在这里展示一下:


图 8:VBAT 外围电路好接法

看图8,这里接了两个二极管,对比俺画的电路,区别在于 BAT的正极也接了个二极管,分析电路可知,当 VCC3.3M 作用时,D2两端压差不至于导通,所以有了 VCC3.3M 作用时,备用电池就不会作用了,而 VCC3.3M断开时,D2 满足导通条件,BAT 作用于 VBAT。

该VBAT外围电路取自博主_Charles_Chen的图,我自己懒得画了哈哈哈

三、电源和通信部分


图 9:USB 供电电路

这是个 USB 供电电路,C6、R9 是阻容网络,接到了 USB的外壳上去(6、7、8、9引脚),目的如下:

⑴将影响外壳的噪音滤除、不影响信号地;

⑵迫使板子上电流是流入内部的信号地,而不是流到外壳。

这样处理综合考虑了 EMI 滤波和 ESD隔离,相比于直接接地,此类处理方式能更好减小各种干扰,增加整体的抗干扰能力,事实上USB 对 ESD 并不敏感,这种接法也是属于有备无患,不想接的话可以直接接地或者不接,将阻容网络去掉。

然后看一下 usb 的 D+和 D-,对应到 STM32 的 USBDP、USBDM。

USBDP(USB DataMinus)是 USB 的正信号线;

USBDM(USB Data Positive)是 USB 的负信号。

查一下数据手册


图 10:数据手册截图

再看C5,这是退耦电容,许多同学对滤波和退耦电容区分不清,建议查查资料了解一下,滤波主要是用于电源整流电路中,用来滤除交流成分,使得输出的直流更加平滑(滤纹波)。

而退耦电容一般用于不需要交流的地方,用来消除自激,并接在正负极,避免由于电流的突变而使得电压下降,这里也有滤纹波的意思。

说到滤波、退耦电容,又不得不提旁路电容,旁路电容用在有电阻连接时,接在电阻两端使得交流信号顺利通过。(具体自己查资料)

对于 PA8、R6、R7、R8、Q1,此处作用是切换 D+上拉,当 PA 高电平时 D+不上拉;PA8

低电平时 D+上拉。

一般插上电脑 USB 后的 VUSB 的电压时 5V(实测要更低些),经过下面这个线性稳压IC(AMS1117-3.3V)后输出 3V3。(右边并联 LED 用来指示3.3V 输出正常)


图 11:AMS1117 稳压电路
Vin 和 Vout不必多说,看看数据手册即可明白。此处输出的 3.3V 供给单片机。

接下来是 UART 和 SWD:


图 12:SWD 和 UART

至于为啥是 PA13、PA14。。。自己看数据手册。

BOOT 就不说了,然后就是最好将芯片的各个引脚引出,一般是用排针引出:


图 13:接插件引出
当然你也可以不止引出一个,比如 3.3V、5V、GND这种引脚,因为用的比较多,可以多引出些,可以插更多凌乱的杜邦线啥的。

附录:PCB 提要


①各个引脚要注意在 Top/Bottom Overlay 层标注一下:(天蓝色线框位置)

②GND 用铜加固一下,电流较大的地方把线弄粗些,必要时直接用铺铜当导线:

"

③晶振要尽量靠近时钟接口、走线尽量对称,最好走差分线。并且晶振底部尽量不要走线:

④绘制 logo:

这种是两层叠在一起,分别是 Top Layer 层和 Top Solder 层,自己尝试一下吧。

作于 2020.10.21
上传于2021.10.24

本文以现在眼光来看仍然有许多可优化的地方,但不影响主题,再者“心宽体益胖”,日渐惰矣

STM32F103ZET6 核心板制作指引的更多相关文章

  1. 基于迅为-i.MX6Q开发板制作镜像方法

    在“/home/imx6”目录(在前面编译 android 系统的时候新建过这个目录,如果没有可以自己新建一个)下,使用命令“mkdir minilinux/”新建 minilinux 目录,使用命令 ...

  2. 【iCore3 双核心板】DEMO 1.0 测试程序发布

    iCore3 Demo V1.0 程序说明 一.概要 本资料包包含5个文件夹: 1.“arm”里是 icore3上 arm的程序包,开发环境为 KEIL 5.17: 2.“fpga”里是 icore3 ...

  3. 迅为iTOP-4412核心板调整电压

    本文转自:http://www.topeetboard.com iTOP-4412核心板使用的电源管理芯片是三星专门针对4412研发的S5M8767,8767提供9路BUCK和28路LDO输出,每路电 ...

  4. 【iCore系列核心板视频教程】之 SDRAM 读写实验

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  5. 【iCore2 双核心板视频教程一】iM_LAN 100M 以太网模块UDP例程(包含视频教程)

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  6. 【iCore2双核心板视频教程三】iM_LAN 100M 以太网模块TCP压力测试(更新视频教程)

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  7. 【iCore2双核心板视频教程二】iM_LAN 100M 以太网模块TCP通信例程

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  8. 【新产品发布】发布STM8S 核心板

    搞了一些STM8的核心板供大家把玩,先上几张图: 物品购买地址: http://item.taobao.com/item.htm?spm=686.1000925.1000774.17.5GMO5M&a ...

  9. 【iCore、iCore2 双核心板】EPCS 实验(SPI Flash)(基于Verilog语言)

    _____________________________________ 深入交流QQ群: A: 204255896(1000人超级群,可加入) B: 165201798(500人超级群,满员) C ...

随机推荐

  1. opa gatekeeper笔记:AdmissionReview input.request请求对象结构

    官方:https://v1-17.docs.kubernetes.io/zh/docs/reference/access-authn-authz/extensible-admission-contro ...

  2. [luogu7736]路径交点

    对于两条路径,注意到每一个交点都会改变两者的上下关系,因此两条路径交点的奇偶性,仅取决于两者的起点和终点是否改变了上下关系(改变即为奇数) 类似地,对于整个路径方案,令$p_{i}$为以第一层的$i$ ...

  3. [spojSUBST1]New Distinct Substrings

    求出后缀数组和height数组,然后因为子串即后缀的前缀,考虑不断新增后缀然后计算贡献,如果以sa的顺序新增那么第i个就会产生n-sa[k]+1-h[k](n-sa[k]+1为总方案,h为不合法的方案 ...

  4. C/C++ Qt ToolBar 菜单组件应用

    ToolBar工具栏在所有窗体应用程序中都广泛被使用,使用ToolBar可以很好的规范菜单功能分类,用户可根据菜单栏来选择不同的功能,Qt中默认自带ToolBar组件,当我们以默认方式创建窗体时,To ...

  5. 如何查看dpdk版本

    服务器上曾经装过很多版本的dpdk,此时如果编译某个程序出现奇怪错误的时候不由得会怀疑是不是dpdk版本的问题= = 令人吃惊的是,网上搜了一圈居然没有一个简单直接的方法能够直接使用,于是自己实验了一 ...

  6. 【Python】批量给图片增加水印工具

    背景 最近有一些图片需要增加水印,找了一圈也没看见比较好的工具,又不想用破解的PS,干脆自己做了一个GUI工具,有需要的同学自取 功能 支持水印预览 自定义水印文字内容 支持行楷和微软雅黑两种字体 支 ...

  7. CF1555F Good Graph

    有以下引理: 不存在两个合法环,他们存在公共边. 证明:公共边边权为 \(z\),第一个环除去公共边为 \(x\),第二个环除去公共边为 \(y\). 则有 \(x \oplus z = 1\) \( ...

  8. Topcoder 12519 ScotlandYard(点对 dp+最长路)

    题面传送门 题意: 有两个人 A 和 B 玩一个游戏.游戏规则大致是这样的: 有 \(n\) 个城市和三种交通工具公交.地铁和出租车. 给出三个 \(n\times n\) 的字符矩阵 \(b,m,t ...

  9. sar 系统活动情况报告

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告, 包括:文件的读写情况.系统调用的使用 ...

  10. gcc 的编译流程 和gdb的调试方法

    GCC的编译流程分为四个步骤: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking) 可以看的出来文件大小 gdb 调试 gdb - ...