max31865模块RTD测温注意事项

  • 注意事项1 参考电阻
  • 注意事项2 接线
  • 注意事项3 电气连接
  • 注意事项4 max31865模块重要细节
  • 注意事项5 SPI时序间隔
  • 注意事项6 max31865读取不到寄存器数据的原因
  • 参考代码

注意事项1 参考电阻

The PT100 version of the breakout uses 430Ω
The PT1000 version uses 4300Ω
一般PT100选400欧姆参考电阻,但是板子上给的是4300,也就是430Ω。程序里需要设置参考电阻为430,PT1000选择4300Ω。
#define REF_RES 430

注意事项2 接线

板子上有三个位置用于设置线的。

注意事项3 电气连接

Power Pins:
Vin - this is the power pin. Since the chip uses 3 VDC, we have included a voltage regulator on board that will take 3-5VDC and safely convert it down. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V
3Vo - this is the 3.3V output from the voltage regulator, you can grab up to 100mA from this if you like
GND - common ground for power and logic

SPI Logic pins:
All pins going into the breakout have level shifting circuitry to make them 3-5V logic level safe. Use whatever logic level is on Vin!

SCK - This is the SPI Clock pin, its an input to the chip
SDO - this is the Serial Data Out / Microcontroller In Sensor Out pin, for data sent from the MAX31865 to your processor
SDI - this is the Serial Data In / Microcontroller Out Sensor In pin, for data sent from your processor to the MAX31865
CS - this is the Chip Select pin, drop it low to start an SPI transaction. Its an input to the chip
If you want to connect multiple MAX31865’s to one microcontroller, have them share the SDI, SDO and SCK pins. Then assign each one a unique CS pin.

RDY (Ready) - is a data-ready indicator pin, you can use this pin to speed up your reads if you are writing your own driver. Our Arduino driver doesn’t use it to save a pin.

注意事项4 max31865模块重要细节

SPI对其寄存器进行读写,寄存器如下图。
配置寄存器,想读就读0x00,想写就写0x80。
转化后的RTD数值存放于0x01和0x02这2个8位寄存器。
可以设置错误报警门限上限和下限,通俗来说,比如一个PT100能测温范围是-200℃到420℃,用户想设置下限报警值为-180℃,上限报警值为400℃,那么当max31865转换RTD后,会将0x01和0x02寄存器结果与上限值和下限值比较,如果不在设置的范围,就会产生错误标志。
错误标志存在0x07寄存器中。
读取温度过程:
(1)读取0x07寄存器,看是不是等于0x00,即是说无错误标志。有错误标志时,0x07寄存器里面某个值就是1。

错误标志可以手动清除,但如果没实际解决问题,下次检测这个标志还是会被模块拉起。

(2)如果能过错误检测,就开始下面的过程。向0x80写入配置,这里写入的是说进行一次转换(One_Shot_Conversion ),然后等待DRDY 引脚变成低电平(意味转换结束)。然后读取0x01和0x02这2个8位寄存器,0x02的最低位装的是错没错的标志,没错的话就可以利用0x01和0x02这2个8位寄存器合成电阻数值。

4)PT100电阻变成温度
这个就各显神通了,有各种各样的转换公式。

注意事项5 SPI时序间隔


注意事项6 max31865读取不到寄存器数据的原因

从机发数据也是需要主机提供时钟信号的

参考代码

//使用RT1052 LPSPI3
//LPSPI3:读写一个字节
//TxData:要写入的字节
//返回值:读取到的字节
uint8_t LPSPI3_ReadWriteByte(uint8_t TxData)
{uint8_t spirxdata=0;uint8_t spitxdata=TxData;lpspi_transfer_t spi_tranxfer;lpspi_master_handle_t master_handle;spi_tranxfer.configFlags=kLPSPI_MasterPcs1|kLPSPI_MasterPcsContinuous;     //PCS1spi_tranxfer.txData=&spitxdata;                 //要发送的数据spi_tranxfer.rxData=&spirxdata;                 //要接收到的数据spi_tranxfer.dataSize=1;                        //数据长度LPSPI_MasterTransferBlocking(LPSPI3,&spi_tranxfer);     //SPI阻塞发送
//      LPSPI_MasterTransferNonBlocking(LPSPI3, &master_handle, &spi_tranxfer);return spirxdata;
}
uint8_t max31685_ReadRegister8(uint8_t addr)
{uint8_t ret;GPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 1U);SysTick_DelayTicks(1U);GPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 0U);SysTick_DelayTicks(1U);ret = LPSPI3_ReadWriteByte(addr);SysTick_DelayTicks(1U);ret = LPSPI3_ReadWriteByte(0xff);SysTick_DelayTicks(1U);GPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 1U);return ret;}
uint8_t max31685_WriteRegister8(uint8_t addr, uint8_t data)
{uint8_t ret;GPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 1U);SysTick_DelayTicks(1U);GPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 0U);SysTick_DelayTicks(1U);ret = LPSPI3_ReadWriteByte(addr | 0x80);SysTick_DelayTicks(1U);ret = LPSPI3_ReadWriteByte(data);SysTick_DelayTicks(1U);GPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 1U);return ret;
}
void max31865_Init(void)
{uint8_t ret; //for testGPIO_PinWrite(BOARD_USER_SPI_CS0, BOARD_USER_SPI_CS0_PIN, 1U);SysTick_DelayTicks(10U);//BIAS ON,自动,三线,50Hzmax31685_WriteRegister8(MAX31856_CONFIG_REG, MAX31856_CONFIG_BIAS | MAX31856_CONFIG_MODEAUTO | MAX31856_CONFIG_3WIRE | MAX31856_CONFIG_FILT50HZ);ret = max31685_ReadRegister8(MAX31856_CONFIG_REG);
}
uint8_t max31865_ReadFault(void)
{}void max31865_ClearFault(void)
{}void max31865_Config(uint8_t reg, uint8_t cfgValue)
{}uint16_t max31865_ReadRTD(void)
{uint16_t rtd = 0;rtd = max31685_ReadRegister8(MAX31856_RTDMSB_REG) << 8;rtd |= max31685_ReadRegister8(MAX31856_RTDLSB_REG);rtd = rtd >> 1;return rtd;
}

