矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: xjw01

0.3%精度LCR数字电桥

  [复制链接]
     
发表于 2012-12-22 07:58:33 | 显示全部楼层
gyp2000 发表于 2012-12-22 07:24
采用640倍过采样。

10倍过采样用于扩大有效字 1024字扩大到10240字。

支持一下,许老师的电桥在各位的补充下,越来越好了。
回复 支持 反对

使用道具 举报

发表于 2012-12-22 22:02:44 | 显示全部楼层
xjw01 发表于 2012-12-16 17:33
holts坛友说,stm32是12bit的单片机,价格与STC一样,建议我使用stm32F0xx制作。
  于是,我就上淘宝买了 ...

许老师,用贴片元件对性能有影响吗?我要是重新画贴片的PCB,需要注意哪些问题?
回复 支持 反对

使用道具 举报

     
发表于 2012-12-22 22:13:00 | 显示全部楼层
请教一下大各位:我的板子其它没有问题,只是7805发热过大,不知正不正常?谢谢。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-12-23 07:10:41 | 显示全部楼层
3944656 发表于 2012-12-22 22:02
许老师,用贴片元件对性能有影响吗?我要是重新画贴片的PCB,需要注意哪些问题?

有影响。但影响不是非常大。
电容有吸附效应,直流放大部分,会影响线性度。高压CBB电容最好,对线性度没有影响。
因为采用了高密度档位,所以,即使吸附效应影响线性度,但误差还是可以容忍。

万用表使用双斜积分,本LCR使用“滤波”,滤波与积分,数学本质差差无几。吸会效应大,时序切换,电压时要数秒钟才能得到终值。用CBB,则瞬间得到终值。


电容有初始精度,如果精度过低,可能造成输出值与设计值相差过多。
回复 支持 反对

使用道具 举报

     
发表于 2012-12-23 09:24:21 | 显示全部楼层
许老师,我找了个24M的有源晶振,如果通用怎么改程序?谢谢!
回复 支持 反对

使用道具 举报

发表于 2012-12-23 10:08:30 | 显示全部楼层
有没有 2004 版本的程序呢
回复 支持 反对

使用道具 举报

     
发表于 2012-12-23 13:43:08 | 显示全部楼层
zgh.898 发表于 2012-12-23 10:08
有没有 2004 版本的程序呢

2004的有啊,V3.0全自动的。
回复 支持 反对

使用道具 举报

     
发表于 2012-12-25 07:42:45 | 显示全部楼层
gyp2000 发表于 2012-12-25 02:26
浮点运算效率太低。

现在改成整数、小数部分转整数, 分开存储。

试试看            
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-12-25 09:02:38 | 显示全部楼层
本帖最后由 xjw01 于 2012-12-25 09:17 编辑

stm32版的LCR,搞了好几天了。
这两天,重新分析了DMA时间上的误差对LCR的影响,发现,这种误差对LCR可以忽略,因为,他只是造成相位的小量偏移。适当修改程序,可以使这种偏移具有可重复性,是可控的。
而我实测得到的相位误差,比STC版本的要大了两倍以上,我百思不得解。
于是,我怀疑ADC有问题,我就对ADC高密度扫描测试,果然发现问是。STM32表面上是12bit的ADC,实际上不是这么回事,他也是10bit的ADC,是厂家故意吹成12bit
我的测试样片stm32C8的ADC,只有95%扫描点的积分非线性误差可以达到+-0.5LSB的精度,有2%误差高达+5LSB,还有1%达+10LSB,还有1%高达15LSB以上。
这样的ADC,用在LCR上,仅能当做8于9bit的ADC使用。除非程序上避开ADC采样的误差点。

最初,我还以为10LSB误差是不可能的,只好在误差点上的步进电压使用VC86E复测,VC86E测值表明,外施加的步进电压精准无误,是stm32的ADC自己误差了10LSB以上

网上,疯传STC是山寨,是多么的烂,AVR、STM32是多棒。我很早就怀疑,这是商家故意诋毁。
如今测试STM32的ADC,这才明白,原来标称的12bitADC,还不如10bit的ADC
STM32连一个教学手册都写不好,也难怪它的ADC质量做不好。必竞,精密型ADC不见得是高科技,是要用心制作才能做好的。就象编写教学手册一样,要用心写,才能写得好。我相信,90%以上的爱好者是看不懂得STM32的参考手山里面在讲什么,基本上只能在复制例程,然后修改成所需要的代码。
回复 支持 反对

