À quoi ressemble une carte mémoire d’une EEPROM 1K? [fermé]

Pryda

À quoi ressemble une carte mémoire d’une EEPROM 1K? [fermé]


J’utilise un 1Kbit: l’appareil est organisé en un bloc de mémoire 128 x 8 bits. Je veux comprendre comment c’est organisé et comment les adresses sont structurées?

Exemple: je veux stocker le monde « Bonjour » dans l’EEPROM. Chaque caractère est codé sur 1 octet; Nous avons donc ici 5 octets au total, car la mémoire est de 128 x 8 bits. chaque caractère va être stocké dans une adresse. Ma question est de savoir comment ces adresses sont organisées? Est-ce quelque chose comme ça:

0x00: H
0x01: E
0x02: L
0x03: L
0x04: O
..
..

0x7F

Ce que j’essaie de faire, c’est de stocker les données dans l’EEPROM dans un ordre spécifique. Je dois donc savoir à quoi ressemble la carte mémoire afin de connaître l’adresse de début et de fin de chaque champ.
Exemple:
Je souhaite enregistrer: nom, date de naissance et pays dans une EEPROM. Définissons 2 fonctions écrire (adresse) et lire (adresse). Mon problème comment déterminer «l’adresse»?

Jon

Je ne sais pas trop ce que vous demandez. Notez que la dernière adresse sera 0x7F (127) et non 128.

tuyau

Je ne comprends pas vraiment ce que vous demandez ici. Demandez-vous comment les données sont physiquement organisées sur la puce? Parce qu’il peut ressembler à n’importe quoi dans un fichier.

Richard le Spacecat

Le truc, c’est que vous pouvez l’organiser comme bon vous semble, très probablement. 🙂

Richard le Spacecat

Dans le cas où vous stockez des données de longueur variable, comme des chaînes de texte, vous souhaiterez peut-être inclure un moyen pour le périphérique de lecture de dire combien de temps les chaînes stockées sont – soit en les préfixant par un octet stockant la longueur, soit en suffixant la chaîne avec un octet nul, la voie C.

Andy aka

Lisez la fiche technique de l’appareil.

Réponses


 filo

Les EEPROM sont généralement adressables par octets, c’est-à-dire. vous avez simplement un tableau d’octets. Vous pouvez définir l’un d’eux individuellement (contrairement à Flash, où vous pouvez les définir bit par bit, mais les effacer en blocs plus grands).

Mon approche habituelle lors du traitement des EEPROM est de définir une structure dans le code comme:

 typedef struct { uint32_t magic; uint32_t version; uint32_t parameter1; bool use_something; uint8_t parameter2; uint32_t checksum; } settings_t; 

Je le déclare en un seul endroit (en RAM): settings_t my_global_settings; , puis quand je veux l’enregistrer, je uint8_t pointeur uint8_t qui pointe vers la structure en RAM, puis j’écris octet par octet dans une boucle (jusqu’à sizeof(settings_t) ). La lecture se fait de manière similaire.

Il est agréable d’avoir un fichier avec une carte mémoire de l’EEPROM (si vous avez plusieurs structures) avec des définitions / constantes comme EEPROM_CALIBRATION_BASE_ADDR, EEPROM_SETTINGS1_BASE_ADDR etc. Vous devez calculer les adresses vous-même et / ou compter sur sizeof .

N’oubliez pas d’utiliser une somme de contrôle, ou CRC, ou LRC à la fin de vos données pour vérifier que cela a du sens.

 

[fermé], #(une, #à, 1K?, carte, d’une, EEPROM, mémoire, quoi, ressemble

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *