打印

基于PIC16F76及MCP3553的高精度测量仪器(详细设计过程)

[复制链接]
楼主: 兰天白云
手机看帖
扫描二维码
随时随地手机跟帖
21
兰天白云|  楼主 | 2007-11-21 09:23 | 只看该作者 回帖奖励 |倒序浏览

回复

回:abc2001
精度0.001度,是做绝对的,否则也用不着省计量局和国家计量局了
回:emicro
这个电阻不是金属膜的,也不用色环表示的(不是贴片的),如果向美国购买,还地证明是非军事用途(我觉地是废话),他们最好的电阻是0.01%,1PPM的,要定货,很麻烦,所以只好降低要求

使用特权

评论回复
22
兰天白云|  楼主 | 2007-11-21 09:41 | 只看该作者

信号调理(续4),放大电路

放大部分本想图个方便用仪表放大器的
这里先申明AD的基准电压为2.5V

因为V1-V2=0.05~0.069255V,所以设置A=36倍
则V0=1.8~2.5V,零位从1.8V起,太浪费AD的资源了,况且这样做就达不到设计要求了

注:MCP3553是22位的AD,实际使用能做到20位已很困难(本人只能做到20位,每秒采样3次)

看样子,直接用差分放大是解决不了问题的,得想其他办法

使用特权

评论回复
23
HWM| | 2007-11-21 09:55 | 只看该作者

学习~~ 接受再教育~~~~

使用特权

评论回复
24
兰天白云|  楼主 | 2007-11-21 10:44 | 只看该作者

HWM:不要这么说哦,我无地自容啊

使用特权

评论回复
25
兰天白云|  楼主 | 2007-11-21 11:26 | 只看该作者

信号调理(续5),放大电路实际电路

为了充分利用AD的带宽,要把放大后的电压调整到0~2.5V
1:先减掉1.8V
2:然后把2.5-1.8=0.7V涨宽到2.5V
在这种设计时,宁用运放也不用电阻(运放比电阻便宜,运放比电阻好找)
实际电路如下图:
为了获得1.8V的基准电压,花了我2个电阻和一个运放

使用特权

评论回复
26
emicro| | 2007-11-21 11:28 | 只看该作者

re

我没说它是金属膜的,也没说它是色环表示的啊。我说的是金属箔电阻,高精度的大都是这种,估计你当成金属膜了。你的2ppm是什么温度范围内的指标?-55 ℃ --125 ℃?-45 ℃ --85 ℃?0 ℃ --60 ℃?温度范围不同标称可大不一样啊,我前面提到的是-45 ℃ --85 ℃内5ppm,如果是0 ℃ --60 ℃那就成了2ppm了,白云你确定一下,如果是-45 ℃ --85 ℃内2ppm又不到10元我很感兴趣啊。

使用特权

评论回复
27
兰天白云|  楼主 | 2007-11-21 11:56 | 只看该作者

是0 ℃ --60 ℃的,令你失望了

使用特权

评论回复
28
emicro| | 2007-11-21 12:47 | 只看该作者

hehe

没什么,有空继续啊。仪表放大器是用外部电阻设置放大倍数的吗?可以考虑固定放大倍数的仪表运放。

使用特权

评论回复
29
兰天白云|  楼主 | 2007-11-21 14:44 | 只看该作者

谢谢emicro的建议

仪表放大器,现在用的是外部电阻设置放大倍数,估计固定放大倍数的仪表运放会更好
接下来要弄AD了,基准电压前面说了,是2.5V的,它同样来自LM399分压
以下是MCP3553的资料,感觉用在这里怕怕的
也找过很多AD,ADI公司的不错,特别是那些24位的AD,但速度快,导致价格高
我只要3次/秒就够了,所以选了这款,22元/片

使用特权

评论回复
30
兰天白云|  楼主 | 2007-11-21 14:50 | 只看该作者

居然没人批评,晕

使用特权

评论回复
31
xwj| | 2007-11-21 14:59 | 只看该作者

嘿嘿嘿...

