【硬件设计】关于电赛——硬件设计和PCB绘制的一些心得(持续更新)

本文详述了PCB设计中的关键要点,包括线宽设置、元器件封装选择、电位器使用注意事项、接口类型、信号线宽规范、电源线粗细要求、铺铜快捷键、信号连接建议、运放应用与比较器设计。特别强调了单端信号到差分信号的转换,以及高速比较器和微弱信号放大技术。还涵盖了电源板制作、仪表放大器和晶体三极管放大电路的搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【5.20校内训练】

1.一般线宽设置成0.254mm。【具体线宽设置看6】

2.对于功能不大的小模块板子,贴片电容电阻的封装尽量选择C0805和R0805,便于焊接。0603和0402封装的贴片电容电阻都很难手焊。

3.对于用软件生成的电路,有些电阻会影响输出,不同情况下对印的正确阻值也不是确定唯一的。所以自己在做板子的时候,要把这些电阻改成“电位器”,板子制作完成后,调试的主要工作就是调节这些电位器。
【但需要注意:电位器不稳定,阻值可能有飘忽】

4.信号输入,输出,±Vcc,GND和测试点都要引出接口,常用的接口有三种:2.54排针,XH2.54,SMA。同一个点可以引出多个接口,提供多个接入方式。
(2.54是间距,要根据具体排针间距来选择)
注:HX2.54-3P在立创中找不到封装,可用CON3-2.54代替:
在这里插入图片描述

5.过孔内径和直径参照文章:PCB板过孔大小

6.PCB布线宽度参照文章:PCB板布线中地线和电源线的布线规则
【参考视频:立创EDA+ALTIUM DESIGNER PCB设计入门(第2讲)第3部分
【指导老师意见】
不管任何板子,电源线都应该加粗,这样负载的变化对电源的电压波动影响就会更小。一般0.2A电流要求20mil以上,0.5A电流30mil以上,1A以上电流40mil以上,2A电流我80mil以上。电源线肯定是越粗越好。
对于运放构成的模拟电路,VCC和VEE尽可能30mil以上。到运放管脚处时,可以改到15mil,以防布线过不去。GND要比VCC和VEE宽
普通信号线宽可以设置成10mil
(30mil=0.762mm;15mil=0.381mm;10mil=0.254mm)
【实践】按照这个规则画出的PCB大致如下:
在这里插入图片描述

7.立创EDA铺铜快捷键:
在这里插入图片描述


【5.27~5.29七校联赛】

6.信号通路必须用SMA进行连接,不可用杜邦线!(杜邦线HX2.54仅用于VCC、VEE和GND通路的连接)杜邦线对信号的干扰很大,会导致硬件对信号的调理不佳,进一步导致不能很好地服务软件驱动单片机进行测量等工作。因此,PCB制作时必须保证SMA的使用。
另外,SMA的PCB封装有“垂直”和“平躺”两种,常用封装如下:
在这里插入图片描述在这里插入图片描述

【我们一般都使用垂直式的SMA,便于连线和板块排布。】

7.LM393和NE5532P虽然都是运放,但他们的作用和用途完全是不一样的!绝对不可以认为LM393是噪声较大的NE5532P。博主在制作过零比较器的时候误使用了NE5532P导致输出信号毛刺严重。
一般来说,LM系列都专门用于比较器(门限比较、迟滞比较),而NE5532P(包括OPA2354)都专门用于信号的放大(比如:反向放大电路,积分器,射极跟随器)
在这里插入图片描述

在这里插入图片描述

8.关于LM393供电问题:
LM393的手册4号引脚(上图)标注的是GND,说明LM393使用单电源VCC供电。如果输入信号全是正压,那么单电源供电是可以的。但在实际使用中发现, 如果输入的信号存在反向负电压(比如直流偏置为0的正弦信号),必须使用双电源供电,4脚GND连接VEE。
如果这种情况下单电源供电,会产生非常大的毛刺。如下图:
在这里插入图片描述

9.使用LM393制作比较器时,输出端要接上拉电阻(5k左右)。比如:
在这里插入图片描述
这个是仿真电路(前级加去直流电路):
在这里插入图片描述

10.反向放大器的+输入端可以接一个平衡电阻再接地,这个平衡电阻的阻值是Rf和R的并联阻值,比如:
在这里插入图片描述


【2022暑假初期(7月上旬)TI杯赛前训练】

1.绘制和制作一个直流电源板
初衷:多级VCC、VEE和GND的连接最好全部并接在电源两端,共地。多级串联取VCC会互相干扰。因此需要做一个电源板,提供多级VCC、VEE和GND的管脚供应。
在这里插入图片描述
自制电源板:详见【信号调理】【PCB】电源板(提供±2v5,3v3,5v,12v供电)的制作——电赛使用

