打印

max6675为何直接测得的温度值非常不准

[复制链接]
18213|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuiasuna|  楼主 | 2014-1-12 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
yuiasuna|  楼主 | 2014-1-12 13:07 | 只看该作者
还有就是热电偶断线位一直是1这是为什么

使用特权

评论回复
板凳
看见未来| | 2014-1-12 19:21 | 只看该作者
怎么不准?热电偶断偶是1,是正常的,不过也有可能不是1,用美信技术支持的话来说,就是不是固定电平,一切皆有可能。判断断偶需要通过断偶标志位,才是准确的。

使用特权

评论回复
地板
yuiasuna|  楼主 | 2014-1-13 14:49 | 只看该作者
看见未来 发表于 2014-1-12 19:21
怎么不准?热电偶断偶是1,是正常的,不过也有可能不是1,用美信技术支持的话来说,就是不是固定电平,一切 ...

D2不是判断位么,这一位一直是1,然后还有个问题就是计算公式如果使用1023.75*采集到的值/4095室温下得到的数值为100多,但是采用1024*采集到的值/4096得到的就是10左右,但这样的话加热热电偶得到的温度值不会上升

使用特权

评论回复
5
xiang2580| | 2014-1-13 14:57 | 只看该作者
我认为设计有问题,MAX6675常温到400度我做过,非常准。再高没试过。

使用特权

评论回复
6
yuiasuna|  楼主 | 2014-1-13 15:13 | 只看该作者
xiang2580 发表于 2014-1-13 14:57
我认为设计有问题,MAX6675常温到400度我做过,非常准。再高没试过。

设计就是按照芯片手册上的接地接电容然后spi部分由f28335完成,感觉没什么问题呀

使用特权

评论回复
7
xiang2580| | 2014-1-13 15:34 | 只看该作者
确定不是K性热电偶的问题?记得转换速度也超快,断开时候全1也是对的,我做开路故障。还有我没接电容在T+ T-的,T-接地了。

使用特权

评论回复
8
kingzlt| | 2014-1-13 16:37 | 只看该作者
xiang2580 发表于 2014-1-13 14:57
我认为设计有问题,MAX6675常温到400度我做过,非常准。再高没试过。

美信有没有测到低温的芯片 比如-50℃

使用特权

评论回复
9
XZL| | 2014-1-13 16:53 | 只看该作者
MAX6675单词采样是有误差的。主要是电路干扰和电源波动等因素造成。建议采取多次测量并滑动滤波方法对数据进行处理。在算法中特别要考虑50HZ的抑制。

使用特权

评论回复
10
yuiasuna|  楼主 | 2014-1-13 16:58 | 只看该作者
xiang2580 发表于 2014-1-13 15:34
确定不是K性热电偶的问题?记得转换速度也超快,断开时候全1也是对的,我做开路故障。还有我没接电容在T+ T ...

t+t-是接的传感器,传感器没问题,也接地了,但接上传感器d2还是1而且计算公式算出来不对

使用特权

评论回复
11
yuiasuna|  楼主 | 2014-1-13 17:00 | 只看该作者
XZL 发表于 2014-1-13 16:53
MAX6675单词采样是有误差的。主要是电路干扰和电源波动等因素造成。建议采取多次测量并滑动滤波方法对数据 ...

这个误差太大了,正常漂2°左右,但这个是室温测出来133°

使用特权

评论回复
12
XZL| | 2014-1-14 09:07 | 只看该作者
多组数据滑动滤波后,也可有效消除漂移

使用特权

评论回复
13
yuiasuna|  楼主 | 2014-1-14 13:29 | 只看该作者
XZL 发表于 2014-1-14 09:07
多组数据滑动滤波后,也可有效消除漂移

您可能没明白我的意思,我的意思是我测量的温度是10℃的时候但得到的温度却是133℃,漂移部分在1~2℃之间这个没有太大的问题,现在的问题是测得的温度和实际温度偏差太大

使用特权

评论回复
14
leehp| | 2014-1-14 13:55 | 只看该作者
yuiasuna 发表于 2014-1-13 17:00
这个误差太大了,正常漂2°左右,但这个是室温测出来133°

这么大的误差太邪门了。
1·你的热电偶坏了。
2·你的6675坏了。
3·程序有误,读出的数据就不对。

