EEPROM I2C: quelles connexions ??

Portrait de nounours18200

Bonjour,

Je me demande comment connecter/utiliser une EEPROM I2C de ce type là avec une Arduino:

https://www.mouser.fr/ProductDetail/Microchip-Technology/24FC16-E-P?qs=xZ%2FP%252Ba9zWqamR%252BXPFPB0pA%3D%3D

dont la datasheet est ici:

https://www.mouser.fr/datasheet/2/268/24AA16_24LC16B_24FC16_16K_I2C_Serial_EEPROM_200017-2576990.pdf

Plus précisément, je lis dans la datasheet que les pins A0, A1 et A2 ne sont pas connectées en interne: donc comment attribuer une adresse I2C à une EEPROM comme celle-ci: puisque l'adresse I2C est indispensable pour lire ou écrire...

P.S.: j'ai recherché une EEPROM I2C afin d'économiser les pins du micro-contrôleur (dans mon cas ce sera une STM32 Bluepill, mais la question est indépendante du µC). Il me semble que c'est avec ne EEPROM de type I2C qu'on utilise le moins de pins du µC, mais je me trompe peut-être...

Edit:

J'ai peut-être sauté sur u modèle bizarre car j'ai ensuite vu quelque chose qui me semble plus compréhensible comme ceci: https://www.mouser.fr/datasheet/2/268/24AA024H_2c_24LC024H_2_Kbit_I2C_Serial_EEPROM_with-3006793.pdf

Merci !

Portrait de hercule124

Bonjour ,

Oui, vous pouvez connecter un STM32 Blue Pill avec un EEPROM 24FC16 en utilisant l’interface I2C. L’EEPROM 24FC16 peut fonctionner avec une tension d’alimentation de 1,7 V à 5,5 V dans le datasheet. Comme la tension du STM32 est de 3,3 V et que l’EEPROM peut fonctionner avec une tension d’alimentation de 1,7 V à 5,5 V, il ne devrait pas y avoir de problème.

Portrait de nounours18200

Je comprends mais ce n'est pas exactement ma question: mon interrogation c'est comment je définis son adresse I2C, autrement dit pourquoi A0,A1 et A2 ne snt connectées à rien ??

Mais entre-temps j'ai trouvé d'autres modèles, par ex la 24AA024H, qui est beaucoup plus proche de ce que je m'attends à trouver, avec des pins A0, A1 et A2 que l'on peut assigner à +5V ou GND...

Je me dit donc que la 24FC16 doit être un modèle très particluier, non ?

Portrait de Walter

Pourquoi tu dis que les broches A_ sont connectées à rien ?
Dans la docuementation que tu donne, il indique de lié relié sur un 0 ou 1 logic et doivent être connecté à Vcc ou Vss ?

Tu doit définir le niveau des broches et envoyer les 3 bits dans le premier octet de la trame I2c.
Je ne suis pas sûre que les librairies qui te permettes de piloter une EEPROM, tu permettes de le faire, il faut donc plutôt utiliser une librairie pour gérer des trames I2C, et le faire à la main :(

C'est plutot un bon choix, de prendre une EEPROM, plus traditionnel.

Portrait de Jetfuzz

Hello.
j'ai pour un projet déjà recherché un lib eeprom, mais jamais utilisé pour l'instant.
par contre tout est bien expliqué, avec les adresses i2C
Je vient de voir sur ta datasheet ceci :

The A0, A1 and A2 pins are not used by the 24XX16. They may be left floating or tied to either VSS or VCC

Elle sont effectivement Non connect, mais le constructeur preconise de les polariser.

tu ne  ne dispose donc  que d'une adresse "1010" 0x0A pour y accéder voir ci dessous 

 The control byte consists of a 4-bit control code. For the 24XX16, this is set as ‘1010’ binary for read and write operations

lien ci dessous vers la lib I2C eeprom
https://github.com/RobTillaart/I2C_EEPROM

Enjoy 
Jetfuzz

Portrait de nounours18200

Merci à tous pour vos réponses, je suis finalement parti vers un modèle où la datasheet est "plus claire", et je me suis aussi aperçu qu'il n'y a quasiment aucune différence de prix entre un modèle 2K et un modèle 8K (et les modèles 64K sont à peine plus chers: 15 centimes...).

Donc j'ai pris une 24AA08-I/P de 8K ce sera 10 fois trop grand pour mon petit besoin, mais bon...

Les différences sont surtout au niveau rapidité, mais 900ns ce sera archi-suffisant pour mon usage.

Si plus tard j'ai besoin de plus performant je dépenserai 15 centimes de plus pour le modèle 24FC64-I/P de 64K !!!

Portrait de ednajones

Good morning,

I'm wondering how to connect/use an I2C EEPROM of this type with an Arduino:

https://www.mouser.fr/ProductDetail/Microchip-Technology/24FC16-EP?qs=xZ%2FP%252Ba9zWqamR%252BXPFPB0pA%3D%3D pizza tower

whose datasheet is here:

https://www.mouser.fr/datasheet/2/268/24AA16_24LC16B_24FC16_16K_I2C_Serial_EEPROM_200017-2576990.pdf

More precisely, I read in the datasheet that pins A0, A1 and A2 are not connected internally: so how to assign an I2C address to an EEPROM like this: since the I2C address is essential to read or write.. .

PS: I looked for an I2C EEPROM in order to save the microcontroller pins (in my case it will be an STM32 Bluepill, but the question is independent of the µC). It seems to me that it is with an I2C type EEPROM that we use the fewest µC pins, but I may be wrong...

Edit:

I may have jumped on a weird model because I then saw something that seems more understandable to me like this:  https://www.mouser.fr/datasheet/2/268/24AA024H_2c_24LC024H_2_Kbit_I2C_Serial_EEPROM_with-3006793.pdf

THANKS !

Hello, if you want to connect the I2C EEPROM to the Arduino, you should follow these steps.

  • Locate the EEPROM's pins: Typically, an I2C EEPROM has eight pins. The important pins are SDA (Serial Data), SCL (Serial Clock), VCC (Power), and GND (Ground).
  • Connect the VCC pin of the EEPROM to the 5V pin on the Arduino.
  • Connect the GND pin of the EEPROM to the GND pin on the Arduino.
  • Connect the SDA pin of the EEPROM to the SDA (A4) pin on the Arduino.
  • Connect the SCL pin of the EEPROM to the SCL (A5) pin on the Arduino.