power_management.c 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "stm32l1xx_hal.h"
  2. #include "core/csect.h"
  3. #include "core/config.h"
  4. #include "core/config_pins.h"
  5. #include "drivers/power_management/power_management.h"
  6. #include "drivers/adc/adc.h"
  7. #include "app/led/led.h"
  8. static bool PM_Init();
  9. static void PM_DeInit();
  10. static void INPTRG( bool state );
  11. static void INPTRG_1( bool state );
  12. static void INPTRG_EN( bool state );
  13. static void EXT_REG_MR( bool state );
  14. static void VRF_EN_5( bool state );
  15. const PM_Handle_t PMHandle = {
  16. PM_Init,
  17. PM_DeInit,
  18. INPTRG,
  19. INPTRG_1,
  20. INPTRG_EN,
  21. EXT_REG_MR,
  22. VRF_EN_5
  23. };
  24. static inline void INPTRG( bool state )
  25. {
  26. HAL_GPIO_WritePin( CONFIG_PORT__INPTRG, CONFIG_PIN__INPTRG, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  27. }
  28. static inline void INPTRG_1( bool state )
  29. {
  30. HAL_GPIO_WritePin( CONFIG_PORT__INPTRG_1, CONFIG_PIN__INPTRG_1, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  31. }
  32. static inline void INPTRG_EN( bool state )
  33. {
  34. HAL_GPIO_WritePin( CONFIG_PORT__INPTRG_EN, CONFIG_PIN__INPTRG_EN, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  35. }
  36. static inline void EXT_REG_MR( bool state )
  37. {
  38. HAL_GPIO_WritePin( CONFIG_PORT__EXT_REG_MR, CONFIG_PIN__EXT_REG_MR, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  39. }
  40. static inline void VRF_EN_5( bool state )
  41. {
  42. HAL_GPIO_WritePin( CONFIG_PORT__5VRF_EN, CONFIG_PIN__5VRF_EN, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  43. }
  44. static bool PM_Init()
  45. {
  46. bool bRet = true;
  47. DI();
  48. GPIO_InitTypeDef GPIO_CTRL = {0};
  49. GPIO_CTRL.Pin = CONFIG_PIN__INPTRG | CONFIG_PIN__INPTRG_1;
  50. GPIO_CTRL.Mode = GPIO_MODE_INPUT;
  51. GPIO_CTRL.Pull = GPIO_PULLUP;
  52. GPIO_CTRL.Speed = GPIO_SPEED_FREQ_MEDIUM;
  53. HAL_GPIO_Init(CONFIG_PORT__INPTRG, &GPIO_CTRL);
  54. GPIO_InitTypeDef GPIO_CTRL_PWR = {0};
  55. GPIO_CTRL_PWR.Pin = CONFIG_PIN__5VRF_EN | CONFIG_PIN__EXT_REG_MR | CONFIG_PIN__INPTRG_EN;
  56. GPIO_CTRL_PWR.Mode = GPIO_MODE_OUTPUT_PP;
  57. GPIO_CTRL_PWR.Pull = GPIO_PULLUP;
  58. GPIO_CTRL_PWR.Speed = GPIO_SPEED_FREQ_MEDIUM;
  59. HAL_GPIO_Init(CONFIG_PORT__5VRF_EN, &GPIO_CTRL_PWR);
  60. VRF_EN_5(true); // Âêëþ÷àåì ïèòàíèå íà ïëàòó óïðàâëåíèÿ (FPGA)
  61. INPTRG_EN(true); // Çàïðåò òðèããåðà îò VNA
  62. EXT_REG_MR(false); // PowerUP with active RESET signal on external shift REG
  63. EI();
  64. // Ïîñëå èíèöèàëèçàöèè íåîáõîäèìà çàäåðæêà 0.5 ñåêóíä!!!
  65. return bRet;
  66. }
  67. static void PM_DeInit()
  68. {
  69. }