使用特权

评论回复
15
gx_huang| | 2014-1-14 16:17 | 只看该作者
从来不用这些专门芯片,自己搭电路测温的,飘过。
肯定是程序或者硬件有问题。
怀疑传感器坏,直接短路输入就可以了。

使用特权

评论回复
16
看见未来| | 2014-1-14 19:27 | 只看该作者
yuiasuna 发表于 2014-1-14 13:29
您可能没明白我的意思,我的意思是我测量的温度是10℃的时候但得到的温度却是133℃,漂移部分在1~2℃之间 ...

6675每次采样时间大概在300ms左右,所以读取数据间隔时间是必要的。
如果这个注意了,误差太大,可能是
1,热电偶问题,注意6675是K型热电偶专用芯片,或者换一个热电偶再试试;或者
   直接将6675两个输入级短路,如果其他没问题,读出来的数据应该是室温。
2,程序有问题;
   用示波器观察时序。首先,读取的时候片选要拉低,然后一个时钟一位数据,读取完成后再将片选拉高。
   用示波器看看时序是不是正确的,时钟低时数据位改变,高时读取 。
   16位数据的3到14位是数据位(0--15),读取时是由高位到低位的,所以舍去第15位是必须的。
3,6675芯片,如果上述两个没问题,换一个片子试试。

使用特权

评论回复
17
yuiasuna|  楼主 | 2014-1-14 23:34 | 只看该作者
leehp 发表于 2014-1-14 13:55
这么大的误差太邪门了。
1·你的热电偶坏了。
2·你的6675坏了。

加热热电偶温度会涨说明热电偶和6675应该没问题啊。。。。

程序的话芯片用的f28335的,只要读spirxbuf里面的东西就行了吧。。。

所以就一直纠结不知道是哪有问题,非常蛋疼

使用特权

评论回复
18
yuiasuna|  楼主 | 2014-1-14 23:44 | 只看该作者
看见未来 发表于 2014-1-14 19:27
6675每次采样时间大概在300ms左右,所以读取数据间隔时间是必要的。
如果这个注意了,误差太大,可能是
1 ...

unsigned int Read_MAX6675_Temp_J1(void)
{
        int Dummy=0,i=0;
        Uint16 Temperature;
        GpioDataRegs.GPADAT.bit.GPIO18 = 0;   //使能片选
        for (i=0;i<500;i++);
        SpiaRegs.SPICTL.bit.TALK = 0;
        for (i=0;i<500;i++);
        SpiaRegs.SPITXBUF = Dummy;               
        for (i=0;i<500;i++);
        while (SpiaRegs.SPISTS.bit.INT_FLAG==0) ;
        for (i=0;i<500;i++);
        Temperature=SpiaRegs.SPIRXBUF;
        for (i=0;i<500;i++);
        GpioDataRegs.GPADAT.bit.GPIO18 = 1;   //退出时关片选
        Temp_Error_Flag=(Temperature&0x04)>>2;
        Temperature=Temperature&0x7fff;
        Temperature=Temperature>>3;
        Temperature=1023.75*Temperature/4095;       
        return Temperature;       
}


这个是程序,cpu用的f28335的,你说的两点都做过了没发现什么问题,总共是五路信号,但五路室温下读出来都是130多度。。。
但值得注意的有一点是我把公式改为
Temperature=1024*Temperature/4096;       
这个以后每个传感器读出的温度大概都是10来度,但问题是给传感器加热之后读出来的温度一直都保持不变不知道是为什么

使用特权

评论回复
19
看见未来| | 2014-1-15 08:39 | 只看该作者
yuiasuna 发表于 2014-1-14 23:44
unsigned int Read_MAX6675_Temp_J1(void)
{
        int Dummy=0,i=0;

你这个用的是cpu自带的spi吗?
我没用过硬件spi,都是io口模拟时序的。

使用特权

评论回复
20
gx_huang| | 2014-1-15 08:59 | 只看该作者
肯定是程序的问题,你仔细看看MAX6675的SPI时序要求,看看CLK的触发沿是否对,D15-D0的顺序是否对。
有效数据是D14-D3。
注意:CLK是下降沿时锁存数据,先输出D15。

使用特权

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

本版积分规则

4

主题

26

帖子

1

粉丝