外设驱动库开发笔记55:MAX31865热电阻变送器驱动
热敏电阻(RTD)作为一种高精度的温度传感器,在工业控制、医疗设备和实验室测量等领域有着广泛的应用。MAX31865是Maxim Integrated推出的一款专为RTD设计的信号调理器,能够简化RTD的温度测量过程。本文将详细介绍如何设计一个简洁易用的MAX31865驱动程序,帮助开发者快速上手并集成到自己的项目中。
1、功能概述
MAX31865是简单易用的热敏电阻至数字输出转换器,优化用于铂电阻温度传感器(RTD)。外部电阻设置所用RTD的灵敏度,高精度Σ-Δ ADC将RTD电阻与参考阻值之比转换成数字输出。MAX31865输入具有高达±45V的过压保护,提供可配置的RTD及电缆开路/短路条件检测。
MAX31865 主要用于测量 PT100/PT1000 热电阻的阻值变化。热电阻的阻值会随着温度的变化而发生线性变化,芯片通过内部电路将热电阻的阻值变化转换为电压信号。有两种封装,器引脚定义如下:

MAX31865通过对寄存器的读写实现相应的操作,总共有八个8位寄存器,其中包括:转换、状态和配置数据,所有设置均通过选择相应寄存器单元的地址完成,如下表所示为寄存器地址。

存取寄存器时,地址0Xh为读操作,地址8Xh为写操作。读写数据时,寄存器MSB在前。
配置寄存器选择转换模式(自动模式或单次转换命令触发模式)、使能和禁止BIAS引脚输出VBIAS、发送单次转换命令、选择RTD连接方式(3线或2/4线)、启动一次故障检测、清空故障状态寄存器,以及选择滤波器陷波频率。配置寄存器各位的定义如下:

其他寄存器设置或获取MAX31865的各种信息及数据,这两就不一一列举了。
2、驱动设计与实现
前面我们了解了MAX31865热电阻温度变送器的基本情况,接下来我们考虑如何实现MAX31865热电阻温度变送器的驱动程序。
2.1、对象定义
我们依然是基于对象的概念来实现驱动程序的设计。所以我们首先来考虑对象类型的定义。
作为一个对象至少包含有属性和操作。我们先来分析一下MAX31865热电阻温度变送器对象的属性有哪些。MAX31865热电阻温度变送器拥有8个寄存器,这些寄存器标识了MAX31865热电阻温度变送器当前时刻所处的状态,所以我们将它们定义为属性。同时考虑到记录当前时刻读取的电阻转换值和根据物理量程转换的温度值,所以我们将相应的ADC转换值及物理量值作为MAX31865热电阻温度变送器对象的属性。
除了属性,我们还要考虑一下MAX31865热电阻温度变送器对象需要实现哪些操作。我们只考虑与具体平台依赖性较强的操作。对于MAX31865热电阻温度变送器对象,当其完成AD转换回给出一个就绪指示,我们需要实时的检测这个信号,并且这个过程依赖于具体的软硬件平台,所以我们将检测过程

最低0.47元/天 解锁文章
1259

被折叠的 条评论
为什么被折叠?



