打印

求pt100电路图

[复制链接]
2149|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cl234583745|  楼主 | 2015-1-30 11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cl234583745 于 2015-1-30 11:22 编辑

目的需要测0-50范围温度。精度尽量的高,结果不能跳动太大。并且导线大概要3m长的样子。
原来有热敏电阻,但标定麻烦。热电偶的,温度跳动大并且精度不够。后来想用pt100但没有使用过没有成行的电路,看了一些资料。有桥式和恒流,2.3线接法.但没有实际使用过,电路方面不懂。尤其导线要3m长,可能更不行了。为了短时间调试出来。求具体办法。是自己运放,还是用ad芯片都可以。

我抄了个ad7792+pt100 3线的电路,自己不懂电路,也不知道对不对。若不能提供好的电路,帮我看看这个电路抄的对不对。

(尤其3.3v哪里和上面2出分别接stm32的19.20.21引脚了,不知道什么目的)

PT1003.jpg (694.03 KB )

PT1003.jpg

QQ图片20150130105841.jpg (59.26 KB )

QQ图片20150130105841.jpg

相关帖子

沙发
mmuuss586| | 2015-1-30 20:39 | 只看该作者

可以考虑用恒流法测电阻;
4线采样更好;

使用特权

评论回复
板凳
cl234583745|  楼主 | 2015-2-2 08:23 | 只看该作者
本帖最后由 cl234583745 于 2015-2-2 09:12 编辑
mmuuss586 发表于 2015-1-30 20:39
可以考虑用恒流法测电阻;
4线采样更好;

关键不会电路啊,你给个吧

使用特权

评论回复
地板
mmuuss586| | 2015-2-2 12:13 | 只看该作者
cl234583745 发表于 2015-2-2 08:23
关键不会电路啊,你给个吧

公司资料,不能发;

恒流源可以参考安捷伦万用表内部的恒流源电路;

使用特权

评论回复
5
cl234583745|  楼主 | 2015-2-2 16:39 | 只看该作者
mmuuss586 发表于 2015-2-2 12:13
公司资料,不能发;

恒流源可以参考安捷伦万用表内部的恒流源电路;

:L

使用特权

评论回复
6
rfvdfg| | 2015-2-3 14:03 | 只看该作者

不知是否满足你的要求?

使用特权

评论回复
7
一心爱你| | 2015-2-3 17:15 | 只看该作者
可以去TI网站搜索下这个文档:SLYT442   专门测量RTD电路,包括两线制和三线制

使用特权

评论回复
8
cl234583745|  楼主 | 2015-2-4 08:44 | 只看该作者
本帖最后由 cl234583745 于 2015-2-4 08:45 编辑
一心爱你 发表于 2015-2-3 17:15
可以去TI网站搜索下这个文档:SLYT442   专门测量RTD电路,包括两线制和三线制 ...

百度都搜不到这个东西,资料更少怕不会用啊,你也没有用过吧

使用特权

评论回复
9
cl234583745|  楼主 | 2015-2-4 08:45 | 只看该作者
rfvdfg 发表于 2015-2-3 14:03
不知是否满足你的要求?

有自己运放的电路吗,这个看起来比ad7792麻烦多了。也不知道能达到什么效果,你用过吗

使用特权

评论回复
10
rfvdfg| | 2015-2-4 11:20 | 只看该作者
cl234583745 发表于 2015-2-4 08:45
有自己运放的电路吗,这个看起来比ad7792麻烦多了。也不知道能达到什么效果,你用过吗
...

INA118就是精密运放啊

使用特权

评论回复
11
xygyszb| | 2015-2-6 09:31 | 只看该作者
cl234583745 发表于 2015-2-4 08:45
有自己运放的电路吗,这个看起来比ad7792麻烦多了。也不知道能达到什么效果,你用过吗
...

我上次给你的电路图不管用吗?

使用特权

评论回复
12
xygyszb| | 2015-2-6 09:40 | 只看该作者
给你传一份AD7792的评估板文档。里面有应用说明和硬件原理图。

EVAL-AD7792.pdf

1003.11 KB

使用特权

评论回复
13
cl234583745|  楼主 | 2015-2-9 08:41 | 只看该作者
xygyszb 发表于 2015-2-6 09:40
给你传一份AD7792的评估板文档。里面有应用说明和硬件原理图。

:victory:牛b,还记得我啊。没有用你那个电路。我想弄个三线制的,以后基本通用。你那个是两线制的,谢谢你的文档,待我学习下,百度好像搜不到这个文档啊,谢谢

使用特权

评论回复
14
bluecup| | 2015-2-9 11:45 | 只看该作者
彻底搞个简单好理解的吧,分压法测电阻,加上软件标定一个电阻值,这个测纯电阻精度可以到40m欧姆
C:\Users\Administrator\Desktop\PT100测温.png

使用特权

评论回复
15
bluecup| | 2015-2-9 11:46 | 只看该作者
图片还不好发呢,算了

使用特权

评论回复
16
cl234583745|  楼主 | 2015-2-9 14:45 | 只看该作者
bluecup 发表于 2015-2-9 11:46
图片还不好发呢,算了

