From cc496b11400ecb044e80342031418c1a0b4e527b Mon Sep 17 00:00:00 2001 From: hamza Date: Thu, 11 Jul 2024 01:17:36 +0300 Subject: [PATCH] updated eeprom.h --- Core/Src/eeprom.c | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/Core/Src/eeprom.c b/Core/Src/eeprom.c index e95cc7d..842be9f 100755 --- a/Core/Src/eeprom.c +++ b/Core/Src/eeprom.c @@ -5,10 +5,11 @@ * Author: Hamza */ +#include "TMP1075.h" #include // see Datasheet for these values -#define EEPROM_I2C_ADDR 0xB0 +#define EEPROM_I2C_ADDR 0xA0 #define EEPROM_WRITE_FREQ_INACTIVE 1000 #define EEPROM_WRITE_FREQ_ACTIVE 100 #define EERROM_MEMORY_ADDR_SIZE 2 @@ -34,14 +35,17 @@ void eeprom_write_status(){ data[4] = (RELAY_BAT_SIDE_VOLTAGE >> 8); // 16 bit battery voltage data[5] = (RELAY_BAT_SIDE_VOLTAGE); data[6] = (RELAY_ESC_SIDE_VOLTAGE >> 8); // 16 bit Inverter voltage - data[7] = (RELAY_ESC_SIDE_VOLTAGE >> 8); + data[7] = (RELAY_ESC_SIDE_VOLTAGE); data[8] = (CURRENT_MEASUREMENT >> 8); // 16 bit Inverter voltage data[9] = (CURRENT_MEASUREMENT); - // data 0-23 - for (int i = 0; i < 13; i++) { - data[i+10] = ((int) module.auxVoltages[i]) >> 8; - data[i+11] = ((int) module.auxVoltages[i]); + // data 10-35 + for (int i = 10; i < 36; i+=2) { + data[i] = ((int) module.auxVoltages[i]) >> 8; + data[i+1] = ((int) module.auxVoltages[i]); + } + for (int i = 37; i < 50; i++) { + data[i] = tmp1075_temps[i]; } eeprom_write(data, current_address); current_address++; @@ -50,16 +54,26 @@ void eeprom_write_status(){ HAL_StatusTypeDef eeprom_read(uint8_t* data, uint16_t address){ HAL_StatusTypeDef status = HAL_I2C_Mem_Read( hi2c, EEPROM_I2C_ADDR, address, - 2, data, sizeof(data), 100); + 2, data, sizeof(data), 50); return status; } HAL_StatusTypeDef eeprom_write(uint8_t* data, uint16_t address){ + HAL_StatusTypeDef status = HAL_OK; HAL_GPIO_WritePin(EEPROM___WC__GPIO_Port, EEPROM___WC__Pin, GPIO_PIN_RESET); - HAL_StatusTypeDef status = HAL_I2C_Mem_Write( - hi2c, EEPROM_I2C_ADDR, - current_address, EERROM_MEMORY_ADDR_SIZE, - data, sizeof(data), 100); - return status; + if (address < 65535){ + status = HAL_I2C_Mem_Write( + hi2c, EEPROM_I2C_ADDR, + current_address, EERROM_MEMORY_ADDR_SIZE, + data, sizeof(data), 50); + current_address += sizeof(data); + } else if (address > 65535) { + status = HAL_I2C_Mem_Write( + hi2c, EEPROM_I2C_ADDR, + current_address, EERROM_MEMORY_ADDR_SIZE, + data, sizeof(data), 50); + current_address += sizeof(data); + } HAL_GPIO_WritePin(EEPROM___WC__GPIO_Port, EEPROM___WC__Pin, GPIO_PIN_SET); + return status; }