updated eeprom.h
This commit is contained in:
		@ -5,10 +5,11 @@
 | 
			
		||||
 *      Author: Hamza
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
#include "TMP1075.h"
 | 
			
		||||
#include <eeprom.h>
 | 
			
		||||
 | 
			
		||||
// 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(
 | 
			
		||||
  if (address < 65535){
 | 
			
		||||
    status = HAL_I2C_Mem_Write(
 | 
			
		||||
      hi2c, EEPROM_I2C_ADDR,
 | 
			
		||||
      current_address, EERROM_MEMORY_ADDR_SIZE,
 | 
			
		||||
    data, sizeof(data), 100);
 | 
			
		||||
  return status;
 | 
			
		||||
      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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user