MAX31865_ATY.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. * @file MAX31865_ATY.h
  3. *
  4. * @param Project DEVICE_GENERAL_ATY_LIB
  5. *
  6. * @author ATY
  7. *
  8. * @copyright
  9. * - Copyright 2017 - 2026 MZ-ATY
  10. * - This code follows:
  11. * - MZ-ATY Various Contents Joint Statement -
  12. * <a href="https://mengze.top/MZ-ATY_VCJS">
  13. * https://mengze.top/MZ-ATY_VCJS</a>
  14. * - CC 4.0 BY-NC-SA -
  15. * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  16. * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
  17. * - Your use will be deemed to have accepted the terms of this statement.
  18. *
  19. * @brief functions of MAX31865 platinum resistance temperature detector for C platform
  20. *
  21. * @version
  22. * - 1_01_251216 > ATY
  23. * -# Preliminary version, first Release
  24. ********************************************************************************
  25. */
  26. #ifndef __MAX31865_ATY_H
  27. #define __MAX31865_ATY_H
  28. #include "INCLUDE_ATY.h"
  29. /******************************* For user *************************************/
  30. /******************************************************************************/
  31. // MAX31865 Register Addresses
  32. #define MAX31865_REG_CONFIG 0x00
  33. #define MAX31865_REG_RTD_MSB 0x01
  34. #define MAX31865_REG_RTD_LSB 0x02
  35. #define MAX31865_REG_HFAULT_MSB 0x03
  36. #define MAX31865_REG_HFAULT_LSB 0x04
  37. #define MAX31865_REG_LFAULT_MSB 0x05
  38. #define MAX31865_REG_LFAULT_LSB 0x06
  39. #define MAX31865_REG_FAULT_STATUS 0x07
  40. // Configuration Register Bit Definitions
  41. #define MAX31865_CONFIG_BIAS 0x80
  42. #define MAX31865_CONFIG_MODEAUTO 0x40
  43. #define MAX31865_CONFIG_1SHOT 0x20
  44. #define MAX31865_CONFIG_3WIRE 0x10
  45. #define MAX31865_CONFIG_FAULTCTR 0x04
  46. #define MAX31865_CONFIG_FAULTSTAT 0x02
  47. #define MAX31865_CONFIG_FILT50HZ 0x01
  48. // Fault Status Register Bit Definitions
  49. #define MAX31865_FAULT_HIGH_THRESH 0x80
  50. #define MAX31865_FAULT_LOW_THRESH 0x40
  51. #define MAX31865_FAULT_REFIN_HIGH 0x20
  52. #define MAX31865_FAULT_REFIN_LOW 0x10
  53. #define MAX31865_FAULT_RTDIN_LOW 0x08
  54. #define MAX31865_FAULT_OVUV 0x04
  55. struct MAX31865_ATY_Dev{
  56. void (*nssSet)(uint8_t level);
  57. uint8_t (*spiProcess)(uint8_t* data_t, uint16_t len, uint8_t rw);
  58. uint8_t rtdWires; // RTD wire count (2, 3, 4)
  59. uint8_t filter50Hz; // Filter 50Hz (1) or 60Hz (0)
  60. uint8_t bias; // Bias on (1) or off (0)
  61. uint8_t autoConvert; // Auto conversion enabled (1) or disabled (0)
  62. uint8_t faultControl;
  63. float rtdNominal; // RTD nominal resistance (typically 100.0 ohm for PT100)
  64. float refResistor; // Reference resistor value (typically 430.0 ohm for PT100)
  65. uint8_t initFlag;
  66. uint16_t rtdValue;
  67. uint8_t faultStatus;
  68. uint8_t lock;
  69. };
  70. uint8_t MAX31865_Init(struct MAX31865_ATY_Dev* dev);
  71. uint8_t MAX31865_ReadConfig(struct MAX31865_ATY_Dev* dev);
  72. uint8_t MAX31865_ReadRTD(struct MAX31865_ATY_Dev* dev);
  73. uint8_t MAX31865_ReadFault(struct MAX31865_ATY_Dev* dev);
  74. uint8_t MAX31865_ClearFaults(struct MAX31865_ATY_Dev* dev);
  75. uint8_t MAX31865_OneShot(struct MAX31865_ATY_Dev* dev);
  76. float MAX31865_CalculateResistance(struct MAX31865_ATY_Dev* dev, uint16_t rtd);
  77. float MAX31865_CalculateTemperature(struct MAX31865_ATY_Dev* dev, uint16_t rtd);
  78. #endif /* __MAX31865_ATY_H */
  79. /******************************** End Of File *********************************/