Tous les Cours | Les microcontrôleurs PIC | Les microcontrôleurs ATMEL AVR | Pr

Tous les Cours | Les microcontrôleurs PIC | Les microcontrôleurs ATMEL AVR | Programmation en langage Pascal (Mikropascal) | Application en mikropascal : Porte automatique de garage | Programmation en langage C (Pic C Compiler PCWH) | Le Bus I2C | Mémoires série 24C32 | Tutorial Mikropascal | Tutorial Pic C Compiler | Tutorial Logipic | Tutorial Edit Algo | Tutorial IcProg | Chapitre 5 EEPROM 24C04 Algorithme de lecture et écriture Présentation : Le circuit 24C04 est une EEPROM série constituée de deux blocs de 256 Ko utilisant le protocole I2C. Eléments constitutifs de la trame : Octet d'identification (devsel) : C'est le premier octet émis par le maître, il permet de sélectionner le circuit ainsi que la nature et le lieu des opérations à effectuer (R/W, bloc). bits 7 à 2 : Identification du circuit constituée d'une partie fixe (bits 7 à 4) égale à 1010, et d'une partie variable (bits 3 et 2) fixée par les états logiques imposés sur les broches E2 et E1. bit 1 : Permet l'accès à un des deux blocs de 256 Ko. bit 0 : Sélectionne le mode lecture (1) ou écriture (0). Exemple : On désire écrire dans le bloc 0 d'un circuit 24C04 dont les pattes E2 et E1 sont connectées respectivement à 1 et à 0. Le premier mot à envoyer sera 10101000. Octet d'adresse (addr) : Ce mot indique l'adresse à laquelle doivent s'effectuer les opérations. Octet de donnée(data): Ce mot indique la donnée à inscrire. Algorithme d'écriture Les octets devsel, addr, data sont insérés dans la trame I2C (consulter les pages I2c). On distingue deux modes d'écriture. mode direct : La donnée est rangée à l'adresse spécifiée par l'octet addr, la trame envoyée par le circuit maître est la suivante : Start devsel (R/W = 0) ack addr ack data ack stop mémoires séries http://www.technologuepro.com/microcontroleur/Memoire_serie_24c04.htm 1 sur 3 20/03/2016 00:17 Exemple : Soit un circuit 24C04 dont les broches E2 et E1 sont reliées à la masse, on désire écrire la donnée $F9 à l'adresse $00 du bloc 0. La trame à envoyer sera la suivante : Start $A0 ack $F9 ack stop mode séquentiel : Une fois l'adresse spécifiée, les données sont inscrites aux adresses suivantes tant que la condition de stop n'est pas envoyée. Start devsel (R/W = 0) ack addr ack data1 ack data2 ack data3 ack stop Exemple : Soit un circuit 24C04 dont les broches E2 et E1 sont reliées à la masse, on désire écrire les données $F9, $E0, $12 respectivement aux adresses $10, $11, $12 du bloc 1. La trame à envoyer sera la suivante : Start $A2 ack $10 ack $F9 ack $E0 ack $12 ack stop Remarque : En mode écriture le maître positionne le bit ack à 1 et l'esclave répond par un 0 lui signifiant qu'il peut continuer la transmission. Algorithme de lecture : Pour effectuer une lecture il faut préalablement envoyer l'adresse au circuit en mode écriture. Puis repositionner le circuit en mode lecture afin d'obtenir la (les) donnée(s). mode direct : Start devsel(R/W = 0) ack addr ack Start devsel(R/W= 1) ack Data(out) ack=1 stop Exemple : Soit un circuit 24C04 dont les broches E2 et E1 sont reliées à la masse, on désire lire la donnée présente à l'adresse $00 du bloc 0. La trame à envoyer sera la suivante : Start $A0 ack $00 ack Start $A1 ack data(out) ack=1 stop Remarque : Dans ce cas le maître positionne le bit ack à 1 pour l'acquittement des données. En mémoires séries http://www.technologuepro.com/microcontroleur/Memoire_serie_24c04.htm 2 sur 3 20/03/2016 00:17 fin de trame le maître positionne ack à 1 pour indiquer qu'il ne désire plus recevoir de données. Cet état est aussi appelé non-acquittement. mode séquentiel : En mode séquentiel, après réception d'une donnée, le bit ack est positionné à 0 par le maître lorsqu'il désire une nouvelle donnée. Startdevsel (R/W= 0) Startaddrackdevsel (R/W = 1) ackdata1(out)ack=0data2(out)ack=1stop Exemple : Soit un circuit 24C04 dont les broches E2 et E1 sont reliées à la masse, on désire lire les données présentes aux adresses $10 et $11 du bloc 1. La trame à envoyer sera la suivante : Start $A2Start $10ack$A3ackdata1(out)ack=0data2(out)ack=1stop Révisé le :15-01-2008| © www.technologuepro.com mémoires séries http://www.technologuepro.com/microcontroleur/Memoire_serie_24c04.htm 3 sur 3 20/03/2016 00:17 uploads/Litterature/ memoires-series.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager