Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Misdetection of 512Kbit breakout board?

Ouverte
#33 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
32/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
cpp
Domaine
embedded-iot

Piste de recherche

Start by comparing the detectMemorySizeBytes and getMemorySizeBytes entry points used by the examples, then inspect SparkFun_External_EEPROM.cpp around the reported write warning. Reproduce both examples with the 512Kbit breakout board and trace how the detected size is derived. Done means the examples consistently report the board's size and the compiler warning has been addressed.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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:

17:49:47.133 -> Qwiic EEPROM example
17:49:47.133 -> Memory detected!
17:49:47.133 -> Detected number of address bytes: 2
17:49:47.133 -> Detected pageSizeBytes: 128
17:49:47.359 -> Detected page write time (ms): 2
17:49:47.390 -> Detected EEPROM size (bytes): 16 bytes / 128 Bits - 24XX00

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++)
                              ~~^~~~~~~~~~~~
Langage dominant
C++
Étoiles
67
Forks
23
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de sparkfun/SparkFun_External_EEPROM_Arduino_Library

Toutes les issues de sparkfun/SparkFun_External_EEPROM_Arduino_Library

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.