Skip to content

Commit 189add9

Browse files
authored
Merge pull request #17 from wolfbert/Changes-to-memorySettings
Changes to default settings and memory size computation
2 parents 1336c1d + 627b511 commit 189add9

File tree

5 files changed

+12
-13
lines changed

5 files changed

+12
-13
lines changed

examples/Example2_Settings/Example2_Settings.ino

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
1111
This example demonstrates how to set the various settings for a given EEPROM.
1212
Read the datasheet! Each EEPROM will have specific values for:
13-
Overall EEPROM size in bytes (512kbit = 64000, 256kbit = 32000)
13+
Overall EEPROM size in bytes (512kbit = 65536, 256kbit = 32768)
1414
Bytes per page write (64 and 128 are common)
1515
Whether write polling is supported
1616
@@ -45,10 +45,10 @@ void setup()
4545
Serial.println("Memory detected!");
4646

4747
//Set settings for this EEPROM
48-
myMem.setMemorySize(512000/8); //In bytes. 512kbit = 64kbyte
48+
myMem.setMemorySize(512 * 1024 / 8); //In bytes. 512kbit = 64kbyte
4949
myMem.setPageSize(128); //In bytes. Has 128 byte page size.
5050
myMem.enablePollForWriteComplete(); //Supports I2C polling of write completion
51-
myMem.setPageWriteTime(3); //3 ms max write time
51+
myMem.setPageWriteTime(5); //5 ms max write time
5252

5353
Serial.print("Mem size in bytes: ");
5454
Serial.println(myMem.length());

examples/Example5_InterfaceTest/Example5_InterfaceTest.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ void setup()
4848
}
4949
Serial.println("Memory detected!");
5050

51-
myMem.setMemorySize(512000 / 8); //Qwiic EEPROM is the 24512C (512k bit)
51+
myMem.setMemorySize(512 * 1024 / 8); //Qwiic EEPROM is the 24512C (512k bit)
5252
//myMem.setPageSize(128);
5353
//myMem.disablePollForWriteComplete();
5454

examples/Example6_UniversalProgrammer/Example6_UniversalProgrammer.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void setup()
7171
beginSD();
7272

7373
//Set settings for a 24LC1025
74-
myMem.setMemorySize(1024000 / 8); //In bytes. 1024kbit = 64kbyte
74+
myMem.setMemorySize(1024 * 1024 / 8); //In bytes. 1024 Kbit = 128 KB
7575
myMem.setPageSize(128); //In bytes.
7676
myMem.enablePollForWriteComplete();
7777
}

src/SparkFun_External_EEPROM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void ExternalEEPROM::disablePollForWriteComplete()
115115
{
116116
settings.pollForWriteComplete = false;
117117
}
118-
uint16_t ExternalEEPROM::getI2CBufferSize()
118+
constexpr uint16_t ExternalEEPROM::getI2CBufferSize()
119119
{
120120
return I2C_BUFFER_LENGTH_TX;
121121
}

src/SparkFun_External_EEPROM.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ struct struct_memorySettings
9292
uint16_t pageSize_bytes;
9393
uint8_t pageWriteTime_ms;
9494
bool pollForWriteComplete;
95-
uint16_t i2cBufferSize;
9695
};
9796

9897
class ExternalEEPROM
@@ -118,7 +117,7 @@ class ExternalEEPROM
118117
uint8_t getPageWriteTime();
119118
void enablePollForWriteComplete(); //Most EEPROMs all I2C polling of when a write has completed
120119
void disablePollForWriteComplete();
121-
uint16_t getI2CBufferSize(); //Return the size of the TX buffer
120+
constexpr uint16_t getI2CBufferSize(); //Return the size of the TX buffer
122121

123122
//Functionality to 'get' and 'put' objects to and from EEPROM.
124123
template <typename T>
@@ -138,14 +137,14 @@ class ExternalEEPROM
138137
}
139138

140139
private:
141-
//Variables
140+
// Default settings are for onsemi CAT24C51 512Kbit I2C EEPROM used on SparkFun Qwiic EEPROM Breakout
142141
struct_memorySettings settings = {
143142
.i2cPort = &Wire,
144-
.deviceAddress = 0b1010000, //0b1010 + (A2 A1 A0) or 0b1010 + (B0 A1 A0) for larger (>512kbit) EEPROMs
145-
.memorySize_bytes = 512000 / 8,
146-
.pageSize_bytes = 64,
143+
.deviceAddress = 0b1010000, // 0x50; format is 0b1010 + (A2 A1 A0) or 0b1010 + (B0 A1 A0) for larger (>512kbit) EEPROMs
144+
.memorySize_bytes = 512 * 1024 / 8, // equals 64 KB
145+
.pageSize_bytes = 128,
147146
.pageWriteTime_ms = 5,
148-
.pollForWriteComplete = true,
147+
.pollForWriteComplete = true
149148
};
150149
};
151150

0 commit comments

Comments
 (0)