Ignore:
Timestamp:
Sep 10, 2025, 8:48:05 AM (7 weeks ago)
Author:
f.jahn
Message:

Fixing project before CubeMX regeneration.

File:
1 edited

Legend:

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

    r26 r27  
    33#include "eeprom.h"
    44#include "stdio.h"
    5 #include "math.h"
    65#include "modbus.h"
    76
     
    2019#define PAGE_SIZE 64     // in Bytes
    2120#define PAGE_NUM  4096    // number of pages
     21       
     22       
     23#define PADDRPOSITION 6 //MUST BE calculated  for every eeprom type --//int paddrposition = log(PAGE_SIZE)/log(2);
    2224
    2325/********************************************************/
     
    7678  uint16_t        uBatFull;
    7779  uint16_t        uBatEmpty;
    78   uint8_t         socCalcMode;
     80  uint16_t        socCalcMode;
    7981  uint16_t        cellRatedDischargeTime;
    8082
     
    100102  int16_t         extraDischargeStrom_mA;                                       // For example, current that consumes LiPro itself
    101103  uint16_t        cefW;
     104  int16_t         batteryEmptyDetectionMode;           
    102105
    103106} eeprom_data_t;
     
    221224        /* tBatFull                                     */                                                                                      2,                              // t-batt full 2 Sekunden
    222225        /* uBatFull                                     */                                                                                      0,                              // 14V olt Ubatt full, Neu: Bei 0: Erkung von Lipro LVP als 0%
    223         /* uBatEmpty                            */                                                                                      -1,                             // 11,312V Ubatt Empty
     226        /* uBatEmpty                            */                                                                                      11312,                          // 11,312V Ubatt Empty
    224227        /* socCalcMode                          */                                                                                      1,                              // SoC calculation mode: 0(default)
    225228        /* 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
     
    257260        /* extraDischargeStrom_mA       */                                                                                      7,                              // mA, current that LiPro consumes itself
    258261        /* cefW         */                                                                                                                      90,                             // 90% cef for Wh calculations
     262        /* Battery Empty Detection Mode*/                                                                               1,                              // Auto, from BMS
    259263       
    260264
     
    371375  dataToStore->changedData.extraDischargeStrom_mA                                                                       = defaultEepromData.extraDischargeStrom_mA;
    372376  dataToStore->changedData.cefW                                                                                                         = defaultEepromData.cefW;
     377  dataToStore->changedData.batteryEmptyDetectionMode                                                            = defaultEepromData.batteryEmptyDetectionMode;
    373378 
    374379
     
    475480  dataToStore->changedData.extraDischargeStrom_mA                                                                       = defaultEepromData.extraDischargeStrom_mA;
    476481  dataToStore->changedData.cefW                                                                                                         = defaultEepromData.cefW;
     482  dataToStore->changedData.batteryEmptyDetectionMode                                                            = defaultEepromData.batteryEmptyDetectionMode;
    477483 
    478484
     
    570576  dataToStore->changedData.extraDischargeStrom_mA = data->s.parameter.extraDischargeStrom_mA;
    571577  dataToStore->changedData.cefW = data->s.parameter.cefW;
    572  
     578  dataToStore->changedData.batteryEmptyDetectionMode = data->s.parameter.batteryEmptyDetectionMode;
     579
    573580  // Eeprom Status Infos
    574581  dataToStore->eepromState.writeCounter++;
     
    672679  data->s.parameter.extraDischargeStrom_mA                                                                              = dataToStore->changedData.extraDischargeStrom_mA;
    673680  data->s.parameter.cefW                                                                                                                = dataToStore->changedData.cefW;
     681  data->s.parameter.batteryEmptyDetectionMode                                                                   = dataToStore->changedData.batteryEmptyDetectionMode;
     682       
    674683
    675684
     
    713722void EEPROM_Read (uint16_t page, uint16_t offset, uint8_t *data, uint16_t size)
    714723{
    715         int paddrposition = log(PAGE_SIZE)/log(2);
     724        //int paddrposition = log(PAGE_SIZE)/log(2);
     725        int paddrposition = PADDRPOSITION;
    716726
    717727        uint16_t startPage = page;
     
    731741                pos += bytesremaining;
    732742        }
     743
    733744}
    734745
     
    738749
    739750        // Find out the number of bit, where the page addressing starts
    740         int paddrposition = log(PAGE_SIZE)/log(2);
     751        int paddrposition = PADDRPOSITION;
    741752
    742753        // calculate the start page and the end page
     
    758769
    759770                HAL_I2C_Mem_Write(EEPROM_I2C, EEPROM_ADDR, MemAddress, 2, &data[pos], bytesremaining, 1000);  // write the data to the EEPROM
    760 
    761771                startPage += 1;  // increment the page, so that a new page address can be selected for further write
    762772                offset=0;   // since we will be writing to a new page, so offset will be 0
Note: See TracChangeset for help on using the changeset viewer.