高级模式里面就能发图片

使用特权

评论回复
17
xygyszb| | 2015-2-11 08:50 | 只看该作者
cl234583745 发表于 2015-2-9 08:41
牛b,还记得我啊。没有用你那个电路。我想弄个三线制的,以后基本通用。你那个是两线制的,谢谢 ...

ADI的官方下载的,你可以去官方网站找到。

使用特权

评论回复
18
ysdx| | 2015-2-11 17:14 | 只看该作者
呵呵。楼主你用量大吗?
有家公司马上会推出一款专门的PT100/PT1000接口芯片。瞄准的是替代AD7792、ADS1247等芯片。价格是这两种芯片的1/4~1/5左右。
集成恒流源,LDO,电压基准以及和22bitADC。支持3线制和四线制。SSOP-16封装。3.3V供电。采用I2C接口。

使用特权

评论回复
19
cl234583745|  楼主 | 2015-2-12 08:33 | 只看该作者
ysdx 发表于 2015-2-11 17:14
呵呵。楼主你用量大吗?
有家公司马上会推出一款专门的PT100/PT1000接口芯片。瞄准的是替代AD7792、ADS1247 ...

说了半天没有说重点,名字和手册

使用特权

评论回复
20
cl234583745|  楼主 | 2015-3-16 11:17 | 只看该作者
xygyszb 发表于 2015-2-11 08:50
ADI的官方下载的,你可以去官方网站找到。

电路图如1楼 程序按照给的例程,为啥测试不好使呢。
你帮我分析下怎么办吧
#include<stdio.h>
#include<aduc841.h>
/******************************************************************
DEFINE CONTROL PINS OF ADUC841 FOR THE PURPOSE OF AD7792 CONTROL.
Customers should define the pins according to their design.

******************************************************************/
sbit CS=0x0A0;
sbit SCLOCK=0x0A6;
sbit DIN=0x0A2;
sbit DOUT=0x0A3;

unsigned char DataRead[3];


void WriteToReg(unsigned char ByteData);
void ReadFromReg(unsigned char nByte);
void Delay(unsigned int Time)
{

        while(Time)
        {
                Time--;
        }
}


void main()
{

        int ResetTime;
        /* Set up UART */
        T3CON = 0x086;
        T3FD = 0x08;
        SCON   = 0x052;
       
        printf("Hello\r\n");

        /* PRECONFIGURE...*/
        ResetTime=32;
        SCLOCK=1;

        CS=0;                  //to keep DIN=1 for 32 sclock to reset the part
        DIN=1;
        while(ResetTime--)
        {
                Delay(10);
                SCLOCK=0;
                Delay(10);
                SCLOCK=1;
        }
        CS=1;       
       
    printf("Reset\r\n");
       
       
        WriteToReg(0x10); //write to Communication register.The next step is writing to Configuration register.
        WriteToReg(0x00); //set the Configuration bipolar mode.Gain=1.
        WriteToReg(0x80); //Configuration internal reference selected.

        while(1)
        {
       
                WriteToReg(0x08);//write to Communication register.The next step is writing to Mode register.
                WriteToReg(0x20);//set the mode register as single conversion mode.
                WriteToReg(0x0A);//inter 64 kHZ clock.internal clock is not available at the clk pin.
               
          
               
               
                WriteToReg(0x40);//write to Communication register.The next step is to read from Status register.
                ReadFromReg(1);       
                while((DataRead[0]&0x80)==0x80)//wait for the end of convertion by polling the status register RDY bit
         
                {
                  
                        WriteToReg(0x40);
                        ReadFromReg(1);       
                }
                 
                 
               
                WriteToReg(0x58);//write to Communication register.The next step is to read from Data register.
                ReadFromReg(2);       
                printf("Data:%02BX %02BX\r\n",DataRead[0],DataRead[1]);

        
      
        }

}   


void WriteToReg(unsigned char ByteData) // write ByteData to the register
{
        unsigned char temp;
        int i;       
        CS=0;
        temp=0x80;
        for(i=0;i<8;i++)
        {
                if((temp & ByteData)==0)
                {               
                      DIN=0;
                }       
                else
                {
                         DIN=1;
             }
                SCLOCK=0;
                Delay(10);
                   SCLOCK=1;
                Delay(10);
                temp=temp>>1;
        }
        CS=1;
}


void ReadFromReg(unsigned char nByte) // nByte is the number of bytes which need to be read
{
        int i,j;
           unsigned char temp;
           DIN=1;
        CS=0;
    temp=0;
        DOUT=1;

        for(i=0; i<nByte; i++)
        {
                for(j=0; j<8; j++)
            {
                     SCLOCK=0;
                     if(DOUT==0)
                     {
                                temp=temp<<1;
                         }else
                         {
                                temp=temp<<1;
                                 temp=temp+0x01;
                        }
                        Delay(10);
                SCLOCK=1;
                        Delay(10);
                  }
                  DataRead=temp;
                  temp=0;
        }
    CS=1;
}

使用特权

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

本版积分规则

99

主题

644

帖子

1

粉丝