你怕没人批评吗?

俺是先引蛇出洞,等你发完了,再一次性拍得你永不翻身...

先做好心理准备吧...

使用特权

评论回复
32
兰天白云|  楼主 | 2007-11-21 15:11 | 只看该作者

哇!,这么恨

还是一点一点的拍吧,这样就死不了了.

还有一个疑问XWJ,我发完后你还会不会来呢?敢发誓吗?

使用特权

评论回复
33
xieyuanbin| | 2007-11-21 15:45 | 只看该作者

鉴于有目共睹的辛勤劳动及技术含量

先加条裤子,同时希望尽早看到下文

使用特权

评论回复
34
Aihe| | 2007-11-21 18:58 | 只看该作者

不知道运放的温度漂移多少

失调怎么补偿

使用特权

评论回复
35
兰天白云|  楼主 | 2007-11-21 20:45 | 只看该作者

回Aihe

OP07D的输入失调电压=25uV
还是看下图吧

用我给的参数不能正确无误得到0.00000~2.50000V的
总有点偏差,比如2.50000变成了2.49991V了,这些都很正常,MCU旁边有个校准模块,可以解决失调问题,选OP07是为了给自己留条后路,怎么说呢?OP07的失调电压和温度系数本人觉的有点大(虽然已经很好了),与OP07一样封装且引脚数相同的运放,叫7652,其失调电压=5uV,温度系数=0.05uV/度,这应该是最精密的运放了

呵呵,有备无患

使用特权

评论回复
36
兰天白云|  楼主 | 2007-11-22 10:01 | 只看该作者

AD(续6),AD实际电路及程序

读MCP3553函数.读到22位数据
用软件模拟SPI

unsigned long readadc(void)
{unsigned char cyt,i;
 unsigned long adval=0;
 
 AD_SCK=1;
 adltime();
 AD_CS=0;
 for(i=0;i<2;i++)
  {disp(pv,sv,led.bits);} //没事干,扫描显示
 AD_CS=1;
 for(i=0;i<15;i++)
  {disp(pv,sv,led.bits);  //没事干,扫描显示
   
  }
 AD_CS=0;
 adltime();     //延时
 for(cyt=24;cyt>0;cyt--)  //这个时候MCP3553完成工作,开始读数据
  {adval=adval<<1;
   AD_SCK=1;
   adltime();
   AD_SCK=0;
   adltime();
   if(AD_SDO==1)
    {adval+=1;}
  }
 
 AD_SCK=1;
 adltime();
 AD_CS=1;
 adval=adval&0x003fffff;
 //adval=adval>>3;
 return(adval);
}

使用特权

评论回复
37
aihe| | 2007-11-22 13:28 | 只看该作者

如果没记错的话7652是崭波放大器

还想问一下RT100的线性度能达到精度吗?
好像记得RT100需要冷端补偿
我记得模拟版以前有个帖子专门讲几个高精度放大器的
https://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=1875427

使用特权

评论回复
38
wolfererer| | 2007-11-23 12:27 | 只看该作者

恩,进来支持一下

使用特权

评论回复
39
dcp| | 2007-11-23 18:34 | 只看该作者

HOT!

使用特权

评论回复
40
兰天白云|  楼主 | 2007-11-24 08:55 | 只看该作者

(续6),数据处理及显示

1:读到AD数据后首先进行滤波处理,这里采用剔除最大最小值,然后余下的求平均
2:根据校准数据对滤波后的数据进行修正,同时也进行线性修正
3:转换成BCD码送显示模块
4:要显示99.999必须有5个数码管,考虑以后升级到控制功能,另加5个数码管用于给定值的显示
5:16F76的IO口足够多,电流足够大(25mA),所以段驱动就由IO口直接驱动,位驱动用145,这东西便宜,电流又大,很好用,这样做唯一缺陷是要单片机不停的扫描
在我的读AD值程序里有两次调用显示函数就是这原因,总用IO口=8+4=12个
6:扫描频率70HZ以上,眼睛看着很舒服

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则