power_management.c 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 VRF_EN_5( bool state );
  14. const PM_Handle_t PMHandle = {
  15. PM_Init,
  16. PM_DeInit,
  17. INPTRG,
  18. INPTRG_1,
  19. INPTRG_EN,
  20. VRF_EN_5
  21. };
  22. static inline void INPTRG( bool state )
  23. {
  24. HAL_GPIO_WritePin( CONFIG_PORT__INPTRG, CONFIG_PIN__INPTRG, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  25. }
  26. static inline void INPTRG_1( bool state )
  27. {
  28. HAL_GPIO_WritePin( CONFIG_PORT__INPTRG_1, CONFIG_PIN__INPTRG_1, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  29. }
  30. static inline void INPTRG_EN( bool state )
  31. {
  32. HAL_GPIO_WritePin( CONFIG_PORT__INPTRG_EN, CONFIG_PIN__INPTRG_EN, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  33. }
  34. static inline void VRF_EN_5( bool state )
  35. {
  36. HAL_GPIO_WritePin( CONFIG_PORT__5VRF_EN, CONFIG_PIN__5VRF_EN, (state)?GPIO_PIN_SET:GPIO_PIN_RESET );
  37. }
  38. static bool PM_Init()
  39. {
  40. bool bRet = true;
  41. DI();
  42. GPIO_InitTypeDef GPIO_CTRL = {0};
  43. GPIO_CTRL.Pin = CONFIG_PIN__INPTRG | CONFIG_PIN__INPTRG_1;
  44. GPIO_CTRL.Mode = GPIO_MODE_INPUT;
  45. GPIO_CTRL.Pull = GPIO_PULLUP;
  46. GPIO_CTRL.Speed = GPIO_SPEED_FREQ_MEDIUM;
  47. HAL_GPIO_Init(CONFIG_PORT__INPTRG, &GPIO_CTRL);
  48. GPIO_InitTypeDef GPIO_CTRL_PWR = {0};
  49. GPIO_CTRL_PWR.Pin = CONFIG_PIN__5VRF_EN | CONFIG_PIN__INPTRG_EN;
  50. GPIO_CTRL_PWR.Mode = GPIO_MODE_OUTPUT_PP;
  51. GPIO_CTRL_PWR.Pull = GPIO_PULLUP;
  52. GPIO_CTRL_PWR.Speed = GPIO_SPEED_FREQ_MEDIUM;
  53. HAL_GPIO_Init(CONFIG_PORT__5VRF_EN, &GPIO_CTRL_PWR);
  54. VRF_EN_5(false); // Âûêëþ÷àåì ïèòàíèå íà ïëàòó óïðàâëåíèÿ (FPGA)
  55. INPTRG_EN(true); // Çàïðåò òðèããåðà îò VNA
  56. //VRF_EN_5(true); // Âêëþ÷àåì ïèòàíèå íà ïëàòó óïðàâëåíèÿ (FPGA) ïîñëå çàïðåòà ðàáîòû òðèããåðîâ
  57. EI();
  58. // Ïîñëå èíèöèàëèçàöèè íåîáõîäèìà çàäåðæêà 0.5 ñåêóíä!!!
  59. return bRet;
  60. }
  61. static void PM_DeInit()
  62. {
  63. }