/**
* @file MAX31865_ATY.h
*
* @param Project DEVICE_GENERAL_ATY_LIB
*
* @author ATY
*
* @copyright
* - Copyright 2017 - 2026 MZ-ATY
* - This code follows:
* - MZ-ATY Various Contents Joint Statement -
*
* https://mengze.top/MZ-ATY_VCJS
* - CC 4.0 BY-NC-SA -
*
* https://creativecommons.org/licenses/by-nc-sa/4.0/
* - Your use will be deemed to have accepted the terms of this statement.
*
* @brief functions of MAX31865 platinum resistance temperature detector for C platform
*
* @version
* - 1_01_251216 > ATY
* -# Preliminary version, first Release
********************************************************************************
*/
#ifndef __MAX31865_ATY_H
#define __MAX31865_ATY_H
#include "INCLUDE_ATY.h"
/******************************* For user *************************************/
/******************************************************************************/
// MAX31865 Register Addresses
#define MAX31865_REG_CONFIG 0x00
#define MAX31865_REG_RTD_MSB 0x01
#define MAX31865_REG_RTD_LSB 0x02
#define MAX31865_REG_HFAULT_MSB 0x03
#define MAX31865_REG_HFAULT_LSB 0x04
#define MAX31865_REG_LFAULT_MSB 0x05
#define MAX31865_REG_LFAULT_LSB 0x06
#define MAX31865_REG_FAULT_STATUS 0x07
// Configuration Register Bit Definitions
#define MAX31865_CONFIG_BIAS 0x80
#define MAX31865_CONFIG_MODEAUTO 0x40
#define MAX31865_CONFIG_1SHOT 0x20
#define MAX31865_CONFIG_3WIRE 0x10
#define MAX31865_CONFIG_FAULTCTR 0x04
#define MAX31865_CONFIG_FAULTSTAT 0x02
#define MAX31865_CONFIG_FILT50HZ 0x01
// Fault Status Register Bit Definitions
#define MAX31865_FAULT_HIGH_THRESH 0x80
#define MAX31865_FAULT_LOW_THRESH 0x40
#define MAX31865_FAULT_REFIN_HIGH 0x20
#define MAX31865_FAULT_REFIN_LOW 0x10
#define MAX31865_FAULT_RTDIN_LOW 0x08
#define MAX31865_FAULT_OVUV 0x04
struct MAX31865_ATY_Dev{
void (*nssSet)(uint8_t level);
uint8_t (*spiProcess)(uint8_t* data_t, uint16_t len, uint8_t rw);
uint8_t rtdWires; // RTD wire count (2, 3, 4)
uint8_t filter50Hz; // Filter 50Hz (1) or 60Hz (0)
uint8_t bias; // Bias on (1) or off (0)
uint8_t autoConvert; // Auto conversion enabled (1) or disabled (0)
uint8_t faultControl;
float rtdNominal; // RTD nominal resistance (typically 100.0 ohm for PT100)
float refResistor; // Reference resistor value (typically 430.0 ohm for PT100)
uint8_t initFlag;
uint16_t rtdValue;
uint8_t faultStatus;
uint8_t lock;
};
uint8_t MAX31865_Init(struct MAX31865_ATY_Dev* dev);
uint8_t MAX31865_ReadConfig(struct MAX31865_ATY_Dev* dev);
uint8_t MAX31865_ReadRTD(struct MAX31865_ATY_Dev* dev);
uint8_t MAX31865_ReadFault(struct MAX31865_ATY_Dev* dev);
uint8_t MAX31865_ClearFaults(struct MAX31865_ATY_Dev* dev);
uint8_t MAX31865_OneShot(struct MAX31865_ATY_Dev* dev);
float MAX31865_CalculateResistance(struct MAX31865_ATY_Dev* dev, uint16_t rtd);
float MAX31865_CalculateTemperature(struct MAX31865_ATY_Dev* dev, uint16_t rtd);
#endif /* __MAX31865_ATY_H */
/******************************** End Of File *********************************/