2.学习“仪表放大器”:
仪表放大器一般用于“测量系统”。简单的测量系统即传感器,仪表放大器接在传感器后级用于放大差模信号抑制共模信号,这是比较常见的用法。
在这里插入图片描述
通过外接RG的调节,来调节总的放大倍数。
(常用仪表放大器:INA128)

【文章:运算放大器和仪表放大器有哪些区别?
【视频:集成仪表放大器之功能实现
3.微弱信号放大
【文章:几种微弱信号处理电路

4.差分放大电路的单一信号输入问题
我们在课内学习了长尾式差动电路,知道了通过Re(或镜像电流源)来放大差模信号,抑制共模信号的原理。但是一直困扰我的一个问题是,差分电路有两个输入口,但我们的信号只有一个,那么信号是如何进行“差分输入”的
(Ui1和Ui2都是信号输入口,但我现在输入的信号只有一个Ui,如何输入Ui?)
在这里插入图片描述
在这里插入图片描述
【非常好的一个视频:差分信号到底是啥信号,它和常见的单端输入信号有什么区别
【文章:差分信号解释
【文章:差分信号_差分信号全面详解!
由此可见,我们平常使用的单端信号必须转化为幅值相等,相位相反的两个信号(即“差模信号”),才能进行差分电路的输入。

单端信号只使用一根信号线进行传输。由于信号每一点的电压都是相对于地而言的。,在长距离传输时,不同位置地平面的电位可能会有差别,这就导致了信号的误差,即不稳定因素。加之可能会有干扰信号,这就导致了单端信号的抗干扰能力很差。
在这里插入图片描述

差分信号使用两根信号线传输信号。两根线上信号的每一点电压幅度相同,方向相反。首先,如果在某一点地平面电位有浮动,或者有共模干扰信号加入,这些误差会同时同方向地作用在两根信号线上。但由于最后差分信号会进行相减的操作,因此这些误差会被减操作抵消掉,也就是很好地抵抗了干扰。至于这个减操作,就是差分放大器要做的事情了。
在这里插入图片描述

那么,如何将单端信号转化成分模信号呢?
【指导老师意见】如果输入信号是单端信号,需要用巴伦转换为差分信号。
【文章:巴伦电路基础
【文章:巴伦的设计与仿真分析(含阻抗匹配)
对于电赛来说,我们一般使用LC巴伦电路
在这里插入图片描述
5.修改运放PCB供电思路:【重要】
先前使用3个HX2.54分别供VCC、VEE和GND。现在,改进为仅仅使用一个HX2.54-3P,每个管口对应VCC、VEE和GND。这样,可以配合电源板进行系统的供电。
在这里插入图片描述
6.【PCB布线技巧
由于最后板子整体要覆铜(GND),所以一开始没有必要连接GND,这样可以避免GND阻挡其他的走线。最优的做法是在一开始对板子整体覆铜,再在上面摆放元件,连接其他的线(不需要连接GND),最后重铺一次即可。


【2022年7月中下旬集训】

1.制作TLV3501高速比较器,替代常规过零和迟滞比较器。
【参考文章:TLV3501超高速电压比较器模块
【参考文章:运放专题:电压比较器

2.根据信号要求的最大频率,选择对应性能的运放,这很重要。不然运放带宽性能达不到,没办法完成任务。常用:

NE5532P:上限100KHz

OPA2354:上限150MHz

OPA810:上限800MHz
注意:OPA810是单运放,封装和双运放有出入。而且,目前这款芯片处于短缺状态。
在这里插入图片描述

3.搭建“晶体三极管”放大电路

详见:【信号调理】用“晶体三极管”搭建CE放大器的实操经验分享

持续更新…

