updated eeprom.h
This commit is contained in:
		@ -5,10 +5,11 @@
 | 
				
			|||||||
 *      Author: Hamza
 | 
					 *      Author: Hamza
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 | 
					#include "TMP1075.h"
 | 
				
			||||||
#include <eeprom.h>
 | 
					#include <eeprom.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// see Datasheet for these values
 | 
					// 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_INACTIVE  1000   
 | 
				
			||||||
#define EEPROM_WRITE_FREQ_ACTIVE    100
 | 
					#define EEPROM_WRITE_FREQ_ACTIVE    100
 | 
				
			||||||
#define EERROM_MEMORY_ADDR_SIZE     2
 | 
					#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[4] = (RELAY_BAT_SIDE_VOLTAGE >> 8);                                          // 16 bit battery voltage
 | 
				
			||||||
  data[5] = (RELAY_BAT_SIDE_VOLTAGE);                                      
 | 
					  data[5] = (RELAY_BAT_SIDE_VOLTAGE);                                      
 | 
				
			||||||
  data[6] = (RELAY_ESC_SIDE_VOLTAGE >> 8);                                          // 16 bit Inverter 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[8] = (CURRENT_MEASUREMENT >> 8);                                             // 16 bit Inverter voltage
 | 
				
			||||||
  data[9] = (CURRENT_MEASUREMENT);
 | 
					  data[9] = (CURRENT_MEASUREMENT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // data 0-23
 | 
					  // data 10-35
 | 
				
			||||||
  for (int i = 0; i < 13; i++) {
 | 
					  for (int i = 10; i < 36; i+=2) {
 | 
				
			||||||
    data[i+10]  = ((int) module.auxVoltages[i]) >> 8;
 | 
					    data[i]  = ((int) module.auxVoltages[i]) >> 8;
 | 
				
			||||||
    data[i+11]  = ((int) module.auxVoltages[i]);
 | 
					    data[i+1]  = ((int) module.auxVoltages[i]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  for (int i = 37; i < 50; i++) {
 | 
				
			||||||
 | 
					    data[i] = tmp1075_temps[i];
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  eeprom_write(data, current_address);
 | 
					  eeprom_write(data, current_address);
 | 
				
			||||||
  current_address++;
 | 
					  current_address++;
 | 
				
			||||||
@ -50,16 +54,26 @@ void eeprom_write_status(){
 | 
				
			|||||||
HAL_StatusTypeDef eeprom_read(uint8_t* data, uint16_t address){
 | 
					HAL_StatusTypeDef eeprom_read(uint8_t* data, uint16_t address){
 | 
				
			||||||
  HAL_StatusTypeDef status = HAL_I2C_Mem_Read(
 | 
					  HAL_StatusTypeDef status = HAL_I2C_Mem_Read(
 | 
				
			||||||
    hi2c, EEPROM_I2C_ADDR, address, 
 | 
					    hi2c, EEPROM_I2C_ADDR, address, 
 | 
				
			||||||
    2, data, sizeof(data), 100);
 | 
					    2, data, sizeof(data), 50);
 | 
				
			||||||
  return status;
 | 
					  return status;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HAL_StatusTypeDef eeprom_write(uint8_t* data, uint16_t address){
 | 
					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_GPIO_WritePin(EEPROM___WC__GPIO_Port, EEPROM___WC__Pin, GPIO_PIN_RESET);
 | 
				
			||||||
  HAL_StatusTypeDef status = HAL_I2C_Mem_Write(
 | 
					  if (address < 65535){
 | 
				
			||||||
    hi2c, EEPROM_I2C_ADDR,
 | 
					    status = HAL_I2C_Mem_Write(
 | 
				
			||||||
    current_address, EERROM_MEMORY_ADDR_SIZE,
 | 
					      hi2c, EEPROM_I2C_ADDR,
 | 
				
			||||||
    data, sizeof(data), 100);
 | 
					      current_address, EERROM_MEMORY_ADDR_SIZE,
 | 
				
			||||||
  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);
 | 
					  HAL_GPIO_WritePin(EEPROM___WC__GPIO_Port, EEPROM___WC__Pin, GPIO_PIN_SET);
 | 
				
			||||||
 | 
					  return status;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user