基于CW32F030单片机的便携式多功能测试笔

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

一、产品背景

在日常的硬件调试工作中,我们最常使用的仪器仪表可能就是万用表了,虽然万用表号称“万用”,但大部分时候,我们需要使用到的功能无非是电压测量和通断测量。

作为调试的“得力干将”,万用表有时候也会存在一些缺点和局限性,比如:体积较大不便于携带、无法直接反应逻辑电平情况而需要自己判断、不同型号万用表的通断档位阈值电阻不同等等,而最令人头大的,莫过于万用表的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,充电策略较为激进。

3pNZNiqubJO0YVTgvUaeRfsWixjOoYKNOGqwdWWG.png

1.2 系统上电与断电控制逻辑

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

4WadNfxZuqcrMGkjWp3ON2eLJQvlj4KOR1ByVVsn.png

在上图中,左侧是电源控制部分,中键是电量采集部分,右侧是五向摇杆开关,其中的中键是开机按键。

注意事项:在早期的版本中我犯了一个错误,我将电量检测电路设计在了开机控制电路之前(Q1之前),因此会在待机情况下造成电池电量的浪费,一开始我觉得这个漏电流很小无伤大雅,因为锂电池满电4.2V时的理论计算值也只有210μA,但我发现因为该电路连接到了后级的单片机电路,因此会通过单片机漏电,从而造成后级系统一直带有一个0.7V的低压。

下面我们结合电路图对开机时序进行分析:

qC9hdloAxT1eyQU4yKGzVihIoquxoAQvsd4ELmlF.png

① 五向开关的中键被按下,并保持按下状态

② 被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孔洞进行复位操作。

ZyBhWHdppVRHTQc49uZR99lsV9DYoPRCwP64h848.png

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

ZjkMVi4u8bkoM4FQF86xy0XhvJsX1guTYkI3KHrB.png

在原理图绘制时,我的习惯是把io使用到的功能直接标注在MCU引脚边上(放置需要连接的网络标识符),同时使用中文进行辅助说明,这样可以在分配时防止冲突并快速调整引脚分配,也可以编程时快速找到所用引脚。

当然也有人习惯把分配的引脚放置在对应图块边上,则单片机只引出io对应的网络,个人认为这种分配方法更适合在pin数较多的单片机上使用(比如需要使用RGB、EXMC的时候,他们的引脚位置往往不是连续的,在对应图块边上标注io可以更好的进行引脚管理。

两种标注方法各有利弊,自行选择即可。

2.2 用户操作输入

本项目的用户操作部分使用了一颗五向摇杆开关,可以理解等效为五颗普通按键开关,编程起来也是作为普通按键即可。

不同方向的摇杆开关对应的功能会在程序部分进行说明,此处不做赘述。

hMhhxkWjwJKd4ZfSOwQeEzrEXl9fS0F1QIjwM32L.png

和传统按键一样采用了0.1μF消抖电容(图个心理安慰)

2.3 显示屏

本项目采用了一块0.96寸TFT显示屏,显示屏分辨率80*160,采用ST7735显示驱动芯片,通过FPC与PCB焊接进行连接,通过SPI接口进行通信。

mTnYuCAnvx0yVmWmjjaZNu94920zhC4kDEACmkuD.png

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

显示屏的使用效果如上图所示。

2.4 其他人机交互

jjuXY7p5SLcgeMYdy1UFg5aQavHntzrksEALgFEY.png

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯动大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值