学点啥系列之

——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. RocketMQ源码详解 | Broker篇 · 其四:事务消息、批量消息、延迟消息

    概述 在上文中,我们讨论了消费者对于消息拉取的实现,对于 RocketMQ 这个黑盒的心脏部分,我们顺着消息的发送流程已经将其剖析了大半部分.本章我们不妨乘胜追击,接着讨论各种不同的消息的原理与实现. ...

  2. Java是用JDBC连接MySQL数据库

    首先要下载Connector/J地址:http://www.mysql.com/downloads/connector/j/ 这是MySQL官方提供的连接方式: 解压后得到jar库文件,需要在工程中导 ...

  3. [cf674E]Bear and Destroying Subtrees

    令$f_{i,j}$表示以$i$为根的子树中,深度小于等于$j$的概率,那么$ans_{i}=\sum_{j=1}^{dep}(f_{i,j}-f_{i,j-1})j$ 大约来估计一下$f_{i,j} ...

  4. [loj3274]变色龙之恋

    首先有一个暴力的做法,将任意两个点判断,可以得到与之相关的1或3只变色龙:1只是两只变色龙相互喜欢,那么剩下那只就是颜色相同:3只从3只选2只并和自己判断一次,结果为1的那次剩下的那个就是他喜欢的,然 ...

  5. 下一代的 3D Tiles 前瞻

    下一代的 3D Tiles 前瞻 原文:Introducing 3D Tiles Next, Streaming Geospatial to the Metaverse 原文发布时间:2021年11月 ...

  6. Roslyn+T4+EnvDTE项目完全自动化 (一)

    前言 以前做一个金融软件项目,软件要英文.繁体版本,开始甲方弄了好几个月,手动一条一条替换,发现很容易出错,因为有金融专业术语,字符串在不同语义要特殊处理,第三方工具没法使用.最后我用Roslyn写了 ...

  7. Kafka连接器建立数据管道

    1.概述 最近,有同学留言咨询Kafka连接器的相关内容,今天笔者给大家分享一下Kafka连接器建立数据管道的相关内容. 2.内容 Kafka连接器是一种用于Kafka系统和其他系统之间进行功能扩展. ...

  8. Nocalhost 为 KubeSphere 提供更强大的云原生开发环境

    作者简介 张海立(驭势科技云平台研发总监):开源爱好者,云原生社区上海站 PMC 成员,KubeSphere Ambassador:日常云原生领域工作涉及 Kubernetes.DevOps.可观察性 ...

  9. keyboard-interactive authentication with the ssh2 server failed 的SecureCRT报错解决

    两种解决方法: 一.选定SSH2,选择Authentication,勾选Password,然后将该选项上移,挪到第一位即可 或者: 二.服务器端修改配置 默认情况/etc/ssh/sshd_confi ...

  10. 5.Maximum Product Subarray-Leetcode

    f(j+1)为以下标j结尾的连续子序列最大乘积值(1) 状态转移方程如何表示呢: 这里我们知道A[j]可能为正数(或0)或负数,那么当A[j]为正数,期望前j个乘积为正数,若为负数,则期望前面的为负数 ...