
开源协议
:GPL 3.0
描述
基于瑞萨R7FA2E1A7单片机能测电池内阻的LCR数字电桥
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滤波电路元器件衰减的比较大,由于衰减比较大造成信号比较小容易被干扰,而且后级需要高倍放大造成温飘比较大,但是 因为两路采集,实际这里温飘对最后读数影响不大。

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有两组开关,这个部分是参考开源电桥电路。

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

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

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

LCD显示屏还是采用以前买的COG12865,主控ST7567,当时1元多买的二手的,现在已经没货的,为了网友仿制方便留出了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清单


7、大赛LOGO验证





8、演示您的项目并录制成视频上传
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论