一、产品背景
在日常的硬件调试工作中,我们最常使用的仪器仪表可能就是万用表了,虽然万用表号称“万用”,但大部分时候,我们需要使用到的功能无非是电压测量和通断测量。
作为调试的“得力干将”,万用表有时候也会存在一些缺点和局限性,比如:体积较大不便于携带、无法直接反应逻辑电平情况而需要自己判断、不同型号万用表的通断档位阈值电阻不同等等,而最令人头大的,莫过于万用表的COM表笔通常需要接地,而pcb上可能没有直插孔位可以方便的固定笔尖,因此不得不用手辅助“黑表笔“,影响操作灵活性。
二、产品构思
对于这支测试笔,我对他的功能有以下期望:
1、电压测量+阈值判断,阈值电平可以根据需求自行设定满足不同逻辑电平的场景,并且保留“简易逻辑电平测试笔“好用的红绿灯提示功能;
2、通断测量,且阈值电阻可以根据需求调整
3、二极管测量,导通电压测量,并且点亮一颗二极管
4、PWM输出,方便在一些场景下提供一个已知量对系统进行测试,也可以对无源蜂鸣器等进行测试
5、PWM输入,可以对频率进行测量
6、直流输出,模拟出一个需要的直流电平进行测试
7、可以连接扩展板进行配合测量
同时,我也计划将本项目开源使更多的人用上他,或根据自己的需求进行改版再设计,因此我还额外注意了以下几点:
1、限制PCB长度在10cm以内,使大家可以在嘉立创“白嫖”PCB
2、阻容元器件均使用0603封装,LED使用0805封装,便于自己制作时进行焊接
3、项目会尽量控制成本
三、电路模块设计
我把整体分为了五个部分:
模拟前端
电源与电池管理
单片机及外设
显示屏
人机交互(不包括显示屏的其他交互)
根据模块化的设计思路,我们可以在画电路图时更加有条理,也可以在进行PCBLayout时将布局按照模块进行大致区分,以便于进行走线等操作。
本项目的电路模块设计是一种很常见的模数混合电路的设计,可以适用于许多类似的项目。
在电池管理、电源、单片机等电路模块中,本项目会尽量采用标准化设计,提升项目电路图可阅读性与可继承(复制)性。
四、具体模块设计
我们根据需求对每个部分进行细化设计,来实现既定目标。
在下面,将会结合电路图和PCB对我的设计和设计思路进行详细的说明。
1、电源与电池管理
1.1 充放电管理
在充电ic部分我选择了常用的TP4057作为主控,电源输入采用了最常见的Type-C接口,虽然在本项目中实用6P接口就已经足够,但考虑到项目扩展性,因此选择了16P接口,并借用了Type-C接口中的SBU1、SBU2引脚进行扩展板连接,之所以没有使用D+D-作为扩展线路,是因为考虑到设备的输出信号可能使得充电器误判,从而发出错误电压造成危险,这在设计中是需要考虑到的。

在电路图中,可以看见Type-C接口中的CC1、CC2接了5.1K的对地下拉电阻,这是为了在使用CC线时使充电器准确识别设备,如果使用AC线则可以不焊接R2、R3电阻。
TP4057充放电芯片的主要参数可以参考下图,在我的设计中PROG可编程恒流充电电流设置端的设置电阻为2K,充电策略较为激进。

1.2 系统上电与断电控制逻辑
系统上电逻辑较为复杂,但可以根据时序帮助理解。

在上图中,左侧是电源控制部分,中键是电量采集部分,右侧是五向摇杆开关,其中的中键是开机按键。
注意事项:在早期的版本中我犯了一个错误,我将电量检测电路设计在了开机控制电路之前(Q1之前),因此会在待机情况下造成电池电量的浪费,一开始我觉得这个漏电流很小无伤大雅,因为锂电池满电4.2V时的理论计算值也只有210μA,但我发现因为该电路连接到了后级的单片机电路,因此会通过单片机漏电,从而造成后级系统一直带有一个0.7V的低压。
下面我们结合电路图对开机时序进行分析:

