看芯片数据手册方法
我觉得看一个芯片应该从以下三方面去入手
1、概述:即芯片的特性,这里我们能看到一些芯片的性能参数,看是否满足我们项目的需求。
2、硬件:看手册中的硬件每一个pin的功能,并研究典型应用电路,和自身项目对比,是否契合,比如芯片的供电、与主控的通讯协议等。
3、软件寄存器:在看完手册中的概述和硬件接口之后,基本可以确定该芯片是否满足需求,但是也需求大概查看一下各个配置寄存器,比如本人之前用到的ads1115,手册上写着4个adc通道,但是内部adc转换是一个通道,四个通道不能同时进行采样,而且每次切换通道之后,还需要等待通道稳定,极大的缩短了采样周期,只能含泪重新画板。。。
一、芯片概述
在概述中,可以看到,max31856的测温分辨率、范围,并支持的热电偶型号,很重要的一点就是,我们知道热电偶的温度和电压是非线性关系的,所以需要高精度测温方案的时候,查表法是最准确的。
上图可以看到max31856的转换周期,最大为110ms,所以编程的时候,采样周期必须大于110ms
上图表示max31856的spi时序的一些要求,一般芯片都是标准的协议时序,此处我们需要关注时钟频率,手册显示标准频率为5MHz,编程的时候可以留意。
上图表述了max31856的adc是19位,并且内部集成了硬件滤波,而且在BIAS的引脚上会输出偏置信号用于匹配量程
上图主要解释了开路检测的原理与寄存器的配置方法,如果项目中有关于开路检测的需求可以深究
上图详细解释了max31856的通讯细节 1、传输的时候,MSB(高位)在前
2、SPI的CPHA必须为1(具体可以学习spi协议的四种模式,此处不赘述)
3、数据传输的时候,第一个字节是地址位,表示寄存器的地址,第一个自己的A7(最高位)表示读写操作,0为读,1为写
4、寄存器递增,即比如拉低cs片选,对0x00地址写入一个字节的数据,再不释放cs信号的情况下,再写一个自己的数据,第二个字节会自动写到0x01中,大多数芯片都支持这种寄存器递增原则,比如pca9685等
二、硬件电路设计
上图可以看到,该芯片除了供电、spi信号线之外,还剩下三个有点疑惑的引脚
1、BIAS:根据典型应用电路与概述中内容,该引脚为热电偶提供一个偏置信号,接到热电偶的负极即可
2、DRDY:手册上写着数据就绪输出??不太懂?
可以在文档中搜索“DRDY”,找到以下说明,说明可以用这个引脚来判断热电偶是否转换完毕
3、FAULT:用同样的方法
在当前温度不在设定的阈值范围之内,或者热电偶开路的时候,该引脚会输出故障
综上所述,max31856的硬件连接只需要正常供电、并且和主控spi通讯,再根据项目需求设计主控gpio读取DRDY FAULT引脚状态即可
三、软件寄存器
关于max31856的软件寄存器,可以参考下面这位大神的博客,写的很详细
https://blog.csdn.net/m0_55562152/article/details/120769686
四、硬件spi代码
以下代码基于stm32f103c8t6的硬件spi实现
说明
图中所有图片都是数据手册截图,水印我也没找到在哪取消,中文数据手册网上很多,随便可以下载。
水平有限,还望各位不吝赐教!