参考链接1:
https://learn.adafruit.com/adafruit-max31865-rtd-pt100-amplifier?view=all
参考链接2:
https://blog.csdn.net/x1131230123/article/details/105446353?spm=1001.2014.3001.5506

max31865模块RTD测温注意事项相关推荐

  1. max31865模块 PT100测温 PT1000测温 接线说明要点说明 使用说明 程序 单片机

    文章目录 要点1 参考电阻 要点2 接线 要点3 体会 要点4 max31865模块重要细节 国内资料少,找到个非常详细的资料: https://learn.adafruit.com/adafruit ...

  2. 外设驱动库开发笔记38:RTD热电阻测温驱动

      我们已经讨论过多种温度检测方式,但我们尚未关注热电阻温度检测,但热电阻测温在工业环境中是非常常见的.尽管有很多集成的数字式的热电阻接口元器件,但这些器件不但成本较高,灵活性也大打折扣.所以我们有时 ...

  3. 领慧立芯LH32M0SXX:压力变送器,测温及称重的单片解决方案

    领慧立芯专注于高性能模拟及混合信号芯片开发设计.创始团队成员均来自知名芯片设计公司,平均设计开发经验大于十年,熟稔产品定义,设计研发,测试量产,运营销售等各个环节.公司致力于中高端数模混合产品的研发, ...

  4. 浅谈安科瑞无线测温系统在生物制药工厂中的应用

    安科瑞王丹丹acrel2021 摘要:针对生物制药生产工艺过程中的温度测量及控制,本文介绍一种适用于生物制药生产工艺过程中的温度测量及控制系统.该系统采用一线总线制的集成温度变送,嵌入式微电脑.锂电池 ...

  5. 新款智能测温手环制作方案

    随着智能佩戴式设备技术的发展,智能手环在人们生活中的应用越来越普遍,智能手环所能提供的功能也越来越多,例如心率测量.体温测量.血压检测.心电信号检测.微处理器.显示模块和扬声器,心率测量.体温测量.血 ...

  6. Arduino + RS485测温装置

    Arduino + RS485测温装置 因为项目需要,在网上购买了一款T10S-B-HW RS485红外线测温变送器. 参数如下: 额定电压 DC5V~DC12V 探头工作温度 -40-125℃ 测量 ...

  7. MAX31865模块的使用-基于ZigBee_CC2530芯片 PT100测温

    前言   网络上关于ZigBee和MAX31865的相关资料较少,对于如何在CC2530上实现对PT100温度数据的读取的资料更是几乎没有.因此本文对MAX31865芯片和模块的使用进行简要介绍,并提 ...

  8. MAX31865模块PT100两线制测温

    项目场景: 采用MAX31865芯片读取PT100测温,遇到的问题和步骤记录,采用的STM32F405 硬件SPI1读取温度.本次使用的两线制,四线制也是通用的.主要修改里边参数. 问题描述: 1,读 ...

  9. MLX90640 红外热成像仪测温传感器模块开发笔记(七)

    现在自己在做红外成像仪的越来越多了,两年前有个井下机电设备运行状态的科研项目,当时使用了 AMG8833(8*8 像素),科研毕竟就是科研,后来也没有听说成果得到应用的消息, 我想也是, 8*8 能干 ...

最新文章

  1. 抵御「黄貂鱼」攻击,谷歌使出禁用2G「大招」
  2. springEL表达式
  3. mysql创建新表失败_MySQL创建表失败的问题
  4. 搜索引擎爬虫蜘蛛的UserAgent收集
  5. python桌面开发吐血_Python3环境(Windows10)单独配置Spyder——记录我的吐血之路...
  6. 实训09.09:简单的彩票系统(注册信息)
  7. 用JS写了一个模拟串行加法器
  8. FFmepg 多线程解码历程
  9. 偶然发现SQL2005中文版里有vs2005中文安装包
  10. python提高——闭包、装饰器
  11. linux下命令行安装oracle 11g数据库
  12. 职场感悟.Video.人生各自精彩,谁说人生是一场马拉松的?
  13. 小型电话薄管理系统(Mysql数据库)
  14. 悉尼大学教授陶大程加入京东,出任京东探索研究院院长
  15. 90-95年CPU功耗感知调度研究
  16. 声音传感器模块的改进
  17. 2022-2027年中国激光雷达行业市场调研及未来发展趋势预测报告
  18. 陆军装甲兵学院计算机咋样,陆军装甲兵学院录取分数线 毕业分配+专业介绍
  19. Cordova 环境搭建+打包Android APK
  20. UDF函数在Hive中的使用

热门文章

  1. SpringBoot使用GeoHash分页查询附近的人:RedisTemplate+GeoHash+Lua
  2. 【Windows】文件批量重命名及后缀批量修改
  3. Excel汉字转拼音并提取首字母
  4. Keil MDK使用第16篇---call stack +locals 调用堆栈值
  5. hdu-2201 熊猫阿波的故事
  6. 聚焦企业安全核心问题 WOT技术峰会再扬风帆
  7. 【开发教程1】人形街舞机器人-套件检测教程
  8. Snakemake教程-01基础部分
  9. 拙作《设计模式从入门到精通》出版留念
  10. 周期信号的傅里叶级数展开分析(利用MATLAB)