领券中心备货找料立推专区爆款推荐合作库存PLUS会员BOM配单PCB/FPC/SMT工业品面板定制

基于瑞萨单片机的LCR数字电桥

2026-06-16 15:43:43阅读量:490

为了给大家些创作灵感,今天带来第十届立创电赛二等奖作品#第十届立创电赛#基于瑞萨单片机的LCR数字电桥案例分享!本文作者:@eda_kxijzpvac,禁止商用,未经许可禁止转载。

第十一届立创电赛正在进行中心,点击图片报名。

 

 

1、项目功能介绍


作为一个业余电子爱好者,平时有测电池内阻和电子元器件阻抗的需求,两个仪表来回切换比较麻烦,很多开源电桥把隔直电容和保护电路都给砍掉了,所以没法直接测电池内阻,外接隔直电容不是很方便,于是自己设计了一个能测电池内阻的LCR数字电桥,同时验证下自己的想法,采用两路采集,多ADC口采样增加读数分辨率。

也因为我是业余爱好者,这个项目对我有难度,所以最后做的不怎么好用,也就是勉强能用级别。

测量频率1KHZ、10KHZ、100HZ

阻抗测量范围1毫欧到10兆欧,可以测电池内阻、串联电容、串联电感、串联电阻、串联电抗、D值、Q值、角度、阻抗的幅度

由于频率多量程宽有的档位可能存在BUG,自动量程也有一些问题,有的时候无法切换到正确档位。

 

2、项目属性

项目首次公开,部分电路参考开源电桥,程序是原创的。

 

3、开源协议


GPL3.0开源协议,软硬件开源。

 

4、硬件部分


电源部分采用18650供电,DW01保护,4056充电,SW1为整机电源开关,U4转3.3V,夹子短路时最大功耗不超40毫安。

 

硬件部分

 

采用瑞萨R7FA2E1A7单片机作为主控,32MHZ晶振,手册最高为20MHZ,但是想验证自己想法采样4个ADC口采集,采样率50KHZ,采集到的数据都要进行DFT运算,计算量比较大,计算DFT频率是70K左右,刚好能出中断,于是超了下频。

引脚功能:P400输出PWM,P409、P408通过模拟开关切换PWM滤波电路作为激励源。 P407档位切换33.3欧模拟开关,因为74HC4052模拟开关导通电阻比较大,无法满足最低档位要求,所以在33.3欧档位并联了一片3157模拟开关降低导通电阻。

P915、P914是档位切换74HC4052的控制端口,用来切换不同档位的电阻,P206 P207被测元器件放大倍数开关,每个放大10倍,P208、P914是内部V/I电路采样电阻放大开关,每个也是放大10倍。

P300和P108是SWD口,JLINK V9需要连接4根线,3.3、GND、SWDIO、SWCLK。 P000、P001是V/I路电阻采样口,P013、P014是被测元器件采样口,采用双口采集验证下自己提高分辨率的想法。

ADC直接用AVCC和AVSS作为参考,而且直接和单片机数字电源想连,这样可能会增加ADC读数跳动。 P500、P101、P102、P103是LCD液晶驱动口。P109、P110、P111、P112是四个按键。

 

原理图

 

PWM滤波电路直接采用RC滤波,RC滤波后为正弦波,降低单片机程序编写难度,两个3157模拟开关切换三路RC滤波器作为激励源,为了减少RC滤波电路元器件衰减的比较大,由于衰减比较大造成信号比较小容易被干扰,而且后级需要高倍放大造成温飘比较大,但是 因为两路采集,实际这里温飘对最后读数影响不大。

 

PWM

 

RC滤波后C1隔直后抬高1.66V进入U20.2运放放大,这里采用高倍放大,放大倍数低了会引起高频振荡。

运放输出经过33.3欧电阻和50UF电容到RF1输出,D1 D5保护。 RF1、RF2接开尔文夹走电流,U20.1反相放大,74HC4052切换放大倍数,分辨有4个档位,33.3欧、333欧、3.33千欧、33.3千欧,最低档位由于74HC4052导通电阻大于是并联了3157模拟开关用来降低电阻。

TL432提供1.66V参考地电压,和D2、D3、C33、C34组成输入保护电路,四个量程电阻也采用四线测量法,正好74HC4052有两组开关,这个部分是参考开源电桥电路。

 

RC滤波

 

下面为两路放大电路,分别采集被测电阻和档位切换电阻上的电压进行放大,每路设置两个放大倍数,组成10倍100倍连个放大档位。因为两路放大读数温飘影响比较明显,不同时间测一个电阻相差比较大,不如单路来回切换稳定。

 

