【PCB】3. 信号部分设计
在之前的学习中,我偏向的多是嵌入式软件开发的工作,如果想要自己diy一款具备特定功能的嵌入式工具的话,还需要具备画板子的能力。但由于我目前还没学模电,故我打算直接找个b站的学习视频先跟着画个板子出来,简单理解各个模块的功能,后续再详细了解其内部原理。
我选择的课程是expert实验室的PCB大师篇教学视频,链接如下:
【大师篇】8-stm32开发板原理图设计(单片机最小系统)_哔哩哔哩_bilibili
我将跟随教程做一个stm32f103vet6开发板出来,具体需求和方案如下:
接下来,我会尽可能以博客的形式将我每期的学习总结下来,仅供交流,如有谬误,欢迎指正。
本系列博客目录如下:
【PCB】1. 芯片选型及电源电路设计-CSDN博客
【PCB】2. 单片机最小系统设计-CSDN博客
1. 本节概述
1.1. 信号部分组成
简单来说,信号部分由以下几个部分组成:
1. USB接口。
2. ADC/DAC接口
3.通信接口,包括SPI、IIC、串口
4. LED电路。
5. 按键电路。
6. 下载电路,包括SWD下载和串口自动下载电路。
7. M3螺丝孔,用于固定。
2. 总体原理图及BOM表
2.1. 总体原理图
最终,信号部分的原理图页如下:
2.2. BOM表
Designator | Footprint | Value | Manufacturer Part |
BT1 | BAT-SMD_CR1220-2ZX | CR1220-2ZX | |
C1,C2 | CAP-SMD_BD5.0-L5.3-W5.3-FD | 4.7uF | EMVE500ADA4R7ME55G |
C3,C7,C9,C11,C12,C13,C14,C15,C16,C17,C18,C24,C25,C26,C27,C28 | C0603 | 100nF | |
C4 | C0603 | 10nF | |
C5,C6 | CAP-SMD_BD5.0-L5.3-W5.3-FD | 47uF | EMVE500ADA4R7ME55G |
C8,C10 | C0603 | 10UF | |
C19 | C0603 | 10uF | |
C20,C21 | C0603 | 20pF | |
C22,C23 | C0603 | 10pF | |
CN1 | CONN-TH_2P-P3.81_MX128L-3.81-GN01-02P-CU-Y-A | MX128L-3.81-02P-GN01-Cu-Y-A | |
D1 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | BAT54C | |
D2 | SOD-123FL_L3.0-W1.8-LS3.7-RD | 1N4007W | |
DC1 | DC-005_2.5 | ||
H1 | HDR-TH_6P-P2.54-V-R2-C3-S2.54_A2541WV-2X3P | ||
H2,H3 | HDR-TH_46P-2.54-V-M-R2-C23-S2.54 | X6521WV-2x23H-C60D30 | |
H4 | HDR-TH_4P-P2.54-V-M | ||
L1 | IND-SMD_L7.3-W6.6 | 15uH | |
LED1,LED2,LED3,LED4,LED5 | LED_0603 | ||
P1,P2,P3 | CONN-SMD_XH2.54-4PSMD | CONN-SMD_XH2.54-4PSMD | |
Q1 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | S8550 | |
Q2 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | S8050 | |
R1,R2,R13,R14 | R0603 | 5.1K | |
R3 | R0603 | 3.16K | |
R4,R10,R11,R12,R15,R27 | R0603 | 10K | |
R5,R16,R17,R18 | R0603 | 2K | |
R6 | R0603 | 3K | |
R7,R8 | R0603 | 0 | |
R9,R28,R29,R30 | R0603 | 1K | |
R19,R20,R21,R22,R23,R24,R25,R26 | R0603 | 4.7K | |
SCREW1,SCREW2,SCREW3,SCREW4 | M3螺丝 | ||
SW1,SW2,SW3,SW4 | SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2 | ||
U1,U3 | SMA_L4.2-W2.6-LS5.1-RD | SS54 | |
U2 | SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL-EP | TPS5450QDDARQ1 | |
U4 | SW-SMD_YSSP2AG00 | YSSP2AG00 | |
U5 | F1206 | JK-nSMD005/60V | |
U6 | SOT-223-3_L6.5-W3.4-P2.30-LS7.0-BR | AMS1117-3.3 | |
U7 | LQFP-100_L14.0-W14.0-P0.50-LS16.0-BL | STM32F103VET6 | |
U8 | SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR | TL431 | |
U9,U10,U11,U12 | SMA-TH_HL-SMA-KHD2 | 6GHz | HL-SMA-KE-02 |
U13,U14 | CONN-SMD_6P-P2.50-H | XH2.54mm-LI-6P | |
U15 | SOP-16_L10.0-W3.9-P1.27-LS6.0-BL | CH340C | |
USB1,USB2 | USB-C-SMD_KH-TYPE-C-16P | HC-TYPE-C-16P-01B | |
X1 | CRYSTAL-SMD_4P-L3.2-W2.5-BL_SIT8008BI | 8MHz | XL2EL89CSI-111YLC-8M |
X2 | OSC-SMD_L3.2-W1.5 | - | SF32WK32768D31T002 |
3. 模块设计细节
这部分的讲解可能会因为我在模电知识上的缺乏导致错误,欢迎各位指正!
3.1. USB接口
这部分其实跟第一阶段画USB供电(【PCB】1. 芯片选型及电源电路设计-CSDN博客)时的原理图很像,区别在于USB的两个正负极接口要跟单片机上的USB复用IO口相接,关于到底哪个IO口可以复用USB,可以在数据手册中找到答案:
注意由于USB通信协议的要求,USBP上应该接一个10k的上拉电阻。
3.2. ADC/DAC接口
3.2.1. ADC接口
这个ADC座子的四个接口接地散热,一个接口与STM32上的ADC接口相接,同样,我们可以在数据手册上找到哪些IO口可以复用为ADC接口。
3.2.2. DAC接口
同ADC接口类似,我们仍旧将重点放在寻找可以复用为DAC接口的IO口即可:
3.3. 通信接口
3.3.1. SPI接口
这里的SPI采用的是软件模拟SPI,效果一般会比硬件SPI好一些。我们先简要知道SPI通信的四个引脚的基本含义即可:
SPI_CSS:片选引脚,由该引脚决定主机与哪个从机通信。
SPI_CLK:时钟引脚,用于实现同步通信。
SPI_MISO:主进从出引脚,用于主机向从机传递数据。(master in server out)
SPI_MOSI:主出从进引脚,用于从机向主机传递数据。(master out server in)
注意,由于是软件模拟,这里的四个GPIO口随意选就可以,因为本质是通过改变IO口的电平状态来模拟通信时序。
3.3.2. IIC接口
跟SPI类似,IIC我们同样采用软件模拟,核心的两条线是SCL(时钟线)和SDA(数据线),不过需要注意的是软件模拟IIC时,为了避免同一线上多个从机带来的短路风险,一般会将GPIO配置为开漏输出模式,因此在硬件上需要在外设置4.7k的上拉电阻。
同样,这里用于模拟SCL和SDA的两个IO口任选两个GPIO就可以。
3.3.3. 串口接口
与之前的软件模拟不同,串口通信我们直接使用STM32自带的串口通信引脚,因此我们需要查看STM32的数据手册以确定哪些IO口可用来复用为串口:
值得注意的是,我们在原理图上还加了两个上拉电阻,其目的是为了让该接口也可复用为IIC接口。当我们需要该接口作为串口使用时,就不焊那两个上拉电阻,IO配置为串口模式;如果需要将该接口作为IIC通信接口使用,则需要焊上上拉电阻,IO配置为开漏输出模式。
3.4. LED电路
LED电路较为简单,不过需要注意的是此处的配置为低电平有效,即当我们手动将PB6、PB7、PD8的电平置低时,灯才会亮。设置为低电平有效的原因是这样比用IO做正极带来的驱动能力更强,灯也会更亮。
3.5. 按键电路
按键电路也比较简单,注意使用一个滤波电容来做消抖。
3.6. 下载电路
3.6.1. SWD下载
观察数据手册我们可以发现STM32的PA13和PA14是用来SWD下载的,因此我们用短接标识符做说明:
3.6.2.串口自动下载
关于自动下载电路部分,我只能阐述其功能,关于其原理更推荐大家去看原UP主的视频:
【大师篇】9-stm32开发板原理图设计(接口部分)_哔哩哔哩_bilibili
总的来说,我们将typec接口与CH340芯片连接,该芯片通过控制RTS和DTR的电平状态来实现串口自动的固件下载。
需要注意的是,PA9和PA10要与CH340的RXD和TXD交叉连接:
这个电路是STM32中比较常见的自动下载方案。
3.7. M3螺丝孔
螺丝孔就没什么好说的了,功能是用于固定。
总结
本文讲解了项目-stm32f103vet6开发板设计的信号设计部分,主要模块包含USB接口、ADC/DAC接口、通信接口、LED电路、按键电路、下载电路。