使用道具 举报

     
发表于 2012-12-25 09:50:03 | 显示全部楼层
xjw01 发表于 2012-12-25 09:02
stm32版的LCR,搞了好几天了。
这两天,重新分析了DMA时间上的误差对LCR的影响,发现,这种误差对LCR可以忽 ...

工作台附近是否有干扰源?
比如你那个联想开关电源
回复 支持 反对

使用道具 举报

     
发表于 2012-12-25 09:55:27 | 显示全部楼层
xjw01 发表于 2012-12-25 09:02
stm32版的LCR,搞了好几天了。
这两天,重新分析了DMA时间上的误差对LCR的影响,发现,这种误差对LCR可以忽 ...

许老师做事蛮认真的,向你学习。不过我提醒一下,因为STM32属于高频CPU,ADC布局有很多讲究,另外最好使用带参考源管脚的MCU,这样精度高,电源需要处理,信号阻抗要匹配。我的一个同事他说他测试过,STM32能达到11位,过采样可以达到12位,用的34401测的。我自己没有测过,仅供参考。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-12-25 11:38:41 | 显示全部楼层
本帖最后由 xjw01 于 2012-12-25 11:45 编辑

我没有采用外置基准,是单片机也不支持。
它是采用VDD做为基准的。
为了解决漂移带来调试的误差,我采用stm32自生生成PWM,滤波成直流电压,用运放跟随后送入ADC自检。这样,信号源与AD就采用了同一个基准,基准不漂移问题就可以忽略了。
stm32生成PWM直流,线性度极高(相对于VDD),可以达到5位半以上的级别,四位半的表已经验证不了它的线性度了。
验证线性度时,是0.8秒左右完成4个点验证。输入VDD*100/3600电压,再输入VDD*3500/3600电压,这样就取得头尾两点的的AD读值。这两点连成直线,那么其它测试点如果落在这条直线上,说明线性度良好。因为,在0.8秒内完成6点测试(头尾两点加4个被测点),时间短,温漂可以忽略。
我通过按键翻页,连续测试1500多个点。大约每间隔200至300点左右,ADC就会异常一下,会连续十几个点误差非常大

这种误差是有可重复性。比如,我测试时,序号为238、43几、900(具体数值忘了),这几个起点开始,连续10个点都会严重问题。关机后重测,还是那几个点出问题。

测量它的非线性误差,要高密度测量,才能发现问题。
回复 支持 反对

使用道具 举报

     
发表于 2012-12-25 13:28:45 | 显示全部楼层
你可以换一种测试方法,直接给几个直流进去,STM32在采集时不做其他工作,试试。或是将STM32时钟频率降频到1几M测试看看效果。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-12-25 20:26:20 | 显示全部楼层
本帖最后由 xjw01 于 2012-12-25 20:29 编辑

我设计白菜电桥。所以不考虑外部ADC
现在,常规精度的、简洁可靠的电桥,它们使用可编程模、数器件。这些芯片都很贵。精度一般,厂标0.3%左右,一般被用做手持表,很贵。
传统方案的成品台表还再生产。有0.3%的,有0.1%的,也有0.05%或0.01%的。要得到优于0.1%的,估计还得使用您所述的“外置ADC”方案。如果使用外置ADC,那就干脆连同乘法器、DDS,都使用外置,直接DIY 0.1%以上的电桥。这样一来,成本高了,想DIY的人也就少了。

我现在试图制作的,是利用一块单片机解决核心问题。就象使用可编器件的方案那样,一个核心片子解决问题。虽然单片机有些力不从心,那就把精度指标做低一些。
正在找一块合适的单片机,制作0.3%的10kHz或100kHz的电桥。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2012-12-25 20:32:19 | 显示全部楼层
制作L、C、R,我是从高频往低频做,以前做Q表,总是与几兆或几十兆频率打交道,后来不知为怎么,频率越做越低,做到了100Hz。
我正想回归高频段。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-5-20 20:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表