Altium Designer原件大全,原理图+PCB封装 AD603, AD603_2, AD8009, AD831, AD8314, AD8361, AD8367, ADF4351, ADL5536, ADS1293, ADS1293_Module, ADXL345, AH101, AMS1117, AT24C1024, Battery, Beep, BNC, Cap, Cap_Pol, CC2541-MOD, CH340G, Diode, Diode_Z, GND, Header 10, Header 10H, Header 10X2, Header 10X2A, Header 10X2H, Header 11, Header 11H, Header 11X2, Header 11X2A, Header 11X2H, Header 12, Header 12H, Header 12X2, Header 12X2A, Header 12X2H, Header 13, Header 13H, Header 13X2, Header 13X2A, Header 13X2H, Header 14, Header 14H, Header 14X2, Header 14X2A, Header 14X2H, Header 15, Header 15H, Header 15X2, Header 15X2A, Header 15X2H, Header 16, Header 16H, Header 16X2, Header 16X2A, Header 16X2H, Header 17, Header 17H, Header 17X2, Header 17X2A, Header 17X2H, Header 18, Header 18H, Header 18X2, Header 18X2H, Header 19, Header 19H, Header 19X2, Header 19X2H, Header 2, Header 20, Header 20H, Header 20X2, Header 20X2H, Header 22, Header 22H, Header 22X2, Header 22X2H, Header 24, Header 24H, Header 24X2, Header 24X2H, Header 25, Header 25H, Header 25X2, Header 25X2H, Header 2H, Header 2X2, Header 2X2H, Header 3, Header 30, Header 30X2, Header 3H, Header 3X2, Header 3X2A, Header 3X2H, Header 4, Header 4H, Header 4X2, Header 4X2A, Header 4X2H, Header 5, Header 5H, Header 5X2, Header 5X2A, Header 5X2H, Header 6, Header 6H, Header 6X2, Header 6X2A, Header 6X2H, Header 7, Header 7H, Header 7X2, Header 7X2A, Header 7X2H, Header 8, Header 8H, Header 8X2, Header 8X2A, Header 8X2H, Header 9, Header 9H, Header 9X2, Header 9X2A, Header 9X2H, HeadphoneSocket, HMC470, HMC472A, INA333, Ind, JTAG, LED, LM317, LM358, MB506, MC34063, MHDR1X10, MHDR1X11, MHDR1X12, MHDR1X13, MHDR1X14, MHDR1X15, MHDR1X16, MHDR1X17, MHDR1X18, MHDR1X19, MHDR1X2, MHDR1X20, MHDR1X3, MHDR1X4, MHDR1X5, MHDR1X6, MHDR1X7, MHDR1X8, MHDR1X9, MHDR2X10, MHDR2X11, MHDR2X12, MHDR2X13, MHDR2X14, MHDR2X15, MHDR2X16, MHDR2X17, MHDR2X18, MHDR2X19, MHDR2X2, MHDR2X20, MHDR2X3, MHDR2X4, MHDR2X5, MHDR2X6, MHDR2X7, MHDR2X8, MHDR2X9, MIC5219-3.3, MPU6050, MPU6050_module, NE5532, NPN, NPN_SOT23, nrf58122, OPA2333, OPA695, OPA847, PE4302, PNP, PNP_SOT23, PW2, PW3, PW4, Res, Res_8P4R, Res_pot, SMA, STC12C5A60S2, STC15F2K60S2, STM32F103RDT6, SW, SW_BTN, SW_DIP_4, SW_DIP_5, SW_DIP_6, SW_DIP_8, SW_PB, SX1308, Test, Test_6, THS3201, tlv3501, TP4056, TP5400, USB, USB_M, VCA810, VCA821, XC6206, XL6009, XTAL, XTAL_SMD
### STM32F103驱动TLV3501高速比较器的方法 对于STM32F103微控制器来说,要实现对TLV3501高速比较器的有效驱动,主要依赖于GPIO接口来连接并操作该比较器。具体而言: #### GPIO配置 TLV3501是一款单源供的低功耗、高精度比较器,其工作原理简单,即当正相输入端压高于反相输入端时输出高平;反之则输出低平。为了使能或禁用TLV3501的工作状态,可以通过设置STM32F103的一个通用I/O口(如PA0)作为控制信号线,用于向TLV3501发送启动/停止指令。 ```c // 初始化GPIOA, 设置PA0为推挽输出模式 __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); ``` #### 中断处理机制 考虑到实时性响应速度的要求,建议采用外部中断的方式监测TLV3501的状态变化。这样可以在检测到事件发生时立即触发相应的动作而无需轮询检查。这里可以选择EXTI Line 0对应着PA0引脚上的边沿触发事件。 ```c // 配置EXTI线路0 (关联至PA0),选择下降沿触发方式 SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI0_PA; // EXTI0映射到PA0上 EXTI->FTSR |= EXTI_FTSR_TR0; // 下降沿触发 NVIC_SetPriority(EXTI0_IRQn, 0); // 设定优先级 NVIC_EnableIRQ(EXTI0_IRQn); // 开启中断请求允许位 ``` #### 实现功能函数 定义两个简单的辅助函数`start_comparator()` `stop_comparator()`,分别用来开启关闭TLV3501的操作。同时还需要编写一个ISR(Interrupt Service Routine),以便在接收到由TLV3501产生的脉冲后执行特定的任务逻辑。 ```c void start_comparator(void){ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); } void stop_comparator(void){ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); } void EXTI0_IRQHandler(void){ if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0)!= RESET){ __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_0); // 清除标志位 /* 插入实际业务代码 */ } } ``` 上述方法展示了如何利用STM32F103系列MCU配合TLV3501完成基本的功能需求[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值