AMP.c 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /********************************************************************************
  2. **** Copyright (C), 2019, Fortior Technology Co., Ltd. ****
  3. ********************************************************************************
  4. File Name : AMP.c
  5. Author : Bruce HW&RD
  6. Date : 2019-09-11
  7. Description : .C file function description
  8. Version : 1.0
  9. Function List :
  10. Record :
  11. 1.Date : 2019-09-11
  12. Author : Bruce HW&RD
  13. Modification: Created file
  14. ********************************************************************************/
  15. #include "AMP.h"
  16. #include "FU68xx_5_MCU.h"
  17. #include "Customer.h"
  18. #include <Myproject.h>
  19. void AMP_Init(void)
  20. {
  21. #if (Shunt_Resistor_Mode == Single_Resistor)
  22. {
  23. /* ----AMP 端口模拟功能设置---- */
  24. #if (HW_AMP_MODE == AMP_NOMAL) //外部放大
  25. {
  26. SetBit(P3_AN, P31); //AMP0 Pin设置为模拟模式 +
  27. SetBit(P3_AN, P30); //AMP0 Pin设置为模拟模式 -
  28. SetBit(P2_AN, P27); //AMP0 Pin设置为模拟模式 O
  29. SetBit(AMP_CR0, AMP0EN); //AMP0 Enable
  30. ClrBit(AMP_CR1, AMP0_GAIN2);
  31. ClrBit(AMP_CR1, AMP0_GAIN1);
  32. ClrBit(AMP_CR1, AMP0_GAIN0);
  33. }
  34. #else
  35. {
  36. SetBit(P3_AN, P31); //AMP0 Pin设置为模拟模式 +
  37. SetBit(P3_AN, P30); //AMP0 Pin设置为模拟模式 -
  38. SetBit(P2_AN, P27); //AMP0 Pin设置为模拟模式 O
  39. ClrBit(AMP_CR0, AMP0M_GND); // 禁止运放反向输入端内部接地
  40. SetBit(AMP_CR0, AMP0EN); //AMP0 Enable
  41. #if (HW_AMPGAIN == AMP2x)
  42. {
  43. ClrBit(AMP_CR1, AMP0_GAIN2);
  44. ClrBit(AMP_CR1, AMP0_GAIN1);
  45. SetBit(AMP_CR1, AMP0_GAIN0);
  46. }
  47. #elif (HW_AMPGAIN == AMP4x)
  48. {
  49. ClrBit(AMP_CR1, AMP0_GAIN2);
  50. SetBit(AMP_CR1, AMP0_GAIN1);
  51. ClrBit(AMP_CR1, AMP0_GAIN0);
  52. }
  53. #elif (HW_AMPGAIN == AMP8x)
  54. {
  55. ClrBit(AMP_CR1, AMP0_GAIN2);
  56. SetBit(AMP_CR1, AMP0_GAIN1);
  57. SetBit(AMP_CR1, AMP0_GAIN0);
  58. }
  59. #elif (HW_AMPGAIN == AMP16x)
  60. {
  61. SetBit(AMP_CR1, AMP0_GAIN2);
  62. ClrBit(AMP_CR1, AMP0_GAIN1);
  63. ClrBit(AMP_CR1, AMP0_GAIN0);
  64. }
  65. #endif
  66. }
  67. #endif
  68. }
  69. #else
  70. {
  71. SetBit(P1_AN, P16); //AMP1 Pin设置为模拟模式 +
  72. SetBit(P1_AN, P17); //AMP1 Pin设置为模拟模式 -
  73. SetBit(P2_AN, P20); //AMP1 Pin设置为模拟模式 O
  74. SetBit(P2_AN, P21); //AMP2 Pin设置为模拟模式 +
  75. SetBit(P2_AN, P22); //AMP2 Pin设置为模拟模式 -
  76. SetBit(P2_AN, P23); //AMP2 Pin设置为模拟模式 O
  77. ClrBit(P2_OE, P23); //P23_OE需要强制为0,禁止DA1输出至PAD
  78. SetBit(P3_AN, P31); //AMP0 Pin设置为模拟模式 +
  79. SetBit(P3_AN, P30); //AMP0 Pin设置为模拟模式 -
  80. SetBit(P2_AN, P27); //AMP0 Pin设置为模拟模式 O
  81. SetBit(AMP_CR0, AMP0EN); //AMP0 Enable
  82. SetBit(AMP_CR0, AMP1EN); //AMP1 Enable
  83. SetBit(AMP_CR0, AMP2EN); //AMP2 Enable
  84. #if (HW_AMP_MODE == AMP_NOMAL) //外部放大
  85. {
  86. ClrBit(AMP_CR1, AMP0_GAIN2);
  87. ClrBit(AMP_CR1, AMP0_GAIN1);
  88. ClrBit(AMP_CR1, AMP0_GAIN0);
  89. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  90. ClrBit(AMP_CR1, AMP_PH_GAIN1);
  91. ClrBit(AMP_CR1, AMP_PH_GAIN0);
  92. }
  93. #else
  94. {
  95. #if (HW_AMPGAIN == AMP2x)
  96. {
  97. ClrBit(AMP_CR1, AMP0_GAIN2);
  98. ClrBit(AMP_CR1, AMP0_GAIN1);
  99. SetBit(AMP_CR1, AMP0_GAIN0);
  100. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  101. ClrBit(AMP_CR1, AMP_PH_GAIN1);
  102. SetBit(AMP_CR1, AMP_PH_GAIN0);
  103. }
  104. #elif (HW_AMPGAIN == AMP4x)
  105. {
  106. ClrBit(AMP_CR1, AMP0_GAIN2);
  107. SetBit(AMP_CR1, AMP0_GAIN1);
  108. ClrBit(AMP_CR1, AMP0_GAIN0);
  109. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  110. SetBit(AMP_CR1, AMP_PH_GAIN1);
  111. ClrBit(AMP_CR1, AMP_PH_GAIN0);
  112. }
  113. #elif (HW_AMPGAIN == AMP8x)
  114. {
  115. ClrBit(AMP_CR1, AMP0_GAIN2);
  116. SetBit(AMP_CR1, AMP0_GAIN1);
  117. SetBit(AMP_CR1, AMP0_GAIN0);
  118. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  119. SetBit(AMP_CR1, AMP_PH_GAIN1);
  120. SetBit(AMP_CR1, AMP_PH_GAIN0);
  121. }
  122. #elif (HW_AMPGAIN == AMP16x)
  123. {
  124. SetBit(AMP_CR1, AMP0_GAIN2);
  125. ClrBit(AMP_CR1, AMP0_GAIN1);
  126. ClrBit(AMP_CR1, AMP0_GAIN0);
  127. SetBit(AMP_CR1, AMP_PH_GAIN2);
  128. ClrBit(AMP_CR1, AMP_PH_GAIN1);
  129. ClrBit(AMP_CR1, AMP_PH_GAIN0);
  130. }
  131. #endif
  132. }
  133. #endif
  134. }
  135. #endif
  136. // #if (PFCEnable == 1)
  137. // SetBit(P1_AN, P13 | P14 | P15);
  138. // ClrBit(P1_OE, P13);
  139. // SetBit(AMP_CR0, AMP3EN);
  140. // #endif
  141. }