Ignore:
Timestamp:
Sep 8, 2025, 6:57:30 PM (7 weeks ago)
Author:
f.jahn
Message:
  • Bug in ADC Kalibrierung (STM32 ADC Strom) behoben
  • DMA Buffer für ADC 1 und ADC wird vor Überschreibung während bearbeitung geschützt, indem Datenübertragung nur einmalig erfolgt und erst nach Auswertung wieder gestartet wird
  • RS485Modbus: Timeout Zeit wird für Baudraten >19200 korrekt berechnet
  • Hardware ID geändert
  • Separates Register für "Batterie Empty detection mode" auf Adresse 92 angelegt
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/fw_g473rct/SES/src/eeprom.c

    r25 r26  
    44#include "stdio.h"
    55#include "math.h"
     6#include "modbus.h"
    67
    78#define CONCAT(a, b) CONCAT_INNER(a, b)                                                                                 // These three macros
     
    5758  uint32_t        currentGain;
    5859
     60  int32_t         currentOffsetFast;
     61  uint32_t        currentGainFast;
     62
    5963  int64_t         mAsCounter;
    6064  int32_t         detectedCapacity;
     
    97101  uint16_t        cefW;
    98102
    99 
    100103} eeprom_data_t;
    101104
     
    136139
    137140// Data to store reated defines
    138 //#define SIZEOF_DEFAULT_EEPROM_DATA                (sizeof(eeprom_new_data_t))
     141//#define SIZEOF_DEFAULT_EEPROM_DATA              (sizeof(eeprom_new_data_t))
    139142#define SIZEOF_CHANGED_EEPROM_DATA                (sizeof(eeprom_data_t))
    140143#define SIZEOF_DEVICE_INFO                        (sizeof(device_info_t))
     
    156159static uint32_t GetPage(uint32_t Address);
    157160static HAL_StatusTypeDef getEEPROMData(uint32_t address, uint8_t * data, uint32_t len);
    158 
    159161void EEPROM_Read (uint16_t page, uint16_t offset, uint8_t *data, uint16_t size);
    160162void EEPROM_Write (uint16_t page, uint16_t offset, uint8_t *data, uint16_t size);
     
    162164
    163165
    164 
    165166// muss modulo 8 noch hinzufügen wg 8 byte alignement
    166167static uint8_t eepromData[SIZE_OF_DATA_TO_STORE];
     
    174175
    175176        /* baudrate             */                                                                                                              19200,                  // uint32_t   baudrate;
    176         /* parityMode   */                                                                                                              0,                              // uint16_t   parityMode;
     177        /* parityMode   */                                                                                                              MODBUS_UART_PARITY_EVEN,  // uint16_t   parityMode;
    177178        /* stopBits             */                                                                                                              1,                              // uint16_t   stopBits;
    178179        /* slave_adress */                                                                                                              1,                              // uint16_t   slave_adress;
     
    202203        /* currentGain    */                                                                                                    1000000,                //uint32_t  currentGain;
    203204
     205        /* currentOffsetFast  */                                                                                                0,                              //int32_t   currentOffset;
     206        /* currentGainFast  */                                                                                                  1000000,                //uint32_t  currentGain;
     207
    204208        /* mAsCounter           */                                                                                                      0,                              // mAsCounter
    205209        /* detectedCapacity     */                                                                                                      -1,                             // detectedCapacity
     
    212216        /* cef                                          */                                                                                      99,                             // cef
    213217        /* peukert                                      */                                                                                      105,                    // peukert
    214         /* cellCapacity                         */                                                                                      100000,                 // cell Capacity in mAh
    215         /* cellEnergy                           */                                                                                      2640000,                // cell energy in mWh
    216         /* iBatFull                                     */                                                                                      10,                             // I-batt full 4% 4A bei 100Ah akku
     218        /* cellCapacity                         */                                                                                      160000,                 // cell Capacity in mAh
     219        /* cellEnergy                           */                                                                                      2048000,                // cell energy in mWh
     220        /* iBatFull                                     */                                                                                      10,                             // I-batt full 10%, 10A bei 100Ah akku
    217221        /* tBatFull                                     */                                                                                      2,                              // t-batt full 2 Sekunden
    218         /* uBatFull                                     */                                                                                      14000,                  // 14Volt Ubatt full
    219         /* uBatEmpty                            */                                                                                      12500,                  // 11,312V Ubatt Empty
     222        /* uBatFull                                     */                                                                                      0,                              // 14V olt Ubatt full, Neu: Bei 0: Erkung von Lipro LVP als 0%
     223        /* uBatEmpty                            */                                                                                      -1,                             // 11,312V Ubatt Empty
    220224        /* socCalcMode                          */                                                                                      1,                              // SoC calculation mode: 0(default)
    221225        /* cellRatedDischargeTime       */                                                                                      2,                              // cell rated current discharge time [C/x]. For example, if 40Ah cell is rated as 0.5c, then rated discharge time is 2
     
    223227        /* lvpStart     */                                                                                                                      12000,                  // uint16_t lvpStart; Spannung ab der die LOW Voltage Protection aktiv wird in mV
    224228        /* lvpStop      */                                                                                                                      12500,                  // uint16_t lvpStop; Spannung ab der die LOW Voltage Protection wieder inaktiv wird
    225         /* ovpStart     */                                                                                                                      15000,                  // uint16_t  ovpStart; Spannung ab der die OVER Voltage Protection aktiv wird in mV
     229        /* ovpStart     */                                                                                                                      14800,                  // uint16_t  ovpStart; Spannung ab der die OVER Voltage Protection aktiv wird in mV
    226230        /* ovpStop      */                                                                                                                      14000,                  // uint16_t  ovpStop; Spannung ab der die OVER Voltage Protection wieder inaktiv wird
    227231
     
    238242#error No valid device type
    239243#endif
    240         /* chargeStopHighTemperatureStart       */                                                                      7500,                   // 80°C int16_t chargeStopHighTemperatureStart; Abschalttemperatur Ladung wegen zu hoher Temperatur
    241         /* chargeStopHighTemperatureStop        */                                                                      7000,                   // 75°C int16_t chargeStopHighTemperatureStop;  Wiedereinschalttemperatur
    242         /* chargeStopLowTemperatureStart        */                                                                      -3500,                  // -35°C int16_t chargeStopLowTemperatureStart; Abschalttemperatur Ladung wegen zu niedriger Temperatur
    243         /* chargeStopLowTemperatureStop         */                                                                      -3000,                  // -30°C int16_t chargeStopLowTemperatureStop; Wiedereinschalttemperatur
    244         /* dischargeStopHighTemperatureStart*/                                                                  7500,                   // 80°C int16_t dischargeStopHighTemperatureStart; Abschalttemperatur Entladung wegen zu hoher Temperatur
    245         /* dischargeStopHighTemperatureStop     */                                                                      7000,                   // 75°C int16_t dischargeStopHighTemperatureStop; Wiedereinschalttemperatur
     244        /* chargeStopHighTemperatureStart       */                                                                      6000,                   // 80°C int16_t chargeStopHighTemperatureStart; Abschalttemperatur Ladung wegen zu hoher Temperatur
     245        /* chargeStopHighTemperatureStop        */                                                                      5500,                   // 75°C int16_t chargeStopHighTemperatureStop;  Wiedereinschalttemperatur
     246        /* chargeStopLowTemperatureStart        */                                                                      -3000,                  // -35°C int16_t chargeStopLowTemperatureStart; Abschalttemperatur Ladung wegen zu niedriger Temperatur
     247        /* chargeStopLowTemperatureStop         */                                                                      -2500,                  // -30°C int16_t chargeStopLowTemperatureStop; Wiedereinschalttemperatur
     248        /* dischargeStopHighTemperatureStart*/                                                                  6000,                   // 80°C int16_t dischargeStopHighTemperatureStart; Abschalttemperatur Entladung wegen zu hoher Temperatur
     249        /* dischargeStopHighTemperatureStop     */                                                                      5500,                   // 75°C int16_t dischargeStopHighTemperatureStop; Wiedereinschalttemperatur
    246250        /* dischargeStopLowTemperatureStart     */                                                                      -3500,                  // -35°C int16_t dischargeStopLowTemperatureStart; Abschalttemperatur EntLadung wegen zu niedriger Temperatur
    247251        /* dischargeStopLowTemperatureStop      */                                                                      -3000,                  // -30°C int16_t dischargeStopLowTemperatureStop; Wiedereinschalttemperatur
     
    330334  dataToStore->changedData.currentGain                                                                                          = defaultEepromData.currentGain;
    331335
     336  dataToStore->changedData.currentOffsetFast                                                                            = defaultEepromData.currentOffsetFast;
     337  dataToStore->changedData.currentGainFast                                                                                      = defaultEepromData.currentGainFast;
     338
    332339  // AH Counter Parameter
    333340  dataToStore->changedData.cef                                                                                                          = defaultEepromData.cef;
     
    403410
    404411  // Offset und Gain
    405   dataToStore->changedData.currentOffset                                                                                        = data->s.parameter.batteryCurrentOffset;
     412 
    406413  dataToStore->changedData.batteryCurrentOffsetRefTemperatureShunt                                      = data->s.parameter.batteryCurrentOffsetRefTemperatureShunt;
    407414  dataToStore->changedData.batteryCurrentOffsetRefTemperatureChip                                       = data->s.parameter.batteryCurrentOffsetRefTemperatureChip;
     
    411418  dataToStore->changedData.batteryCurrentOffsetTemperatureCalibrationTemperature        = data->s.parameter.batteryCurrentOffsetTemperatureCalibrationTemperature;
    412419  dataToStore->changedData.batteryCurrentOffsetTemperatureCompensationFactor            = data->s.parameter.batteryCurrentOffsetTemperatureCompensationFactor;
     420  dataToStore->changedData.currentOffset                                                                                        = data->s.parameter.batteryCurrentOffset;
    413421  dataToStore->changedData.currentGain                                                                                          = data->s.parameter.batteryCurrentGainCorrectionFaktor;
     422  dataToStore->changedData.currentOffsetFast                                                                            = data->s.parameter.batteryCurrentOffsetFast;
     423  dataToStore->changedData.currentGainFast                                                                                      = data->s.parameter.batteryCurrentGainCorrectionFaktorFast;
     424 
    414425  dataToStore->changedData.batteryCurrentGainRefTempShunt                                                       = data->s.parameter.batteryCurrentGainRefTempShunt;
    415426  dataToStore->changedData.batteryCurrentGainRefTempChip                                                        = data->s.parameter.batteryCurrentGainRefTempChip;
     
    520531  dataToStore->changedData.currentOffset = data->s.parameter.batteryCurrentOffset;
    521532  dataToStore->changedData.currentGain = data->s.parameter.batteryCurrentGainCorrectionFaktor;
     533
     534  dataToStore->changedData.currentOffsetFast = data->s.parameter.batteryCurrentOffsetFast;
     535  dataToStore->changedData.currentGainFast = data->s.parameter.batteryCurrentGainCorrectionFaktorFast;
     536
    522537
    523538  // AH COUNTER Einstellungen
     
    616631  data->s.parameter.batteryCurrentGainCorrectionFaktor                                                  = dataToStore->changedData.currentGain;
    617632
     633  data->s.parameter.batteryCurrentOffsetFast                                                                    = dataToStore->changedData.currentOffsetFast;
     634  data->s.parameter.batteryCurrentGainCorrectionFaktorFast                                              = dataToStore->changedData.currentGainFast;
     635
    618636  //Einstellungenm für AH counter
    619637  data->s.parameter.cef                                                                                                                 = dataToStore ->changedData.cef;
Note: See TracChangeset for help on using the changeset viewer.