Le 24LS256 est adressée comme suit : 1010A2A1A0. Si vous travaillez uniquement avec 1 EEPROM, le plus simple est de connecter A2-A0 avec sol. Cela donne l’adresse de 1010000 qui est 0 × 50 Hex. En lecture et en écriture dans l’EEPROM, il faut se rendre compte que c’est 32 Ko (actuall32767) et un seul octet n’est pas suffisant pour traiter toute la mémoire.
Donc quand on veut envoyer lire et/ou écrire des requêtes, on a besoin d’envoyer deux octets – un pour le MSB ou l’extrémité supérieure de l’adresse (les 8 bits de gauche à droite) et celle qui suit pour le LSB ou l’extrémité inférieure de l’adresse (les finales 8 bits de gauche à droite).
Si l'on veut par exemple utiliser adresse 21000, qui va comme suit : en binaire, 21000 est 0101001000001000. Que divisés en 01010010 et 00001000, puis reconvertir les valeurs binaires numériques octets à envoyer à Wire.send().
Que les sons plus compliquent que c’est, qu’il sont a en fait deux opérandes pour faire cela. Cette première est >>, aussi connu comme « bitshift droit ». Cela prendra la partie la plus élevée (gauche) de l’octet et déposer la partie inférieure, laissant seulement les 8 premiers bits. Pour obtenir la partie inférieure (à droite) de l’adresse, on peut utiliser opérateur &, également connu sous le nom « opération de bits AND ». Cet opérande, lorsqu’il est utilisé avec 0xFF donnera les bits de poids faible.
Écriture de données dans le 24LS256
Écriture de données est assez facile. Tout d’abord initialiser le bus I2C avec :
Wire.beginTransmission(0x50) ; pour les broches A0 ~ A2 la valeur GND
puis envoyer certaines données. Les premières données à envoyer sont les deux octets de l’adresse (25000) se veut un pour écrire dans la mémoire.
Wire.Send (21000 >> 8) ; Envoyer le MSB de l’adresse
Wire.Send (21000 & 0xFF) ; Envoyer le LSB de l’adresse
Par la suite envoyer l’octet pour stocker l’adresse 21000 et puis fermez la connexion :
Wire.Send(15) ; Envoyer simplement « 15 » comme exemple
Wire.endTransmission() ;
Ceci conclut la rédaction. maintenant pour la lecture :
Lecture des données depuis le 24LS256
La lecture est plus ou moins similaire. Tout d’abord initialiser la connexion et fournir l’adresse des données comme suit :
Wire.beginTransmission(0x50) ; Adresse de base choisie
Wire.Send (21000 >> 8) ; Envoyer MSB de l’adresse
Wire.Send (21000 & 0xFF) ; Envoyer LSB de l’adresse
Wire.endTransmission() ;
Ensuite, fournir le nombre d’octets de données à lire à partir de l’adresse actuelle :
Wire.beginTransmission(0x50) ; adresse de base
Wire.requestFrom(0x50,1) ; Nous voulons un octet
Wire.Receive(inbyte) ;
Ici, « inbyte » est une variable byte choisie pour stocker les données extraites de l’EEPROM.
La puissance du bus I2C est bien entendu que différents dispositifs peuvent être connectés aux lignes de mêmes. La figure du haut présente tel un ensemble avec deux mémoires EEPROM. Il est essentiel bien sûr qu’elles possèdent chacune leur propre adresse. Dans la figure, j’ai choisi d’utiliser des adresses 0 × 50 et 0 × 51. On obtient que de connecter A0-A2 à la terre pour une seule puce, mais connexion A0 à Vcc ("High") pour la deuxième puce. L’adresse obtenue est ensuite 1010001 = 0 x 51
Et c’est tout.
Une conception d’impression se trouvent ici
Coût environ: 2 euros