IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Adresse d'une EEPROM sur bus I2C


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 248
    Par défaut Adresse d'une EEPROM sur bus I2C
    Bonjour,

    Je cherche à raccorder une EEPROM (via bus I2C) à une de mes cartes mères utilisant une Nano (R4).

    Je m'inspire de cette page pour comprendre le principe:
    https://electroniqueamateur.blogspot...c-arduino.html

    et la datasheet d'un modèle intéressant pour moi (CAT24C512) est ici:
    https://www.onsemi.com/pdf/datasheet/cat24c512-d.pdf

    Je n'ai pas du tout besoin de 512Kb, mais le prix étant quasi indépendant de la capacité... Par contre je dois me rabattre sur un boîtier CMS par manque de place sur ma carte mère.

    Mon pb concerne l'adresse sur le bus I2C: dans la page citée en premier, les pins 1,2 et 3 (soit A0, A1 et A2) sont laissées non connectées.

    Mais sur la puce qui m'intéresse, la datasheet dit que ces pins servent à définir l'adresse sur le bus I2C.

    Je me moque de son adresse -j'ai juste besoin de la connaître-, mais comment forcer une adresse avec 3 bits (A0, A1 et A2) ?
    Si je peux lui donner 0x50 comme sur le tutorial, ça me va bien...

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 248
    Par défaut
    Je crois que j'ai trouvé grâce à ce topic:
    https://forum.arduino.cc/t/probleme-...m-i2c/182300/2

    qui explique la notion de famille de périphériques I2C, et d'adresse à l'intérieur de la famille (adresse définie par A2, A1, A0).
    Si j'ai bien compris, toutes les EEPROM appartienent à la même famille "1010".

    La fin de l'adresse de l'EEPROM est donc: 1010A2A1A0.

    Donc si je mets les 3 pins A2, A1 et A0 à la masse, l'adresse de mon EEPROM sera 1010000, soit 0x50 en hexa.

    Ma question se transforme donc plutôt en demande de recommandation:

    afin d'éviter d'éventuels conflits d'adresse avec d'autres pérphériques dans le futur (j'utilise des écrans LCD, des capteurs de température, etc...), cette adresse 0x50 vous parait-elle judicieuse ou m'en recommandez-vous une autre ?

    Merci à vous

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 250
    Billets dans le blog
    48
    Par défaut
    Bonjour,

    Tu peux consulter cette liste : List of I2C address for various devices by address range.

  4. #4
    Membre confirmé
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 248
    Par défaut
    Super f-leb !

    Avec ça je suis paré : ja passe en résolu.

    Merci !

    P.S.: je vois dans ta signature des liens vers des tutos FPGA : tu n'aurais pas par hasard de bons liens pour des tutos sur les DSP ???
    On trouve bien évidemment plein de tutos mais j'en cherche un destiné à réaliser un filtre FIR, dans le but de remplacer les Receiver qui se trouvent en amont des puces DAC (càd remplacer des circuits genre CS8412 par exemple).
    Comme ça sort du sujet, tu peux me répondre en MP si tu veux.
    Mille mercis.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Retraité de l'électronique analogique
    Inscrit en
    Avril 2021
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité de l'électronique analogique

    Informations forums :
    Inscription : Avril 2021
    Messages : 52
    Par défaut
    afin d'éviter d'éventuels conflits d'adresse avec d'autres périphériques dans le futur (j'utilise des écrans LCD, des capteurs de température, etc...), cette adresse 0x50 vous parait-elle judicieuse ou m'en recommandez-vous une autre ?

    Il ne peut pas y avoir de conflit avec d'autres familles de composants.
    Les 3 bits dont tu parles ne sont qu'une partie de l'adresse.
    L'autre partie de l'adresse, qui n'est pas modifiable, identifie la famille de composant.

    Suivant le nombre de bits modifiables il peut y avoir de 1 à 8 composants de la même famille sur le bus.

    Les meilleures sources d'information sont de loin les datasheets des composants et la norme I2C.
    L'I2C a été inventé par Philips il y a plus de 30 ans.
    Depuis que Philips a été éclaté, la norme est gérée par NXP :
    https://www.nxp.com/docs/en/user-guide/UM10204.pdf

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 139
    Par défaut
    Hello,

    afin d'éviter d'éventuels conflits d'adresse avec d'autres pérphériques dans le futur (j'utilise des écrans LCD, des capteurs de température, etc...), cette adresse 0x50 vous parait-elle judicieuse ou m'en recommandez-vous une autre ?
    Oui ! C'est l'adresse la plus courante et la plus "logique" pour une première (ou unique) EEPROM sur un bus I2C, car elle correspond à la configuration la plus simple : les trois broches d'adresse à la masse.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Google Maps] Afficher les coordonnées et adresse d'une infowindow sur un marker déplacé
    Par stevensavior dans le forum APIs Google
    Réponses: 6
    Dernier message: 13/08/2014, 19h18
  2. Les adresse sur le Bus i2c-0
    Par rufa11 dans le forum Matériel
    Réponses: 0
    Dernier message: 04/05/2014, 00h58
  3. récupération adresse d'une image sur le serveur
    Par lachu2 dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2012, 14h16
  4. Réponses: 1
    Dernier message: 12/04/2007, 10h41
  5. [PIC 16C84] Ajouter une eeprom externe i2c à un programme
    Par jacques8 dans le forum Autres architectures
    Réponses: 2
    Dernier message: 30/09/2005, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo