教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器

        最近做了一个恒温加热台的项目,其中需要有一个温度检测,市面上的温度传感器大部分方案都不太合适,精度也不是很高,最后我们用到了一款热电偶到数字转换器MAX6675ISA来进行恒温加热台的时时温度的获取,下面就给大家分享一下这个热电偶到数字转换器的使用方法,这个方案可以直接使用,实测温度检测很稳定。

        做嵌入式避免不了跟各种芯片打交道,一开始我都是去网上搜别人是怎么用的,后面发现很多小众的芯片或者是新出的芯片网上能找的的资源很少,所以本着授人以鱼不如授人以渔的想法,我跟大家说一下如何自己上手使用一款新的芯片。

        我最喜欢的是上立创商城搜,市面上绝大部分的芯片都可以在立创商城找到,比如这款MAX6675ISA

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第1张图片

        点击详细中的数据手册

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第2张图片

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第3张图片

        再点上面的数据手册

        打开后基本上你会看到全英文的数据手册,但是不用慌,大部分关键的都是可以看得懂的。

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第4张图片

        上面的标题就可以看到这个芯片可以测温的范围是0-1024摄氏度

        可以找到这个芯片的引脚定义图,以及使用芯片的外围电路。

        可以看到下面的图片中,芯片的外围电路特别的简单,只要在vcc和gnd之间加一个0.1uf的旁路电容,T+和T-引脚接上一个热电偶来传递热量,T-接地 即可。

        如果你仔细看数据手册就可以知道这个旁路电容的作用是减少噪声的引入,增加精度。如果有时间感兴趣的话可以仔细阅读一下文字,但是正常情况是不需要的,一般只要看外围电路就可以使用了,所以不要被它特别大篇幅的英文吓到了,只要从中间快速获取我们所需要的内容就可以了。

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第5张图片

        下面是我的硬件电路,大家可以参考一下,我将CS引脚下拉,默认是一种选中的状态。

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第6张图片

        接下来我们找的芯片通信的时序图

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第7张图片

        很容易看出来这是一个16位的SPI通信的方式,CS是片选引脚,只有低电平的时候才是有效的,SCL是时钟线,SO是相当于SPI中的MOSI。不太清楚SPI通信协议的可以看我另外一篇文章,里面讲的比较详细。

        硬件SPI+DMA驱动ST7789芯片(超详细讲解)(合宙AIR001)-CSDN博客

        可以简单的看一下芯片的内部结构图,可以看到芯片是内置了一个ADC,看文字内容就可以知道它是一个12位的ADC,所以它输出的数据的范围是0-4095。

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第8张图片

        这里可以看到芯片准确的温度检测范围是0-1023.75摄氏度,而12位的ADC的范围是0-4095,所以不难算出ADC与温度的对应关系是4096/1023.75=4,所以我们只要将ADC输出的值是除以4便可以得到当前的温度。

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第9张图片

        我们再来看看芯片通过SPI传输的16位数据的具体含义

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第10张图片

        已经很明显了,MSB是最高有效位,LSB是最低有效位,所以从D14-D3这12位数据就是12位ADC的数据,其他都可以不用看了,只需要将采集到的数据的D14-D3取出来就可以知道ADC的值,再除以4就得到当前的温度了

        不过保险起见还可以看看其他位的含义。

        D15有一个0,说明这个位一直都是0

        D2是温度输入(看下面图片中文字介绍就可以知道这个位通常是0,如果热电偶开路则是1

        D1是设备ID

        D0是三态(高阻态)

        最后用逻辑分析仪抓取一下温度设定为50摄氏度的时候,芯片通信时候的波形验证一下上面的分析结果。

教你如何上手使用一款新的芯片&精准的温度检测方案MAX6675ISA热电偶到数字转换器_第11张图片

        可以看到CS先是拉低,表示选中,然后开始传输数据。

        根据SPI协议,16位数据为0000 0110 0100 0001

        上面分析过ADC数据是D14-D3,即0000 1100 1000,16进制为0xC8,十进制是200,按照上面的计算方式,200/4=50,刚好跟设置的温度一致,说明温度检测没有问题。

        希望可以帮助到大家,如有错误的地方欢迎大家批评指正。

         我最近发了一篇文章里面包含了常用的功能函数以及常用的模块底层驱动函数封装库,大家感兴趣的可以收藏一下,需要的时候就不用到处找代码,一篇就够用,我会持续更新。

        常用模块函数封装库(持续更新中。。。。。。)-CSDN博客 

你可能感兴趣的:(嵌入式硬件,单片机,c语言,arm开发)