Skip to content

Commit

Permalink
tweak
Browse files Browse the repository at this point in the history
  • Loading branch information
thinkyhead committed Jun 8, 2021
1 parent 5c861c4 commit 561a1ee
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions Marlin/src/HAL/shared/eeprom_if_i2c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,23 +61,24 @@ static constexpr uint8_t eeprom_device_address = I2C_ADDRESS(EEPROM_DEVICE_ADDRE
// Public functions
// ------------------------

#define SMALL_EEPROM (MARLIN_EEPROM_SIZE <= 2048)

// Combine Address high bits into the device address on <=16Kbit (2K) and >512Kbit (64K) EEPROMs.
// Note: MARLIN_EEPROM_SIZE is specified in bytes, whereas EEPROM model numbers refer to bits.
// e.g., The "16" in BL24C16 indicates a 16Kbit (2KB) size.
static uint8_t _eeprom_calc_device_address(uint8_t * const pos) {
const unsigned eeprom_address = (unsigned)pos;
// Note: MARLIN_EEPROM_SIZE is specified in bytes, whereas most EEPROMs advertise bits
if (MARLIN_EEPROM_SIZE <= 2048 || MARLIN_EEPROM_SIZE > 65536) {
// Address high bits are stuffed into device address on <=16Kbit and >512Kbit EEPROMs
return uint8_t(eeprom_device_address | ((eeprom_address >> (MARLIN_EEPROM_SIZE <= 2048 ? 8 : 16)) & 0x07));
}
return eeprom_device_address;
return (SMALL_EEPROM || MARLIN_EEPROM_SIZE > 65536)
? uint8_t(eeprom_device_address | ((eeprom_address >> (SMALL_EEPROM ? 8 : 16)) & 0x07))
: eeprom_device_address;
}

static void _eeprom_begin(uint8_t * const pos) {
const unsigned eeprom_address = (unsigned)pos;
Wire.beginTransmission(_eeprom_calc_device_address(pos));
if (MARLIN_EEPROM_SIZE > 2048) {
Wire.write(uint8_t((eeprom_address >> 8) & 0xFF)); // Address High, if needed
}
Wire.write(uint8_t(eeprom_address & 0xFF)); // Address Low
if (!SMALL_EEPROM)
Wire.write(uint8_t((eeprom_address >> 8) & 0xFF)); // Address High, if needed
Wire.write(uint8_t(eeprom_address & 0xFF)); // Address Low
}

void eeprom_write_byte(uint8_t *pos, uint8_t value) {
Expand Down

0 comments on commit 561a1ee

Please sign in to comment.