① 五向开关的中键被按下,并保持按下状态
② 被BAT+电池电压拉高的PW_ON网络通过D1对地放电
③ MOS管AO3401(PMOS)栅极被拉低,Ug<Us
④ MOS管Q1导通,电池输出电压到LDO芯片XC6206
⑤ XC6206输出3.3V电压,单片机得电,KEY1网络被拉高
⑥ 由于按键保持按下,KEY1网络被拉低,单片机获得按键按下信号
⑦ 单片机计算延时,到达阈值时间后,控制PW_CT(PF7)输出高电平
(如果延时时间未到就松手,系统断电,就不会进入后面的时序)
⑧ 三极管S8050导通,保持AO3401栅极拉低
⑨ PW_CT持续输出高电平,三极管保持导通,系统保持得电,开机时序完成
理解了上电时序和逻辑,那就会发现关机的断电逻辑很简单:符合关机条件(无论是按键操作还是软件控制),程序控制PW_CT引脚(PF7)转为输出低电平, Q1不再导通,AO3401栅极被R7拉高,MOS管也不再导通,系统完成断电。
2、单片机及外设等
2.1 CW32单片机核心系统
标准的单片机核心系统配置,其中因为本项目不需要用到高精度时钟和低速晶振进行长时间计时,因此则省略这部分电路(这边画了,但是设置为不需要转入PCB、不导入BOM,主要是为了别的项目在使用时可以直接复制使用,主打一个CV工程师。
本项目不使用bootloader烧录,因此BOOT引脚直接拉低(标准画法可以参考被注释的部分,本项目的PCB面积较为紧张,就直接接地了)。SWD接口为PA13、PA14,本项目中通过1.0间距的排针引出,不过在实际使用中不需要焊接排针,只需要使用探针(项目工程里有探针的转接板)顶住接口就可以进行下载。排针引出接口包括SWD、RST、MCUVCC等,方便进行调试(PCB上的复位按键不能SMT焊接,因为贴片焊盘和排针直插焊盘复用,回流焊会漏锡造成虚焊甚至短路!复位按键的设计是为了在烧录完成后,确定不会再烧录的情况下焊接,既可以挡住排针的孔(没错,我有强迫症),也可以当作复位按键使用(仿佛说了一句废话),即使不焊接也可以使用镊子等金属物品短接RST和GND孔洞进行复位操作。

在io的配置方面,首先根据需求及单片机引脚功能进行io分配,优先分配需要使用到专用功能的引脚,比如ADC、SPI、TIMER、串口等,再根据布局布线进行优化调整。

在原理图绘制时,我的习惯是把io使用到的功能直接标注在MCU引脚边上(放置需要连接的网络标识符),同时使用中文进行辅助说明,这样可以在分配时防止冲突并快速调整引脚分配,也可以编程时快速找到所用引脚。
当然也有人习惯把分配的引脚放置在对应图块边上,则单片机只引出io对应的网络,个人认为这种分配方法更适合在pin数较多的单片机上使用(比如需要使用RGB、EXMC的时候,他们的引脚位置往往不是连续的,在对应图块边上标注io可以更好的进行引脚管理。
两种标注方法各有利弊,自行选择即可。

2.2 用户操作输入
本项目的用户操作部分使用了一颗五向摇杆开关,可以理解等效为五颗普通按键开关,编程起来也是作为普通按键即可。
不同方向的摇杆开关对应的功能会在程序部分进行说明,此处不做赘述。

和传统按键一样采用了0.1μF消抖电容(图个心理安慰)
2.3 显示屏
本项目采用了一块0.96寸TFT显示屏,显示屏分辨率80*160,采用ST7735显示驱动芯片,通过FPC与PCB焊接进行连接,通过SPI接口进行通信。

在上方电路图中,R18为背光限流电阻,可以通过单片机控制BLK网络对显示屏背光进行控制,也可以通过程序控制进行PWM调光。

显示屏的使用效果如上图所示。
2.4 其他人机交互

如上图所示,多功能测试笔有一红一绿两颗LED用于电平指示,其中绿色用来指示低电平、红色

本文介绍了一款多功能测试笔的设计与测试。该测试笔具备电压测量、通断测量等多种功能,采用模块化设计,包含模拟前端、电源管理等部分。文中详细阐述了电路模块设计、硬件焊接组装、烧录方法,还进行了软硬件联调及多种模式测试,最后总结了硬件设计并提及软件部分。
最低0.47元/天 解锁文章
588

被折叠的 条评论
为什么被折叠?



