DetectSettings examples appear to mis-identify 512Kbit i2c breakout board.
I recently purchased (1) "SparkFun Qwiic EEPROM Breakout - 512Kbit" ( https://www.sparkfun.com/products/18355 )
After soldering the header on, I hooked it up to an Arduino Uno, installed the Sparkfun External EEPROM library (this one), and gave it a go.
My understanding is that I have the "24xx512" (2 address bytes, 128 byte page size).
These appear to be correctly detected.
However, the detection of the EEPROM size itself comes back what appears to be wrong as can be seen above.
I am powering the device over USB.
Then I tried example 7, which yielded:
17:53:02.652 -> Qwiic EEPROM example
17:53:02.652 -> Memory detected!
17:53:03.005 -> Detected pageSizeBytes: 128
17:53:03.232 -> Detected EEPROM size (bytes): 4096 bytes / 32 kBits - 24XX32
17:53:03.232 -> Checking memory: Good
17:53:03.457 -> I read (should be 200): 200
17:53:03.457 -> I read (should be -366): -366
17:53:03.457 -> I read (should be -7.35): -7.35
17:53:03.490 -> I read: Hi, I am just a simple test string
17:53:03.490 -> Next available EEPROM location: 105
This is detecting an EEPROM size of 4KB (24XX32).
Hence my confusion.
The former is using detectMemorySizeBytes and the latter is using getMemorySizeBytes.
It's not clear to me what the difference is.
Although unrelated, there is also a compile-time warning:
.../Arduino/libraries/SparkFun_External_EEPROM_Arduino_Library/src/SparkFun_External_EEPROM.cpp: In member function 'int ExternalEEPROM::write(uint32_t, const uint8_t*, uint16_t)':
.../Arduino/libraries/SparkFun_External_EEPROM_Arduino_Library/src/SparkFun_External_EEPROM.cpp:879:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (uint16_t x = 0; x < amtToWrite; x++)
~~^~~~~~~~~~~~
Subject of the issue
DetectSettings examples appear to mis-identify 512Kbit i2c breakout board.
I recently purchased (1) "SparkFun Qwiic EEPROM Breakout - 512Kbit" ( https://www.sparkfun.com/products/18355 ) After soldering the header on, I hooked it up to an Arduino Uno, installed the Sparkfun External EEPROM library (this one), and gave it a go.
The results:
My understanding is that I have the "24xx512" (2 address bytes, 128 byte page size). These appear to be correctly detected. However, the detection of the EEPROM size itself comes back what appears to be wrong as can be seen above.
I am powering the device over USB.
Then I tried example 7, which yielded:
This is detecting an EEPROM size of 4KB (24XX32). Hence my confusion.
The former is using
detectMemorySizeBytes
and the latter is usinggetMemorySizeBytes
. It's not clear to me what the difference is.Although unrelated, there is also a compile-time warning: