L'AT24C32 est une eeprom I²C de 32Kbit (4,096 x 8)

L'adresse I²C par defaut de AT24C32 : 0x57
Fiabilité élevée, une endurance de 1.000.000 cycles d'écriture et une conservation des données de 100 ans.
Courant actif ultra faible (3 mA maximum) et courant de veille (6 μA maximum).

Affectation des broches
FonctionNomBrocheBrocheNom Fonction
Adresse (VCC = 1, GND = 0)A018VCCTension d'alimentation
Adresse (VCC = 1, GND = 0)A127WPProtection en écriture (VCC = activé, GND = désactivé)
Adresse (VCC = 1, GND = 0)A236SCLHorloge I2C
DimensionsGND45SDADonnées I2C
Sous-programme Assembleur Atmel
;________________________________________________________________
;AT24C32_write_mem i2c eeprom write byte
;ZH:ZL pointe les données jusqu'a 0xFF 
;YH:YL adresse AT24C32
;________________________________________________________________
AT24C32_write_mem:
    rcall   I2CInit
    rcall   I2CStart
    lds     ADR,AT24C32 ;Adresse Write Mode
    mov     DATA,YH
    rcall   I2CSendByte     ;Ecrire la adresse Haute MSB I2CWData
    rcall   I2CDelay
    mov     DATA,YL
    rcall   I2CSendByte     ;Ecrire la adresse basse LSB I2CWData
    rcall   I2CDelay
AT24C32_write_byte:
    ;i2c_eeprom_read_byte
    ld      DATA, Z+        ;DATA=(Z) Z=Z+1
    cpi     DATA,0xFF           ;Si egal fin
    breq    AT24C32_end_write       
    rcall   DATA_write_byte     ;Ecrire la donnee I2CWData
    rcall   I2CDelay
    rjmp    AT24C32_write_byte
AT24C32_end_write:
    rcall   I2CStop
    ret 

;________________________________________________________________
;AT24C32_read_mem i2c eeprom read byte
;YH:YL adresse AT24C32
;ZH:ZL pointe la récpetion des données 
;regC: nombre d'octets
;________________________________________________________________
AT24C32_read_mem:
    rcall   I2CInit
    rcall   I2CStart
    lds     ADR,AT24C32 ;Adresse Write Mode
    rcall   I2CSendByte
    mov     DATA,YH
    rcall   I2CSendByte     ;Ecrire la adresse Haute MSB I2CWData
    rcall   I2CDelay
    mov     DATA,YL
    rcall   I2CSendByte     ;Ecrire la adresse basse LSB I2CWData
    rcall   I2CDelay
    rcall   I2CStop
    rcall   I2CDelay
    rcall   I2CStart
    lds     DATA,AT24C32 ;Adresse
    ori     DATA,1      ;Read
    rcall   I2CSendByte
recupdt:    
    clr     DATA            ;read with ACK
    rcall   I2CReadByte
    st      Z+,regA
    dec     regC
    brne   recupdt
    ldi     DATA,1
    rcall   I2CReadByte     ;read with NACK
    st      Z+,regA
    rcall   I2CStop         ;Stop I2C
    ret