Changeset 55 for trunk/fw_g473rct/SES/src/outputs.c
- Timestamp:
- Apr 1, 2026, 9:33:58 AM (5 weeks ago)
- File:
-
- 1 edited
-
trunk/fw_g473rct/SES/src/outputs.c (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fw_g473rct/SES/src/outputs.c
r38 r55 45 45 } 46 46 47 48 49 void OUTPUTS_OverwriteChargeCtrl_ChargeEnabled(void) 50 { 51 GPIO_InitTypeDef GPIO_InitStruct = {0}; 52 GPIO_InitStruct.Pin = OVERWRITE_CHARGE_CTRL_Pin; 53 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 54 GPIO_InitStruct.Pull = GPIO_NOPULL; 55 HAL_GPIO_Init(OVERWRITE_CHARGE_CTRL_GPIO_Port, &GPIO_InitStruct); 56 HAL_GPIO_WritePin(OVERWRITE_CHARGE_CTRL_GPIO_Port, OVERWRITE_CHARGE_CTRL_Pin, OUTPUTS_CHARGE_ALLOWED); 57 58 59 } 60 61 62 void OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(void) 63 { 64 GPIO_InitTypeDef GPIO_InitStruct = {0}; 65 GPIO_InitStruct.Pin = OVERWRITE_CHARGE_CTRL_Pin; 66 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 67 GPIO_InitStruct.Pull = GPIO_NOPULL; 68 HAL_GPIO_Init(OVERWRITE_CHARGE_CTRL_GPIO_Port, &GPIO_InitStruct); 69 70 HAL_GPIO_WritePin(OVERWRITE_CHARGE_CTRL_GPIO_Port, OVERWRITE_CHARGE_CTRL_Pin, OUTPUTS_CHARGE_NOT_ALLOWED); 71 72 73 } 74 75 76 void OUTPUTS_OverwriteChargeCtrl_Disabled(void) 77 { 78 GPIO_InitTypeDef GPIO_InitStruct = {0}; 79 GPIO_InitStruct.Pin = OVERWRITE_CHARGE_CTRL_Pin; 80 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 81 GPIO_InitStruct.Pull = GPIO_NOPULL; 82 HAL_GPIO_Init(OVERWRITE_CHARGE_CTRL_GPIO_Port, &GPIO_InitStruct); 83 84 85 } 86 87 88 void OUTPUTS_OverwriteDischargeCtrl_DischargeEnabled(void) 89 { 90 GPIO_InitTypeDef GPIO_InitStruct = {0}; 91 GPIO_InitStruct.Pin = OVERWRITE_DISCHARGE_CTRL_Pin; 92 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 93 GPIO_InitStruct.Pull = GPIO_NOPULL; 94 HAL_GPIO_Init(OVERWRITE_DISCHARGE_CTRL_GPIO_Port, &GPIO_InitStruct); 95 HAL_GPIO_WritePin(OVERWRITE_DISCHARGE_CTRL_GPIO_Port, OVERWRITE_DISCHARGE_CTRL_Pin, OUTPUTS_DISCHARGE_ALLOWED); 96 97 98 } 99 100 101 void OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(void) 102 { 103 GPIO_InitTypeDef GPIO_InitStruct = {0}; 104 GPIO_InitStruct.Pin = OVERWRITE_DISCHARGE_CTRL_Pin; 105 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 106 GPIO_InitStruct.Pull = GPIO_NOPULL; 107 HAL_GPIO_Init(OVERWRITE_DISCHARGE_CTRL_GPIO_Port, &GPIO_InitStruct); 108 109 HAL_GPIO_WritePin(OVERWRITE_DISCHARGE_CTRL_GPIO_Port, OVERWRITE_DISCHARGE_CTRL_Pin, OUTPUTS_CHARGE_NOT_ALLOWED); 110 111 112 } 113 114 115 void OUTPUTS_OverwriteDischargeCtrl_Disabled(void) 116 { 117 GPIO_InitTypeDef GPIO_InitStruct = {0}; 118 GPIO_InitStruct.Pin = OVERWRITE_DISCHARGE_CTRL_Pin; 119 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 120 GPIO_InitStruct.Pull = GPIO_NOPULL; 121 HAL_GPIO_Init(OVERWRITE_DISCHARGE_CTRL_GPIO_Port, &GPIO_InitStruct); 122 123 124 } 125 47 126 /* 48 127 * @brief Prüfen ob LVP Signal abgeschaltet werden muss … … 69 148 printf("OUTPUTS_LVP_BATTERY_UNDERVOLTAGE\n"); 70 149 sys_data.s.values.lvpState = OUTPUTS_LVP_BATTERY_UNDERVOLTAGE; 71 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);150 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 72 151 } 73 152 else if(sys_data.s.values.batteryCurrent < ((int32_t)sys_data.s.parameter.loadCurrentLimit*1000)) … … 75 154 printf("OUTPUTS_LVP_OVERCURRENT\n"); 76 155 sys_data.s.values.lvpState = OUTPUTS_LVP_OVERCURRENT; 77 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);156 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 78 157 } 79 158 else if(sys_data.s.values.shuntTemperature > sys_data.s.parameter.dischargeStopHighTemperatureStart) … … 81 160 printf("OUTPUTS_LVP_SHUNT_OVERTEMPERATURE\n"); 82 161 sys_data.s.values.lvpState = OUTPUTS_LVP_SHUNT_OVERTEMPERATURE; 83 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);162 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 84 163 } 85 164 else if(sys_data.s.values.chipTemperature > sys_data.s.parameter.dischargeStopHighTemperatureStart) … … 87 166 printf("OUTPUTS_LVP_CHIP_OVERTEMPERATURE\n"); 88 167 sys_data.s.values.lvpState = OUTPUTS_LVP_CHIP_OVERTEMPERATURE; 89 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);168 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 90 169 } 91 170 else if(sys_data.s.values.shuntTemperature < sys_data.s.parameter.dischargeStopLowTemperatureStart) … … 93 172 printf("OUTPUTS_LVP_SHUNT_UNDERTEMPERATURE\n"); 94 173 sys_data.s.values.lvpState = OUTPUTS_LVP_SHUNT_UNDERTEMPERATURE; 95 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);174 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 96 175 } 97 176 else if(sys_data.s.values.chipTemperature < sys_data.s.parameter.dischargeStopLowTemperatureStart) … … 99 178 printf("OUTPUTS_LVP_CHIP_OVERTEMPERATURE\n"); 100 179 sys_data.s.values.lvpState = OUTPUTS_LVP_CHIP_UNDERTEMPERATURE; 101 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);180 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 102 181 } 103 182 } … … 123 202 printf("OUTPUT LVP OK\n"); 124 203 sys_data.s.values.lvpState = OUTPUTS_LVP_OK; 125 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_ALLOWED);204 OUTPUTS_OverwriteDischargeCtrl_Disabled(); 126 205 } 127 206 } … … 129 208 else if (sys_data.s.parameter.lvpMode == OUTPUTS_LVP_MODE_MANUAL_ON) 130 209 { 131 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_ALLOWED);210 OUTPUTS_OverwriteDischargeCtrl_DischargeEnabled(); 132 211 } 133 212 else if (sys_data.s.parameter.lvpMode == OUTPUTS_LVP_MODE_MANUAL_OFF) 134 213 { 135 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED); 136 } 137 else HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED); 214 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 215 } 216 else 217 { 218 OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled(); 219 } 138 220 139 221 lastMode = sys_data.s.parameter.lvpMode; … … 164 246 printf("OUTPUTS_OVP_BATTERY_OVERVOLTAGE\n"); 165 247 sys_data.s.values.ovpState = OUTPUTS_OVP_BATTERY_OVERVOLTAGE; 166 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);248 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 167 249 } 168 250 else if(sys_data.s.values.batteryCurrent > ((int32_t) sys_data.s.parameter.chargeCurrentLimit * 1000)) … … 170 252 printf("OUTPUTS_OVP_OVERCURRENT\n"); 171 253 sys_data.s.values.ovpState = OUTPUTS_OVP_OVERCURRENT; 172 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);254 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 173 255 } 174 256 else if(sys_data.s.values.shuntTemperature > sys_data.s.parameter.chargeStopHighTemperatureStart) … … 176 258 printf("OUTPUTS_OVP_SHUNT_OVERTEMPERATURE\n"); 177 259 sys_data.s.values.ovpState = OUTPUTS_OVP_SHUNT_OVERTEMPERATURE; 178 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);260 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 179 261 } 180 262 else if(sys_data.s.values.chipTemperature > sys_data.s.parameter.chargeStopHighTemperatureStart) … … 182 264 printf("OUTPUTS_OVP_CHIP_OVERTEMPERATURE\n"); 183 265 sys_data.s.values.ovpState = OUTPUTS_OVP_CHIP_OVERTEMPERATURE; 184 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);266 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 185 267 } 186 268 else if(sys_data.s.values.shuntTemperature < sys_data.s.parameter.chargeStopLowTemperatureStart) … … 188 270 printf("OUTPUTS_OVP_SHUNT_UNDERTEMPERATURE\n"); 189 271 sys_data.s.values.ovpState = OUTPUTS_OVP_SHUNT_UNDERTEMPERATURE; 190 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);272 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 191 273 } 192 274 else if(sys_data.s.values.chipTemperature < sys_data.s.parameter.chargeStopLowTemperatureStart) … … 194 276 printf("OUTPUTS_OVP_CHIP_UNDETEMPERATURE\n"); 195 277 sys_data.s.values.ovpState = OUTPUTS_OVP_CHIP_UNDERTEMPERATURE; 196 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);278 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 197 279 } 198 280 } … … 213 295 printf("OUTPUT OVP OK\n"); 214 296 sys_data.s.values.ovpState = OUTPUTS_OVP_OK; 215 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_ALLOWED);297 OUTPUTS_OverwriteChargeCtrl_Disabled(); // externer steuerung 216 298 } 217 299 } … … 219 301 else if (sys_data.s.parameter.ovpMode == OUTPUTS_OVP_MODE_MANUAL_ON) 220 302 { 221 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_ALLOWED);303 OUTPUTS_OverwriteChargeCtrl_ChargeEnabled(); //ACHTUNG: Manual On 222 304 } 223 305 else if (sys_data.s.parameter.ovpMode == OUTPUTS_OVP_MODE_MANUAL_OFF) 224 306 { 225 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED); 226 } 227 else HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED); 307 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 308 } 309 else 310 { 311 OUTPUTS_OverwriteChargeCtrl_ChargeDisabled(); 312 } 228 313 229 314 lastMode = sys_data.s.parameter.ovpMode;
Note:
See TracChangeset
for help on using the changeset viewer.