放大电路

 

参考电阻上或者被测电阻上电压经过100K电阻和100NF电容隔直后,通过1M电阻抬高1.66v,SS8050代替二极管保护防止烧运放,进入运算放大器跟随输出,U23.1差分放大。

 

差分电路

 

差分放大后进入两个串联的10倍放大电路,先衰减后放大,然后进入单片机ADC,距离ADC满度留的余量比较大,造成显示位数比较多的时候跳动大。

 

ADC

 

LCD显示屏还是采用以前买的COG12865,主控ST7567,当时1元多买的二手的,现在已经没货的,为了网友仿制方便留出了LCD驱动口的排针,方便画个转接板。

 

LCD屏

 

焊接电路先焊好电源部分测量3.3V、1.66V没问题再焊模拟电路信号部分,焊好测量没有短路再焊单片机,3157模拟开关烙铁焊接容易虚焊。焊接完电路切换到30欧档,夹住33.3欧电阻,看屏幕V和I 差不多一样大表示电路放大部分正常。

 

5、软件部分


源代码和固件文件夹里面,1.S是源代码,1.bin是固件就编译好了。

软件工程保存到本地  git clone git@gitee.com:yjmwxwx1/R7FA2E1A7.git

欢迎大家提供BUG,只要提供我就会想办法修复并更新

编译器可以到ARM官方下载 https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

也可以下载gnu binutils自己编译

输入make就能编译成固件了

 

 

软件方案为了验证下自己想法,采用4个ADC口采样,没有对比也不知道效果怎么样,分辨率能大一些。

这次没用DTC传输采样数据,而是用ADC直接中断来采样和处理数据,采样率50KHZ,三个频率都是50KHZ采样率,100HZ档位速度太慢,最开始只调的1KHZ,100HZ参数没细调不好用。进入ADC中断需要计算DFT,然后得到被测电阻和参考电阻的实部和虚部,然后4个参数用下面方法计算出阻抗。

 

阻抗计算方法

 

CORDIC算法详细介绍可以到附件下载

1、上臂(实部、虚部)和下臂(实部、虚部分)分别用CORDIC算法旋转到0度同时记录下旋转的角度。

2、用上臂角度减去下臂角度,角度差就是被测元器件阻抗的角度,超过180度要做处理。

3、因为旋转到了0度,直接用上臂实部乘下臂参考电阻阻值,再除下臂实部得到阻抗的幅度 。

4、 算出角度差对应的COS和SIN

5、用阻抗的幅度乘上面计算的COS和SIN就得到串联电阻和电抗了。

电容电感计算方法,这个网页版程序可以点击不同参数互相换算,比较适合验证自己做的LCR表,文件见附件

 

阻抗计算

 

阻抗计算

 

各种参数大计算方法

参数计算

 

参数计算

 

校准算法需要逐个频率逐个档位校准开路、短路、幅度、角度,为了程序容易编写用的手动校准方法,所以校准起来比较麻烦,需要很大耐心,档位加减的两个按键一块按进入校准程序,校准菜单通过档位加减按键切换。

两个按键一块按进入校准参数项目,开路清零需要把LCD屏幕I= 后面调到跳动的1,短路清零需要把V= 后面读数调到跳动的1,幅度校准需要把主参数菜单调到Z的绝对值显示,然后再进入幅度校准,夹住本档位能测的已知电阻,把读数调到一样就可以了。

角度校准需要把主参数调到电容或者电阻,附参数调到角度显示,然后进入角度校准,夹住已知角度本档位能测的电阻或者电容,把角度参数调到一样就可以了。 要保存到FLASH就需要按住附参数切换按键,然后再按下主参数切换按键,屏幕出现校准完成就保存到FLASH了,这样校准参数就不会关机丢失了。

想测准毫欧级电容只做幅度校准还不行,还要结合短路清零,上面校准完后夹住1毫欧电阻,通过短路校准把显示数字调到1毫欧。

当前档位自动量程不怎么好用,可以按住档位加切换到手动模式,手动模式屏幕上A会消失,屏幕上有A表示当前是自动模式。

 

6、BOM清单

 

BOM清单
 

7、大赛LOGO验证

基于瑞萨R7FA2E1A7单片机能测电池内阻的LCR数字电桥

 

基于瑞萨R7FA2E1A7单片机能测电池内阻的LCR数字电桥

 

标签图标
RENESAS(瑞萨)/IDT
上一篇:我做了个BB机……下一篇:没有了
广告图片