yiminglei_2 发表于 2015-7-15 00:08:18

K热电偶的 MAX6675 数据高位丢失,难道是假货?

本帖最后由 yiminglei_2 于 2015-7-15 00:12 编辑

刚刚接触MAX6675,发现个问题请教大家,谢谢:

发现个奇怪的问题,通过GPIO读MAX6675,读回来的12位温度数据只有低7位,高5位数据始终为0,导致转换后的温度只能到31度,再高一点就从0开始了。

如果把热电偶开路,则读回来的16位数据为:0111 1111 1111 1101,这个数据是正常的,也即能够识别到热电偶开路,温度数据全为1。

如果把热电偶短路,则显示的是常温(24-26度)。

我反复查看过软件,不会存在变量范围的问题,因为每个比特位都是通过GPIO一个一个读出来看的。

因此感觉MAX6675没有把温度数据的高5位输出,难道是假货?大家有没有遇到这样的情况?谢谢!


以下是读取MAX6675的代码:
u16 MAX6675_Read(void)
{
        u16 res=0,s=0;
        u32 i;

        MAX6675_CLR_CS();
        delay_us(50);

        s=MAX6675_SO_READ();
        printf("0-%d\r\n",s);
        if(s == 1)
        {
                res++;
        }
        delay_us(50);
       
        for(i=1;i<16;i++)
        {
                MAX6675_SET_SCK();
                delay_us(50);

                MAX6675_CLR_SCK();
                delay_us(50);       

                res<<=1;

                s=MAX6675_SO_READ();
                printf("%d-%d\r\n",i,s);
                if(s == 1)
                {
                        res++;
                }
                delay_us(50);
        }
       
        MAX6675_SET_CS();
       
        return (res);
}

LearningASM 发表于 2015-7-15 09:44:04

如果把热电偶开路,则读回来的16位数据为:0111 1111 1111 1101,这个数据是
正常?
开路应该是是室温的吧

yiminglei_2 发表于 2015-7-19 00:30:56

本帖最后由 yiminglei_2 于 2015-7-19 00:39 编辑

找到问题了,可能因为MAX6675使用了DC-DC电源,104离太远了,在芯片旁放一个就好了。。。

xiaobendan 发表于 2015-7-19 08:07:36

几钱买的?

yiminglei_2 发表于 2015-7-20 08:28:28

xiaobendan 发表于 2015-7-19 08:07
几钱买的?

15元/片。。。

xiaobendan 发表于 2015-7-20 12:15:34

这么贵,应该不是假的吧。我看到X宝有5块多的,不知道能用不。
看到普通仪表还是用运放做比较便宜,省钱。

dragonFANG 发表于 2015-8-14 08:31:24

yiminglei_2 发表于 2015-7-19 00:30
找到问题了,可能因为MAX6675使用了DC-DC电源,104离太远了,在芯片旁放一个就好了。。。 ...

您用的6675应该跟31855是一类的吧,我现在读出来的值全是0或者全是1,可能是没有读出来。难道也是电容的位置问题?我电容放的挺近的了。

wkman 发表于 2015-8-14 11:36:56

{:shocked:}{:sweat:}
页: [1]
查看完整版本: K热电偶的 MAX6675 数据高位丢失,难道是假货?