MAX31865_ATY.h 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /**
  2. * @file MAX31865_ATY.h
  3. *
  4. * @param Project DEVICE_DRIVER_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. struct MAX31865_ATY_Dev{
  32. void (*nssSet)(uint8_t level);
  33. uint8_t (*spiProcess)(uint8_t* data_t, uint16_t len, uint8_t rw);
  34. uint8_t initFlag;
  35. uint8_t bias; // Bias on (1) or off (0)
  36. uint8_t autoConvert; // Auto conversion enabled (1) or disabled (0)
  37. uint8_t rtdWires; // RTD wire count (2, 3, 4)
  38. uint8_t faultControl;
  39. uint8_t filter50Hz; // Filter 50Hz (1) or 60Hz (0)
  40. float rtdNominal; // RTD nominal resistance (typically 100.0 ohm for PT100)
  41. float refResistor; // Reference resistor value (typically 430.0 ohm for PT100)
  42. uint16_t rtdValue;
  43. uint8_t faultStatus;
  44. uint8_t lock;
  45. };
  46. // MAX31865 Register Addresses
  47. #define MAX31865_REG_CONFIG 0x00
  48. #define MAX31865_REG_RTD_MSB 0x01
  49. #define MAX31865_REG_RTD_LSB 0x02
  50. #define MAX31865_REG_HFAULT_MSB 0x03
  51. #define MAX31865_REG_HFAULT_LSB 0x04
  52. #define MAX31865_REG_LFAULT_MSB 0x05
  53. #define MAX31865_REG_LFAULT_LSB 0x06
  54. #define MAX31865_REG_FAULT_STATUS 0x07
  55. // Configuration Register Bit Definitions
  56. #define MAX31865_CONFIG_BIAS 0x80
  57. #define MAX31865_CONFIG_MODEAUTO 0x40
  58. #define MAX31865_CONFIG_1SHOT 0x20
  59. #define MAX31865_CONFIG_3WIRE 0x10
  60. #define MAX31865_CONFIG_FAULTCTR 0x04
  61. #define MAX31865_CONFIG_FAULTSTAT 0x02
  62. #define MAX31865_CONFIG_FILT50HZ 0x01
  63. // Fault Status Register Bit Definitions
  64. #define MAX31865_FAULT_HIGH_THRESH 0x80
  65. #define MAX31865_FAULT_LOW_THRESH 0x40
  66. #define MAX31865_FAULT_REFIN_HIGH 0x20
  67. #define MAX31865_FAULT_REFIN_LOW 0x10
  68. #define MAX31865_FAULT_RTDIN_LOW 0x08
  69. #define MAX31865_FAULT_OVUV 0x04
  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 *********************************/