Ignore:
Timestamp:
Oct 26, 2025, 5:43:37 PM (3 days ago)
Author:
f.jahn
Message:

24V Version implementiert

Location:
trunk/firmware_v2/SES/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware_v2/SES/src/main.c

    r24 r28  
    2424#include "usart.h"
    2525#include "gpio.h"
     26#include "iwdg.h"
    2627
    2728/* Private includes ----------------------------------------------------------*/
     
    114115  MX_TIM16_Init();
    115116  MX_TIM17_Init();
     117  MX_IWDG_Init();
    116118 // MX_USART1_UART_Init();
    117119  /* USER CODE BEGIN 2 */
     
    120122  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
    121123  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
    122   HAL_Delay(1000);
     124  HAL_Delay(500);
    123125  HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_RESET);
    124126  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_RESET);
     
    161163
    162164    /* USER CODE BEGIN 3 */
     165        HAL_IWDG_Refresh(&hiwdg);
     166
     167
    163168        if (oldTimeMSTick != HAL_GetTick())
    164169    {
  • trunk/firmware_v2/SES/src/mode_secondaryprotection.c

    r24 r28  
    119119
    120120  if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
    121   {
    122     faultInput = 1;
     121  {   
     122        HAL_Delay(1); // Verzögerung 1ms damit eventuell noch zuerst durch smartPro der Strom gestoppt werden kann
     123        if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
     124        {
     125          faultInput = 1;
     126        }
     127
    123128  }
    124129  else
     
    216221static void SECONDARYPROTECTION_SM_ManualOn(void)
    217222{
     223
     224  int faultInput = 0;
     225
     226
     227  if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
     228  {   
     229        HAL_Delay(500); // Verzögerung 500ms damit eventuell noch zuerst durch smartPro der Strom gestoppt werden kann
     230        if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
     231        {
     232          faultInput = 1;
     233        }
     234
     235  }
     236  else
     237  {
     238    faultInput = 0;
     239  }
     240
     241  if (faultInput == 1)
     242  {
     243    RELAIS_ResetPuls();
     244    BUZZER_Beep(BUZZER_ON_TIME_REJECT); //Warnung
     245    LEDS_GN_Off();
     246    LEDS_RT_BlinkCode_Start(BLINK_CODE_ERROR_FAULT_INPUT, LED_RT_ON_TIME_WARN_FAULT_INPUT, LED_RT_OFF_TIME, LED_RT_OFF_TIME *5); //Fehler Anzeigen
     247    BUTTON_SetModeOff(); //Damit nicht von alleine wieder eingeschaltet wird
     248    printf("FAULT INPUT EVENT DETECTED!\n");
     249    printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
     250    smState = SECONDARYPROTECTION_ERROR;
     251  }
     252
     253
    218254  // Prüfe Wechsel in off mode
    219255  if (BUTTON_GetMode() == BUTTON_OFF)
  • trunk/firmware_v2/SES/src/mode_secondaryprotection_plus.c

    r24 r28  
    1010// - Die letzten beiden Positionen können vielleicht ungewollt sein.
    1111
     12
    1213// Hier wird Manuall On nicht erlaubt -> Extra sicher
    13 // Ansonsten wie Modus 0
     14// Ansonsten wie Modus 1
    1415
    1516
     
    3031  SECONDARYPROTECTION_OFF,
    3132  SECONDARYPROTECTION_ON,
    32  // SECONDARYPROTECTION_MANUAL_ON,
     33 // SECONDARYPROTECTION_MANUAL_ON, HIer nicht erlaubt für mehr Sicherheit
    3334  SECONDARYPROTECTION_ERROR
    3435} SECONDARYPROTECTION_state_t;
  • trunk/firmware_v2/SES/src/voltage_meas.c

    r23 r28  
    1111static uint32_t voltageDrop;
    1212
    13 #define VOLTAGE_DIVIDER_12V             6
     13
     14
     15#if defined SYSTEM_VOLTAGE_12V
     16  #define VOLTAGE_DIVIDER                       6
     17#elif defined SYSTEM_VOLTAGE_24V
     18  #define VOLTAGE_DIVIDER                       11
     19#elif defined SYSTEM_VOLTAGE_48V
     20  #define VOLTAGE_DIVIDER                       21
     21#else
     22  #error "System voltage not defined"
     23#endif
     24
     25
    1426#define VOLTAGE_DROP_U_LIMIT    90 //mV ca. 30 mV Messfehler + 60mV bei 150A
    1527#define VOLTAGE_DROP_T_LIMIT    1000
     
    2436  vuin = adcValUin * VREF;
    2537  vuin = vuin / 65635;
    26   vuin = vuin * VOLTAGE_DIVIDER_12V; //Divider für 12V Version
     38  vuin = vuin * VOLTAGE_DIVIDER; //Divider für 12V Version
    2739  voltageUin = vuin;
    2840
     
    3143  vuout = adcValUout * VREF;
    3244  vuout = vuout / 65635;
    33   vuout = vuout * VOLTAGE_DIVIDER_12V; //Divider für 12V Version
     45  vuout = vuout * VOLTAGE_DIVIDER; //Divider für 12V Version
    3446  voltageUout = vuout;
    3547 
Note: See TracChangeset for help on using the changeset viewer.