updated eeprom.h
This commit is contained in:
parent
662faed1fe
commit
cc496b1140
@ -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){
|
||||||
|
status = HAL_I2C_Mem_Write(
|
||||||
hi2c, EEPROM_I2C_ADDR,
|
hi2c, EEPROM_I2C_ADDR,
|
||||||
current_address, EERROM_MEMORY_ADDR_SIZE,
|
current_address, EERROM_MEMORY_ADDR_SIZE,
|
||||||
data, sizeof(data), 100);
|
data, sizeof(data), 50);
|
||||||
return status;
|
current_address += sizeof(data);
|
||||||
HAL_GPIO_WritePin(EEPROM___WC__GPIO_Port, EEPROM___WC__Pin, GPIO_PIN_SET);
|
} 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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user