DIY简易LCR终于算是能用了,真不容易啊
本帖最后由 scu319hy 于 2024-8-9 03:40 编辑我DIY的简易LCR折腾了几个月,板子都打了10版,外壳搞了了4版
虽然还没达到我理想中的状态,但总算是能用了
如下:
目前实现的功能如下:
支持10Hz/100Hz/1KHz/10KHz/100KHz共计5个频率档位
(理论上可以支持10Hz~500KHz的任意测试频率)
支持档位校准和相位校准功能
目前只支持自动档位选择
支持开路/短路清零功能
支持四种模型选择:
1. 自动根据接入的待测器件/档位,自动选择适当的模型。
对于电容,尽可能展示串联模型的结果(方便查看ESR)。测试频率较低时,如果串联模型的结果与并联模型的结果相差较大,则展示精度更高的并联模型计算结果。
对于电感,固定展示串联模型的结果。
对于电阻,当其串/并联电容较明显时,展示并联模型计算结果。当其串/并联电感较明显时,展示串联模型计算结果。
2. 扩展同时展示串/并联模型的计算结果。内容比较多,字体较小,需要用户自己选择适当的结果,有时候会看晕头。
3. 串联只展示串联模型计算的结果
4. 并联只展示并联模型的计算结果
支持测量速度选择
支持0.5v/1v两种测试电平,0.5v/1v两种测量偏置(选择适当的测量电平和偏置,可以测量二极管的结电容)
支持自动充电管理。电量低到一定程度才会进行充电,充满后自动停止。
外壳是3D打印的,我用Solidworks设计的模型,花了一个星期,反复调整/打印/测试
内部结构如下:
为减少干扰,外壳内部用导电铜漆喷了一层,电阻大概有2~5欧,屏蔽效果还不错
原本我是用铝箔铺了一层屏蔽层,但它不能贴合外壳,只要有轻微的形变就会导致分布参数变化,进而体现在测量结果上
自己做了一堆标准件和测试件
使用了1R, 10R, 100R, 1K, 10K, 100K, 1M共计7种参考电阻,需要分别校准。
标准件用的是立创上采购的10ppm 0.1%精度电阻
校准后测量同样是10ppm 0.1%精度的测试件,如下:
可以看到,1.5K/10M电阻测量结果都在其精度范围以内(受分布参数影响,10M电阻的误差会大些)。
这证明DIY LCR的测量电阻的精度是优于0.1%的
测量1uF高压CBB电容
测量干簧管的分布电容
测量一段铜线
测量大电阻
当待测电阻较大时(>100M欧),测量精度会下降
完整KiCAD工程如下:
版本A,
此版本使用模拟开关(74HC4051)切换测量信号回路。
模拟开关的分布参数/漏电会对结果有比较大的影响
(之前我有发帖请教过关于LCR的相关问题,最后发现这个模拟开关是罪魁祸首)
在低阻测量(<50毫欧)和高阻测量(>2M欧)时会有较大的误差
>10M欧时,误差会超过5%
版本B,
此版本使用干簧管切换测量信号回路。这个方案的测量精度比较高(前面的示例是此版本)。
固件A/B版本通用:
关于PGA中的运放:
版本A因为精度较低,对运放没有太多要求,只要是5V的轨到轨运放即可。
但应该尽可能选用Vio低,输入偏置电流低的运放。GBW不要过高,1M即可满足要求。
版本B需要使用Vio非常低的精密零飘移运放,如AD8552
运放本身的Vio在低阻/高阻测量时会引起明显(>5%)的误差
我使用国产的GS8552效果很好,TAOBAO上大概1~2元一片,也不会有假货,推荐使用国产替代型号
注意:PGA有用于切换工作电压的跳线电阻,请注意不要同时连接3v和5v
另外:版本A中的放大比例控制信号上有用于隔离信号的电阻和去耦电容,是测试用的。电阻可以直接短接,电容可省略。
关于电阻的使用:
有条件的话,参考电阻和PGA电路中和比例电阻尽可能使用高精度,低温飘的电阻。
我的测试版本只使用了普通的1%精度电阻,校准后也可以获得比较好的测量精度。
充电电路中的的L1标注为10uH,建议使用4.7uH的功率贴片电感
在电路中,为了减少模拟开关的影响,使用了DIY的干簧管继电器
干簧管使用的是2x14mm的国产镀金脚干簧管,TAOBAO价0.6元
线圈使用0.08mm聚氨酯漆包线绕制,18米左右一个线圈,电阻约为60欧
测试吸合电流约为10mA。为保证工作稳定,电路中的工作电流约为15~20mA
关于PCB:
板子的两部分是画在一起的,打板回来后可以自己裁成两半。中间留有足够的间距
接口部分有走线,不裁开时所有信号都是连通的,方便直接测试
关于LCD:
LCD使用的是1.4寸ST7567 SPI接口128x64屏。是在TAOBAO上“老王电子数码DIY”买的,1.3元一片
也支持其它使用ST7567/UC1701/CH1115的SPI接口128x64屏
关于测量夹具:
板子上的夹具是由0.2mm的磷铜片制作。单片大小为20x20mm。
焊接时需要用其它夹具固定,保证两片铜片充分接触且有一定的夹持力。
最后,由于测量精度/灵敏度比较高,焊接后需要清洗干净板子,并充分干燥。
否则测量结果会非常诡异。
欢迎大家点评
补充内容 (2024-8-9 14:50):
补充说明,
原理图中3.3v稳压为AP131-33,可用其它同封装的器件如RT9193-33G替代
PGA中用的模拟开关未标注型号,其型号为SN74LVC1G3157,可用其它国产的3157代替,封装为SOT-363
几个按键为6x3.5mm的轻触开关
补充内容 (2024-9-12 00:08):
参考电阻和PGA比例电阻强烈建议使用低温飘电阻
最近测试的镊子版本LCR,由于使用了0.1% 25ppm的参考电阻和比例电阻
可以明显感觉到,反复开关机后,测量结果的漂移幅度小于之前用普通电阻的版本
补充内容 (2024-9-12 00:17):
注意:PGA上大小4p7的相位补偿电容(C50/C51)请不要焊接!!!
新版本固件无需通过它进行相位补偿 本帖最后由 scu319hy 于 2024-8-18 20:28 编辑
做了个隔离测量附件的验证原型,如下:
对测量精度有影响,但在适当的档位和测试频率下,精度还是非常高的
清零后测量1K的校准件,引入的误差小于0.1%
测量10nF的校准件,误差可忽略
测量10mΩ电阻,跳动大,但误差并不大(这个电阻精度不高,原本就是10.2mΩ的样子)。
但小于0.1Ω时必须要用10KHz测试,否则无法测量。
大概测试了一下,在阻抗100mΩ~10KΩ之间的测量精度都很高
因为漏电太大,测量100KΩ电阻时,误差有约5%,1MΩ有约20%的误差
为提高小电阻的测量稳定性,可以在测量电路中串一个0.1Ω的小电阻,
这样一来,不会因为测量电平太低而导致读数跳动。
通过短路清零也可以把这个电阻从结果中减掉,不影响读数
这样就可以测量1mΩ以下的电阻,只是有效位数要减少一位
通过这个附件可以实现在线测量,也可以直接用来测量电池的内阻,还可以用来手动增加偏压
理论上,任何LCR都可以通过这个附件实现隔离测量
原理图如下:
本帖最后由 scu319hy 于 2024-8-30 12:23 编辑
在立创上买了些高精度的电阻来验证LCR的极限精度,整体看上去还行。
50Ω, 0.05%, 10ppm。误差<0.02%,达标
300Ω, 0.02%, 10ppm。误差0.03%,超标
2kΩ, 0.02%, 10ppm。误差0.02%,勉强达标
15kΩ, 0.1%, 25ppm。误差0.007%,达标
20kΩ, 0.02%, 10ppm。误差0.025%,超标
7.5kΩ, 0.1%, 25ppm。误差0.027%,达标
4.7kΩ, 0.02%, 10ppm。误差0.043%,超标
4.99kΩ, 0.02%, 10ppm。误差0.04%,超标
200kΩ, 0.02%, 10ppm。误差0.02%,勉强达标
从上面数据可以看出,DUT和参考电阻相差越大,误差就越大
当DUT是参考电阻的一半左右时,误差达到最大
(逻辑上本不应该是这样,估计是电路设计的问题导致的)
当DUT和参考电阻的比值在0.7~2之间时,精度可以勉强达到0.02%
当DUT和参考电阻比较接近时,精度最高,优于0.01%
据此估计,在0.5Ω~2MΩ范围内,整体的精度可以达到0.05% 本帖最后由 scu319hy 于 2024-9-8 15:56 编辑
镊子初步完成,弄了个只有卖相的镊子头。设计了个4线测量的镊子头,但手工很难搞:L
因为镊子头的结构问题,接触电阻没法消除,测量小电阻是个问题
到10mΩ已经是极限了,加持力不同,电阻变化有几十mΩ
测量标准电阻
10Ω 1%
100Ω 0.1%
1KΩ 0.1%
10KΩ 0.1%
100KΩ 0.1%
1MΩ 0.1%
4.99KΩ 0.02%
200KΩ 0.02%
100MΩ 1%
电阻测量大体准确,感觉不比我多年未校准的VC86E差。
在DUT与参考电阻相近时,精度不错,可以达到0.05%的水平。整体约有0.5%
测量电容
100nF C0G 基本相位角误差比较大,测量C0G力不从心
10nF C0G
4.7nF C0G
1nF C0G 下相位角已经完全没有参考价值
20mF
1pF 误差已经非常大了,受镊子头结构影响, 分布电容会随着夹头距离变化数pF
电容的主参数准确度是比较高的,但损耗D只能测量到约0.002,CBB和C0G的测量误差较大,只能做参考
测量小电感
150nH已经是极限了
390nH
470nH
68uH
还未做屏蔽外壳,外界干扰影响比较大 本帖最后由 scu319hy 于 2024-9-20 01:29 编辑
镊子形态的miniLCR,最终版本。实在想不出优化方案了,就这样吧
0603版本
0402版本
(0402版本比0603版本小一圈,主要芯片无变化。多了一个实验用的电阻,可不焊接)
实验版本如下
http://www.crystalradio.cn/data/attachment/forum/202409/08/145921y6rebtaq9sab9toa.jpg
miniLCR大幅简化了电路
只使用了两个4运放,其中一个精密零漂移4运放(ad8554)配合MCU内置的运放组成了仪表放大器,另一个4运放用做激励/零点的缓冲
参考电阻减少到4个,使用一个双刀四掷模拟开关切换
MCU仍旧是stm32f303cb/c,ADC只使用单端输入
使用锂电池充放电芯片tp4552b,实现了充电和5v升压
供电只使用了一组3.3v
参考电阻和放大比例电阻使用0.1%精度 25ppm的电阻
为减少模拟开关的影响,测量电平只有50mV
整机最大工作电流约70mA,正常工作电流不到60mA
此版本没有使用DIY器件,成本大幅降低,也便于批量生产
精度有所下降,具体效果可参考 161楼
固件在此
补充内容 (2024-9-20 11:14):
屏幕是0.96寸15Pin焊接式单色OLED 我在这里买的 http://e.tb.cn/h.gJ9zdHASoUhHy0a?tk=Tclx37AjOyp
与此引脚兼容的有另一款1.09寸的,但我未验证过
模拟开关请使用5v版本的4052,比如tmux1309,rs2252
补充内容 (2024-9-20 12:02):
ADI的AD8554较贵,用国产替代品即可,我试过RS8554,GS8554
最便宜的COS8554已买未测,问题应该不大
用其它的5v零漂PRIO运放也可以
要求不高可以用一般的低失调电压PRIO运放,最不济用LMV324行 本帖最后由 scu319hy 于 2024-9-23 11:58 编辑
miniLCR最终版本的板子周末回来了
0402版本是1.6mm厚的PCB
0603版本是1.2mm厚的PCB(捷配一口气给发了11块)
0603版本很快就焊好了,0402折腾了2个多小时,眼睛都看花了
从上到下依次是第2版验证版,0603版本,0402版本
0603版本的镊子头是新做的。旧镊子头是纯手工做的,那四个螺丝孔钻得很费劲,而且有点歪。
为了做这个新的镊子头,专门把以前做的刨花板雕刻机重新搞好(折腾这个事花了大半天)。
机器虽然简陋,但钻孔还是比手工精准多了
手焊0402贴片还算是整齐,就是板子洗得不太干净
元件间似乎距大了点,还有进一步缩小的潜力
0402版本的精密运放使用了COS8554TRA,这是立创上最便宜的零漂移四运放,效果还不错
侧面装配图如下:
PCB板左侧那块看上去没啥用的部分是用来固定镊子弹片的,需要裁剪下来
为了做0402版本,又买了一堆0402的电阻电容,这玩意太便宜,只能以千为单位来买,否则都对不起它的运费
每次以为是薅了立创的羊毛,最后其实是被立创薅了羊毛:L
最终版做完,又有了新想法,我是继续改版呢?还是继续改版呢... 便携版 2024-10-29日固件在此
添加了USB串口支持,可以与上位机通信
改进了测试电平和偏置电压
镊子版 2024-10-29日固件在此
添加了USB串口支持,可以与上位机通信
上位机程序在这里
只有64位版本(暂时不花时间改32位版本了),理论上需要win7以上系统。
下面的图表目前只有Z值的曲线,其它功能暂时还没来得及做(没需求的话,我也懒得做了;P )
后面我会抽空补充交互协议的说明文档
可以同时支持 便携版(simpleLCR) 和 镊子版(miniLCR)
便携版现在支持0.1v, 0.5v, 1.0v测试电平, 偏置电压支持0.1v步进设置
镊子版的档位要少一些,也没有电平,偏置设置
USB串口通信对ADC读数有明显影响,上位机读数的稳定性会差一些。
镊子版受限于硬件设计,在使用USB供电时,读数稳定性较差。 便携版本2024-11-19日固件
镊子版本2024-11-19日固件
以上版本固件主要变更如下:
1. 修正过滤器计算范围超出导致读数跳动的问题
2. 添加看门狗逻辑,避免异常设备卡死
3. 添加开路测试及其配置开关
4. 添加恢复出厂设置功能
5. 其它BUG修正及功能优化
添加看门狗是为了避免异常导致设备卡死的问题。
(便携版本在充电时卡死可能会引起电池过充)
但偶尔看门狗会变疯狗把设备搞重启
我已经解决了一部分,不确定是否还有其它逻辑存在这个问题
如有发现,请尽可能记录较详细的操作步骤发给我
补充内容 (2024-11-19 22:39):
此便携版本固件有BUG,且没有自动清除旧的校准数据。
请更新 637楼版本 http://www.crystalradio.cn/forum.php?mod=redirect&goto=findpost&ptid=2150171&pid=26485286&fromuid=235871 绿城之鹰 发表于 2024-8-9 14:23
我现在懒得diy了,都是买成品.
成品的话,便宜的功能差,功能强大的价格贵
DIY的话,一般大家都会自我欺骗,只算物料成本,感觉很便宜。
追求的是个自娱自乐,精神胜利;P 本帖最后由 scu319hy 于 2024-8-12 17:49 编辑
李斵冰 发表于 2024-8-12 17:28
楼主的LCR非常好,可惜没有源码,当然在现在的网络环境下是无可厚非的。
干簧管继电器的连接有点迷惑, ...
感谢支持
对于懂原理的人来说,我的代码没有任何参考价值。分分钟就能写出来。
对于不懂的人来说,想看明白我的代码也难(因为是个DEMO项目,代码没有啥结构,很乱)
而且我也不想让别人把我的代码拿去交作业;P
版本B的继电器原本就是双刀单掷,要同时控制两个回路。
一个是信号源,一个是反馈/采样
这样画,你是不是就理解了?(结构示意,连线可能不对)
在版本A中,反馈/采样的回路是通过模拟开关控制的。 本帖最后由 scu319hy 于 2024-8-10 12:44 编辑
xiaosuo 发表于 2024-8-10 10:44
为什么电压变换就那么多电路形式呢?有tl431的,有IC的,也有运放加推挽的,不能统一吗?另外3.3v转1.65 ...
关于几个电源的设计有如下考虑:
一、因为要用锂电池供电,设计的电源范围是3.5v~4.2v。
二、5V需要升压。为了减少电源噪声,这里使用了电荷泵进行5V供电。
经过滤波,5V输出的波纹在2mVpp左右。但电荷泵对电源有比较大的污染,需要在电源处多并几个滤波电容。
主要是给运放,模拟开关供电
三、3.3v-MISC供电为了充分利用电源,选择用LDO从电源直接供电。
我使用的是100mA下压差小于0.3V的LDO,在小电流时压差还会更小。
可以保证当电池只有3.5V时依旧能正常工作。
MCU,LCD,继电器这类要求不高地方由它供电
四、ADC的3.3V参考电源要求要高一些。噪声和温漂要尽可能小。
最便宜的方案就是用TL431了。为了减少电源变化对它的影响,这部分供电是取自5V电源
经过测试,此部分电源的波纹小于1mVpp
五、1.65v是用做测试信号回路的0点。它是由3.3V参考电源分压得到,经由运放缓冲输出。
这个0点需要比较稳定,以减少对测量结果的影响。
再就是它要有输出和吸收电流的能力。
最后就是在部分场景下,通过它的电流可能会达到100mA
用非常大的电容也可以满足这些要求,但体积会很大
普通的运放本身显然很难满足这些要求
所以,我添加了推挽输出,又并了一堆小电容,以获得一个在各种场景下都比较稳定的0点。
这部分要求运放的动态范围比较大,输出电流也比较大,不能直接从3.3V参考电源取电。只能使用5V供电。 本帖最后由 量子隧道 于 2024-8-10 00:49 编辑
chanwah2000 发表于 2024-8-9 16:11
个人做的最难点 是没有更高级更精准的 仪器校准它,
那些仪器最便宜的都要几K,贵的要几W
可以想办法,否则世界顶尖大厂和实验室是怎么做出来最快的示波器,最准的表的?他们做之前世界上不存在这么准的东西,更没有更准的东西用来校准核对。 hww22 发表于 2025-1-8 23:13
是否开放200khz给盒桥?有需求。
改用彩色TFT,用内存屏幕缓冲,内存不够用。
Memory region Used SizeRegion Size%age Used
RAM: 31048 B 32 KB 94.75%
CCMRAM: 0 B 8 KB 0.00%
FLASH: 113992 B 128 KB 86.97%
MCU屏直刷的话,性能又会是另一个问题
高分辨率屏幕要用大字模,FLASH也吃紧
下图是LCD的接口定义,红框是代码里用到的相关方法
这是支持200KHz的固件,只是多了一组频率配置,未做仔细测试,不确定有什么样的问题。
以目前的方案来看,100KHz已经比较费劲了,测量结果的稳定性/精度比1KHz/10KHz差不少。200KHz只会更差
以下为粗略对比
22p 贴片
33n 铁硅铝环形电感
liozeng2020 发表于 2024-9-2 23:42
确实简化下分立元器件的制作比较好,用成品元器件,指标有保证
简化版主要是为了能缩小,能做成个镊子LCR
为此,减少了分立元件,没有使用任何DIY的元件,耗电也降低了不少
但在指标上有较大幅度的下降;P
主量程(100mΩ~10MΩ)精度大概在0.5%的样子,副参数的精度下降更多,100KHz的相位精度下降非常多
最大量程没有缩水,1mΩ~1GΩ都可以测量,<100mΩ或>10MΩ的测量精度差些,<50mΩ的测量受夹具结构影响很大
电容验证了10pF~20mF,基本都还靠谱。还未做屏蔽,更小的电容读数跳动太大。
电感验证了10nH~1mH,<100nH误差大,但还是能分辨出不同电感的区别。未测试大电感,预计测量20H没啥问题。
TAOBAO上那些镊子LCR的结构,10mΩ以下的变化就难以分辨了
我专门设计了个镊子头,可以测量低阻,但自己加工不出来
最近用PCB板验证了一下,这种结构可以分辨出1mΩ的变化,但PCB强度不行,不实用
等过一阵再完善一下就分享出来 yerufeng 发表于 2024-8-31 13:45
这个怎么没有类似AD9850的DDS信号发生器呀?
因为这个是纯软件方案,纯靠MCU生成测试信号,采样,计算 本帖最后由 scu319hy 于 2024-8-10 18:26 编辑
更新固件:
1. 添加了电量图标
2. 添加了低电压检测。电池电压低于3.55v时进入低压报警状态,电池电压低于3.45v自动关机
3. 添加了自动关机功能及相关设置。可以设置0~60分钟自动关机。如果长时间无动作(读数稳定,没有换档/换测量频率等操作)超时后自动关机
4. 修正了设置界面的一处BUG
你这也是不睡觉吗?
楼主花了不少心思!如果用彩屏会更好看些。 不错,挺高级的,精度如何。 产品开发,来之不易。 有时间,照着抄一板。软件都没安 喷导电层这个方法不错,俺手里的吉时利 2001 万用表里面的大个屏蔽罩就是塑料加涂层的。 支持楼主折腾,我也一直想自己DIY一个LCR表,但是一直没时间弄。
请教下楼主用的单片机是什么型号? 这个可以去参加今年的DIY大赛了。 lrain 发表于 2024-8-9 09:13
没有原理图?
人家完整的工程文件都给出来了,你说没有原理图? :L 我看版本B的图纸里标识的运放型号是LLMV358,不是GS8552,是不是图纸忘记修改了? 标准件的引脚有的宽有的窄,有什么讲究吗?