HAL_OPA.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*
  2. ******************************************************************************
  3. * @file HAL_OPA.h
  4. * @version V1.0.0
  5. * @date 2020
  6. * @brief Header file of OPA HAL module.
  7. ******************************************************************************
  8. */
  9. #ifndef __HAL_OPA_H__
  10. #define __HAL_OPA_H__
  11. #include "ACM32Fxx_HAL.h"
  12. /** @defgroup OPAx Index
  13. * @{
  14. */
  15. #define OPA1 (0x01)
  16. #define OPA2 (0x02)
  17. #define OPA3 (0x03)
  18. /**************** Bit definition for OPA_CR1 and OPA_CR2 register **************************/
  19. #define OPA_CSR_VINPSEL_POS (20U)
  20. #define OPA_CSR_VINPSEL_MASK (BIT23|BIT22|BIT21|BIT20)
  21. #define OPA_CSR_VINMSEL_POS (16U)
  22. #define OPA_CSR_VINMSEL_MASK (BIT19|BIT18|BIT17|BIT16)
  23. #define OPA_CSR_TRIM_HIGH_POS (9U)
  24. #define OPA_CSR_TRIM_HIGH_MASK (BIT13|BIT12|BIT11|BIT10|BIT9)
  25. #define OPA_CSR_TRIM_LOW_POS (4U)
  26. #define OPA_CSR_TRIM_LOW_MASK (BIT8|BIT7|BIT6|BIT5|BIT4)
  27. #define OPA_CSR_CAL_OUT (BIT3)
  28. #define OPA_CSR_CAL_H (BIT2)
  29. #define OPA_CSR_CAL_L (BIT1)
  30. #define OPA_CSR_EN (BIT0)
  31. /**
  32. * @brief OPA Configuration Structure definition
  33. */
  34. typedef struct
  35. {
  36. uint8_t OpaX; /*!< Specify witch opa be selected */
  37. uint8_t VinPSel; /*!< Specify the opa VINP vin p select */
  38. uint8_t VinMSel; /*!< Specify the opa VINM vin m select */
  39. uint8_t TrimEn; /*!< Specify if the opa auto trim */
  40. }OPA_InitTypeDef;
  41. /**
  42. * @brief OPA handle Structure definition
  43. */
  44. typedef struct
  45. {
  46. OPA_TypeDef *Instance; /*!< Register base address */
  47. OPA_InitTypeDef Init; /*!< OPA required parameters */
  48. } OPA_HandleTypeDef;
  49. #define OPA_CSR_VINPSEL_0 (0U)
  50. #define OPA_CSR_VINPSEL_1 (1U)
  51. #define OPA_CSR_VINMSEL_0 (0U)
  52. #define OPA_CSR_VINMSEL_1 (1U)
  53. #define OPA_CSR1_VINPSEL_PA4 (0U)
  54. #define OPA_CSR1_VINPSEL_PB6 (1U)
  55. #define OPA_CSR1_VINMSEL_PB5 (0U)
  56. #define OPA_CSR1_VINMSEL_PD5 (1U)
  57. #define OPA_CSR2_VINPSEL_PB3 (0U)
  58. #define OPA_CSR2_VINPSEL_PB4 (1U)
  59. #define OPA_CSR2_VINMSEL_PB1 (0U)
  60. #define OPA_CSR2_VINMSEL_PD4 (1U)
  61. #define OPA_CSR3_VINPSEL_PA7 (0U)
  62. #define OPA_CSR3_VINPSEL_PB2 (1U)
  63. #define OPA_CSR3_VINMSEL_PA5 (0U)
  64. #define OPA_CSR3_VINMSEL_PC4 (1U)
  65. #define OPA_CSR_TRIM_DISABLE (0U)
  66. #define OPA_CSR_TRIM_ENABLE (1U)
  67. /******************************** OPA Instances *******************************/
  68. #define IS_OPA_ALL_INSTANCE(INSTANCE) (((INSTANCE) == OPA))
  69. /******************************** OPA OPAX definition*******************************/
  70. #define IS_OPA_ALL_OPAX(_OPAX) (((_OPAX) == OPA1) || \
  71. ((_OPAX) == OPA2) || \
  72. ((_OPAX) == OPA3))
  73. /******************************** OPA VINP select definition*******************************/
  74. #define IS_OPA_ALL_VINP(VINPSEL) (((VINPSEL) == OPA_CSR_VINPSEL_0) || \
  75. ((VINPSEL) == OPA_CSR_VINPSEL_1))
  76. /******************************** OPA VINM select definition*******************************/
  77. #define IS_OPA_ALL_VINM(VINMSEL) (((VINMSEL) == OPA_CSR_VINMSEL_0) || \
  78. ((VINMSEL) == OPA_CSR_VINMSEL_1))
  79. /******************************** OPA trim enable definition*******************************/
  80. #define IS_OPA_ALL_TRIM(_TRIM) (((_TRIM) == OPA_CSR_TRIM_DISABLE) || \
  81. ((_TRIM) == OPA_CSR_TRIM_ENABLE))
  82. /* Function : HAL_OPA */
  83. void HAL_OPA_MspInit(OPA_HandleTypeDef* hopa);
  84. void HAL_OPA_MspDeInit(OPA_HandleTypeDef* hopa);
  85. HAL_StatusTypeDef HAL_OPA_Init(OPA_HandleTypeDef* hopa);
  86. HAL_StatusTypeDef HAL_OPA_DeInit(OPA_HandleTypeDef* hopa);
  87. HAL_StatusTypeDef HAL_OPA_Enable(OPA_HandleTypeDef* hopa);
  88. HAL_StatusTypeDef HAL_OPA_Disable(OPA_HandleTypeDef* hopa);
  89. #endif