76 #define EEPROM_24AA64_BASE_ADDRESS 0x50
77 #define EEPROM_24AA64_WRITE_BIT 0
78 #define EEPROM_24AA64_READ_BIT 1
87 #define EEPROM_24AA64_BAUD_RATE 400 // in kHz, Max Clock Frequency when 2.5V <= VCC <= 5.5V (FCLK in datasheet)
90 #define EEPROM_24AA64_TWC 5 // in ms, max write cycle time
112 unsigned int8 bytes_to_send;
117 command.control_byte = (EEPROM_24AA64_BASE_ADDRESS << 1) | EEPROM_24AA64_WRITE_BIT;
118 command.word_address[0] = UPPER_BYTE(address);
119 command.word_address[1] = LOWER_BYTE(address);
121 LTC6804_I2C_Write(board_num, TRUE, FALSE, &command,
sizeof(command), EEPROM_24AA64_BAUD_RATE);
127 LTC6804_I2C_Write(board_num, FALSE, TRUE, data_ptr, bytes_to_send, EEPROM_24AA64_BAUD_RATE);
130 num_bytes -= bytes_to_send;
131 address += bytes_to_send;
132 data_ptr += bytes_to_send;
135 delay_ms(EEPROM_24AA64_TWC);
148 command.control_byte = (EEPROM_24AA64_BASE_ADDRESS << 1) | EEPROM_24AA64_WRITE_BIT;
149 command.word_address[0] = UPPER_BYTE(address);
150 command.word_address[1] = LOWER_BYTE(address);
152 LTC6804_I2C_Write(board_num, TRUE, FALSE, &command,
sizeof(command), EEPROM_24AA64_BAUD_RATE);
156 *data_ptr = (EEPROM_24AA64_BASE_ADDRESS << 1) | EEPROM_24AA64_READ_BIT;
159 LTC6804_I2C_Read(board_num, TRUE, TRUE, data_ptr, num_bytes+1, EEPROM_24AA64_BAUD_RATE);
171 int16 erase_address = 0;
173 memset(erase_data, 0xFF,
sizeof(erase_data));
#define EEPROM_24AA64_PAGE_SIZE
Number of bytes that can be operated on at a time.
void LTC6804_I2C_Write(int8 board_num, BOOLEAN start, BOOLEAN stop, int8 *data_ptr, int16 num_bytes, int16 baud_khz)
Writes a string of bytes to the LTC6804 I2C port implemented on its GPIO pins.
void Eeprom_24AA64_Erase(int8 board_num)
Erases the full contents of the 24AA64 EEPROM.
#define EEPROM_24AA64_SIZE
Number of bytes in the EEPROM.
BOOLEAN LTC6804_I2C_Read(int8 board_num, BOOLEAN start, BOOLEAN stop, int8 *data_ptr, int16 num_bytes, int16 baud_khz)
Writes one byte, and then reads a string of bytes to the LTC6804 I2C port implemented on its GPIO pin...
API Header File for LTC6804-2 Multicell Battery Monitors.
Reference Application File for Interface to 24AA64 EEPROM through the LTC6804-2 Battery Monitor on th...
void Eeprom_24AA64_Read(int8 board_num, int16 address, int8 *data_ptr, int16 num_bytes)
Reads a series of bytes to the 24AA64 EEPROM.
void Eeprom_24AA64_Write(int8 board_num, int16 address, int8 *data_ptr, int16 num_bytes)
Writes a series of bytes to the 24AA64 EEPROM.