idd.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. /**
  2. ******************************************************************************
  3. * @file idd.h
  4. * @author MCD Application Team
  5. * @version V4.0.1
  6. * @date 21-July-2015
  7. * @brief This file contains all the functions prototypes for the IDD driver.
  8. ******************************************************************************
  9. * @attention
  10. *
  11. * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
  12. *
  13. * Redistribution and use in source and binary forms, with or without modification,
  14. * are permitted provided that the following conditions are met:
  15. * 1. Redistributions of source code must retain the above copyright notice,
  16. * this list of conditions and the following disclaimer.
  17. * 2. Redistributions in binary form must reproduce the above copyright notice,
  18. * this list of conditions and the following disclaimer in the documentation
  19. * and/or other materials provided with the distribution.
  20. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  21. * may be used to endorse or promote products derived from this software
  22. * without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  25. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  26. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  27. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  28. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  29. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  30. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  31. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  32. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  33. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34. *
  35. ******************************************************************************
  36. */
  37. /* Define to prevent recursive inclusion -------------------------------------*/
  38. #ifndef __IDD_H
  39. #define __IDD_H
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. /* Includes ------------------------------------------------------------------*/
  44. #include <stdint.h>
  45. /** @addtogroup BSP
  46. * @{
  47. */
  48. /** @addtogroup Components
  49. * @{
  50. */
  51. /** @addtogroup IDD
  52. * @{
  53. */
  54. /** @defgroup IDD_Exported_Types IDD Exported Types
  55. * @{
  56. */
  57. /** @defgroup IDD_Config_structure IDD Configuration structure
  58. * @{
  59. */
  60. typedef struct
  61. {
  62. uint16_t AmpliGain; /*!< Specifies ampli gain value
  63. */
  64. uint16_t VddMin; /*!< Specifies minimum MCU VDD can reach to protect MCU from reset
  65. */
  66. uint16_t Shunt0Value; /*!< Specifies value of Shunt 0 if existing
  67. */
  68. uint16_t Shunt1Value; /*!< Specifies value of Shunt 1 if existing
  69. */
  70. uint16_t Shunt2Value; /*!< Specifies value of Shunt 2 if existing
  71. */
  72. uint16_t Shunt3Value; /*!< Specifies value of Shunt 3 if existing
  73. */
  74. uint16_t Shunt4Value; /*!< Specifies value of Shunt 4 if existing
  75. */
  76. uint16_t Shunt0StabDelay; /*!< Specifies delay of Shunt 0 stabilization if existing
  77. */
  78. uint16_t Shunt1StabDelay; /*!< Specifies delay of Shunt 1 stabilization if existing
  79. */
  80. uint16_t Shunt2StabDelay; /*!< Specifies delay of Shunt 2 stabilization if existing
  81. */
  82. uint16_t Shunt3StabDelay; /*!< Specifies delay of Shunt 3 stabilization if existing
  83. */
  84. uint16_t Shunt4StabDelay; /*!< Specifies delay of Shunt 4 stabilization if existing
  85. */
  86. uint8_t ShuntNbOnBoard; /*!< Specifies number of shunts that are present on board
  87. This parameter can be a value of @ref IDD_shunt_number */
  88. uint8_t ShuntNbUsed; /*!< Specifies number of shunts used for measurement
  89. This parameter can be a value of @ref IDD_shunt_number */
  90. uint8_t VrefMeasurement; /*!< Specifies if Vref is automatically measured before each Idd measurement
  91. This parameter can be a value of @ref IDD_Vref_Measurement */
  92. uint8_t Calibration; /*!< Specifies if calibration is done before each Idd measurement
  93. */
  94. uint8_t PreDelayUnit; /*!< Specifies Pre delay unit
  95. This parameter can be a value of @ref IDD_PreDelay */
  96. uint8_t PreDelayValue; /*!< Specifies Pre delay value in selected unit
  97. */
  98. uint8_t MeasureNb; /*!< Specifies number of Measure to be performed
  99. This parameter can be a value between 1 and 256 */
  100. uint8_t DeltaDelayUnit; /*!< Specifies Delta delay unit
  101. This parameter can be a value of @ref IDD_DeltaDelay */
  102. uint8_t DeltaDelayValue; /*!< Specifies Delta delay between 2 measures
  103. value can be between 1 and 128 */
  104. }IDD_ConfigTypeDef;
  105. /**
  106. * @}
  107. */
  108. /** @defgroup IDD_Driver_structure IDD Driver structure
  109. * @{
  110. */
  111. typedef struct
  112. {
  113. void (*Init)(uint16_t);
  114. void (*DeInit)(uint16_t);
  115. uint16_t (*ReadID)(uint16_t);
  116. void (*Reset)(uint16_t);
  117. void (*LowPower)(uint16_t);
  118. void (*WakeUp)(uint16_t);
  119. void (*Start)(uint16_t);
  120. void (*Config)(uint16_t,IDD_ConfigTypeDef);
  121. void (*GetValue)(uint16_t, uint32_t *);
  122. void (*EnableIT)(uint16_t);
  123. void (*ClearIT)(uint16_t);
  124. uint8_t (*GetITStatus)(uint16_t);
  125. void (*DisableIT)(uint16_t);
  126. void (*ErrorEnableIT)(uint16_t);
  127. void (*ErrorClearIT)(uint16_t);
  128. uint8_t (*ErrorGetITStatus)(uint16_t);
  129. void (*ErrorDisableIT)(uint16_t);
  130. uint8_t (*ErrorGetSrc)(uint16_t);
  131. uint8_t (*ErrorGetCode)(uint16_t);
  132. }IDD_DrvTypeDef;
  133. /**
  134. * @}
  135. */
  136. /**
  137. * @}
  138. */
  139. /**
  140. * @}
  141. */
  142. /**
  143. * @}
  144. */
  145. /**
  146. * @}
  147. */
  148. #ifdef __cplusplus
  149. }
  150. #endif
  151. #endif /* __IDD_H */
  152. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/