Brevet FR3120267A1 — publié le 20220902

Communication sur bus I2C La présente description concerne un procédé d'assignation, sur une communication sur bus I2C, d'une première adresse à un premier dispositif (S2) par un deuxième dispositif (M2), dans lequel le deuxième dispositif (S2) envoie ladite première adresse sur le bus I2C et, si le deuxième dispositif (M2) ne reçoit aucune donnée d'acquittement, alors le premier dispositif (S2) enregistre ladite première adresse. Figure pour l'abrégé : Fig. 6 Communication sur bus I2C La présente description concerne de façon générale les dispositifs et systèmes électroniques. Plus particulièrement, la présente description concerne les procédés de communication entre des dispositifs et/ou des systèmes électroniques. La présente description se rapporte, plus précisément, à une communication sur bus I2C. Un bus informatique est un dispositif de transmission de données entre plusieurs dispositifs électroniques, par exemple entre plusieurs composants d'un même système électronique. Un bus comprend généralement une ou plusieurs lignes adaptées à transmettre différents types de signaux, par exemple, des signaux d'adresses, des signaux de données, des signaux d'horloge, etc. Chaque bus de données est mis en oeuvre par un protocole de communication qui définit la manière dont les données logiques sont échangées entre les dispositifs. Parmi les différents bus et protocoles de communication existants, la technologie I2C (Inter-Integrated Circuit) est une technologie de communication très utilisée, de nos jours, dans l'industrie pour la communication entre différents dispositifs. Un bus adapté à la technologie I2C est un bus série bidirectionnel utilisant deux lignes de transmission, plus précisément, une ligne de transmission de données, et une ligne de transmission d'un signal d'horloge. Il serait souhaitable de pouvoir améliorer, au moins en partie, les techniques de communication connues utilisant un bus adapté à la communication I2C. Il existe un besoin pour des techniques de communication plus fiables. Il existe un besoin pour des techniques de communication plus fiables utilisant un bus adapté à la communication I2C. Il existe un besoin pour des techniques de communication sur bus I2C permettant à un dispositif maître d'assigner facilement une adresse à un dispositif esclave. Un mode de réalisation pallie tout ou partie des inconvénients des techniques de communication connues utilisant un bus adapté à la communication I2C. Un mode de réalisation prévoit un procédé d'assignation, sur une communication sur bus I2C, d'une première adresse à un premier dispositif par un deuxième dispositif, dans lequel le deuxième dispositif envoie ladite première adresse sur le bus I2C et, si le deuxième dispositif ne reçoit aucune donnée d'acquittement, alors le premier dispositif enregistre ladite première adresse. Selon un mode de réalisation, si le deuxième dispositif reçoit une donnée d'acquittement alors le premier dispositif n'enregistre pas ladite première adresse. Selon un mode de réalisation, le premier dispositif enregistre ladite première adresse dans des registres non volatils. Selon un mode de réalisation, ladite première adresse n'est assignée à aucun dispositif avec lequel le deuxième dispositif peut être en communication. Selon un mode de réalisation, le premier dispositif est dans un mode d'assignation où il attend qu'on lui assigne une adresse, et sort de ce mode d'assignation quand il enregistre ladite première adresse. Selon un mode de réalisation, le premier dispositif comprend une première variable d'état indiquant s'il est dans le mode d'assignation ou pas. Selon un mode de réalisation, le premier dispositif comprend une deuxième variable d'état indiquant s'il a enregistré ou non une adresse. Selon un mode de réalisation, la première adresse comprend un identifiant de type de dispositif et un numéro de dispositif. Selon un mode de réalisation, le premier dispositif est un dispositif esclave de la communication sur bus I2C. Selon un mode de réalisation, le premier dispositif est une mémoire. Selon un mode de réalisation, le premier dispositif est une mémoire non volatile de type EEPROM. Selon un mode de réalisation, le deuxième dispositif est un dispositif maître de la communication sur bus I2C. Selon un mode de réalisation, le deuxième dispositif est un processeur. Un mode de réalisation prévoit un procédé de configuration d'un troisième dispositif comprenant le procédé d'assignation décrit. Un mode de réalisation prévoit un dispositif adapté à mettre en oeuvre le procédé d'assignation décrit. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la représente, schématiquement et sous forme de blocs, une communication sur bus I2C ; la représente, schématiquement et sous forme de blocs, une adresse d'un dispositif électronique ; la représente, schématiquement, deux vues (a) et (b) illustrant des variantes d'un dispositif électronique ; la représente, schématiquement et sous forme de blocs, la mise en oeuvre d'une communication sur bus I2C ; la représente, schématiquement et sous forme de blocs, un mode de mise en oeuvre d'un procédé d'assignation d'une adresse à un dispositif par communication sur bus I2C ; la représente, schématiquement et sous forme de blocs, une autre communication sur bus I2C ; et la représente, schématiquement et sous forme de blocs, un mode de mise en oeuvre d'un procédé de configuration d'un dispositif. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, toutes les différentes commandes pouvant être envoyées par un dispositif maître à un dispositif esclave ne sont pas détaillées de façon exhaustive. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Les signaux évoqués dans la description sont des signaux analogiques comprenant un état haut et un état bas correspondant, respectivement, à des données logiques "1" (un) et "0" (zéro). L'état haut représente, sauf mention contraire, un niveau haut de tension, par exemple égal à une tension d'alimentation. L'état bas représente, sauf mention contraire, un niveau bas de tension, par exemple égal à une tension de référence, par exemple la masse. La représente, schématiquement et sous forme de blocs, une communication sur bus I2C (Inter-Integrated Circuit). La représente un bus I2C 101 composé de deux lignes de transmission SCL et SDA. La ligne de transmission SCL est adaptée à transmettre un signal d'horloge permettant de cadencer la transmission de données du bus. Un signal d'horloge est un signal analogique variant périodiquement entre un niveau haut et un niveau bas. La ligne de transmission SDA est adaptée à transmettre un signal analogique variant entre un niveau haut et un niveau bas représentant des données et des commandes. Les lignes de transmission SCL et SDA sont, en pratique, des conducteurs dont le niveau de tension est contrôlé par les dispositifs électroniques utilisant le bus 101. Au repos, c'est-à-dire lorsque les lignes SCL et SDA ne transmettent pas de signaux, les lignes SCL et SDA sont maintenues à un niveau haut de tension, par exemple par des résistances de tirage à un niveau haut (pull up resistors), non représentées en . La représente, en outre, des dispositifs électroniques utilisant le bus 101 pour communiquer entre eux. La représente, plus précisément un dispositif électronique 102 (MASTER) maître de la communication sur bus I2C, ou dispositif maître 102, et deux dispositifs électroniques 103 (SLAVE 1) et 104 (SLAVE 2) esclaves de la communication sur bus I2C, ou dispositifs esclaves 103 et 104. Dans une communication sur bus I2C, un dispositif maître, comme le dispositif maître 102, est le dispositif à l'initiative de la communication sur bus I2C, ce qui lui confère des tâches propres à son statut de dispositif maître. Parmi ces différentes tâches, le dispositif maître est, tout particulièrement, adapté à : - imposer la fréquence d'horloge du signal d'horloge transmis par la ligne SCL du bus I2C ; - démarrer et arrêter la communication sur bus I2C en imposant une condition de démarrage et une condition d'arrêt décrites en relation avec la ; et - transmettre et/ou recevoir des commandes et/ou des données en utilisant la ligne SDA. Les dispositifs esclaves 103 et 104 sont des dispositifs électroniques qui ne sont pas à l'initiative de la communication sur bus I2C. Les dispositifs esclaves 103 et 104 sont adaptés à transmettre et/ou recevoir les commandes et/ou des données en utilisant la ligne SDA pour communiquer avec le dispositif maître 102. Chaque dispositif esclave 103, 104 répond à une adresse, cela est décrit en relation avec la . Selon un exemple, le dispositif maître 102 peut être un processeur, ou un microprocesseur d'un système électronique, et les dispositifs esclaves 103 et 104 peuvent être d'autres composants de ce système électronique comme des mémoires, des dispositifs d'acquisition de données, des dispositifs de communication, etc. Des exemples de dispositifs esclaves sont décrits en relation avec la . La représente une communication sur bus I2C comprenant un dispositif maître 102 et plusieurs, ici deux, dispositifs esclaves 103 et 104. Il est évident que la communication sur bus I2C peut être adaptée à la communication d'un dispositif maître avec un seul dispositif esclave, ou plus de deux dispositifs esclaves, ou encore être adaptée à la communication de plusieurs dispositifs maîtres entre eux ou avec un ou plusieurs dispositifs esclaves. Les modes de réalisation décrits ci-après s'appliquent à la communication par bus I2C entre un dispositif maître et un ou plusieurs dispositifs esclave. La représente, schématiquement et sous forme de blocs, une adresse d'un dispositif esclave du type des dispositifs esclaves 103 et 104 décrits en relation avec la . Pour engager une communication sur bus I2C avec un dispositif esclave, un dispositif maître envoie, sur la ligne de transmission de données du bus I2C, l'adresse du dispositif esclave avec lequel il veut engager la communication. Il existe plusieurs formats d'adresse de dispositif esclave. Un format d'adresse pouvant être utilisé est le suivant. Une adresse Add d'un dispositif esclave est composée de sept bits B0 à B6. L'adresse est divisée en deux parties représentant chacune une information précise. Les quatre bits de poids fort B0 à B3 représentent l'identifiant de type de dispositif DTI (DTI, Device Type Identifier) permettant d'identifier la nature du dispositif esclave. En effet, chaque type de dispositif électronique susceptible d'utiliser une communication sur bus I2C est symbolisé par un identifiant codé sur quatre bits. Selon un exemple, une mémoire non volatile de type EEPROM (Electrically Erasable Programmable Read Only Memory) est symbolisée par l'identifiant "1010". Les trois bits de poids faible B4 à B6 représentent le numéro CI du dispositif (CI, Chip Identifier). Le numéro CI permet de différencier plusieurs dispositifs électroniques de même nature utilisés dans un même système électronique. Selon un exemple, si le dispositif esclave est le seul de son type alors son numéro CI est le "000". Selon un exemple, si un système électronique comprend deux mémoires non volatiles de type EEPROM, les adresses des deux mémoires peuvent être : "1010000", et "1010001". Par ailleurs, un dispositif esclave peut utiliser plusieurs adresses pour mettre en oeuvre une communication sur bus I2C. Selon un exemple, une première adresse, ou adresse principale, peut être utilisée pour envoyer un premier type de commande, et une deuxième adresse, ou adresse secondaire, peut être utilisée pour un deuxième type de commande. L'adresse principale peut, par exemple, respecter les règles de formation de l'adresse Add décrites en relation avec la , et l'adresse secondaire peut aussi respecter ces règles, ou alors peut respecter d'autres règles de formation. Selon un exemple plus précis, si le dispositif est une mémoire, une adresse principale peut permettre de recevoir des commandes de lecture et d'écriture, alors qu'une adresse secondaire peut permettre de recevoir des commandes de configuration de la mémoire. La comprend deux vues (a) et (b) représentant, schématiquement, des dispositifs électroniques pouvant être des dispositifs esclaves dans une communication sur bus I2C. La vue (a) est une vue de dessus, schématique, d'une mémoire non volatile 200 de type EEPROM. La mémoire 200 est protégée par un boîtier 201 rectangulaire, en vue de dessus, duquel sortent huit bornes de connexion 202 référencées 1 à 8 en vue (a). Les bornes de connexion 202 sont disposées par groupes de quatre sur des côtés parallèles du boîtier 201. La mémoire non volatile 200 est adaptée à la communication par bus I2C, et voici un exemple d'utilisation des huit bornes de connexion 202. La borne de connexion de référence 4 reçoit un signal de référence VSS de niveau bas, par exemple la masse. La borne de connexion de référence 8 reçoit un signal de référence VCC de niveau haut, par exemple une tension d'alimentation. Les bornes 1 à 3 fournissent les trois bits du numéro CI de la mémoire 200. Pour cela chaque borne 1 à 3 est reliée soit à la borne 4 (VSS), si la borne doit indiquer un "0" (zéro), soit à la borne 8 (VCC), si la borne doit indiquer un "1" (un). La borne 5 est reliée, de préférence connectée, à la ligne de transmission SDA d'un bus I2C. La borne 6 est reliée, de préférence connectée, à la ligne de transmission SCL du bus I2C. La borne 7 peut, par exemple, recevoir un signal WC- (Write Control, Contrôle d'écriture) permettant de configurer la protection, ou non, de données stockées dans la mémoire 200. La vue (b) est une vue de dessus, schématique, d'une autre mémoire non volatile 250 de type EEPROM. La mémoire 250 est protégée par un boîtier 251 rectangulaire, voire carré, en vue de dessus, duquel sortent quatre bornes de connexion 252 référencées 1 à 4 en vue (b). Les bornes de connexion sont disposées aux quatre coins du boîtier 251. La mémoire non volatile 250 est adaptée à la communication par bus I2C, et voici un exemple d'utilisation des quatre bornes de connexion 252. La borne 1 est reliée, de préférence connectée, à la ligne de transmission SDA d'un bus I2C. La borne 2 de connexion de référence reçoit un signal de référence VSS de niveau bas, par exemple la masse. La borne 3 est reliée, de préférence connectée, à la ligne de transmission SCL du bus I2C. La borne de connexion de référence 4 reçoit un signal de référence VCC de niveau haut, par exemple une tension d'alimentation. Dans le cas de la mémoire 200, une partie de l'adresse de la mémoire utilisable pour une communication par bus I2C est directement accessible sur les bornes de connexion 202 du boîtier de la mémoire 200, l'autre partie étant stockée dans des registres spécifiques de la mémoire 200. Plus particulièrement, les bits B4, B5, B6 de l'adresse du circuit décrite en sont définis par le niveau de tension des bornes E2, E1, E0. Alors que, dans le cas de la mémoire 250, l'adresse de la mémoire est stockée dans des registres spécifiques de la mémoire 250. La est un schéma-bloc illustrant un exemple classique d'une communication sur bus I2C entre un dispositif maître M, du type du dispositif 102 décrit en relation avec la , et un dispositif esclave S, du type des dispositifs 103 et 104 décrits en relation avec la . Les dispositifs M et S sont reliés par un bus I2C du type du bus 101 décrit en relation avec la , comprenant la ligne SDA de transmission de données, et la ligne SCL de transmission d'un signal d'horloge. Avant que la communication I2C entre les dispositifs M et S ne commence, les signaux transmis par les lignes SCL et SDA ne sont pas utilisés et sont maintenus à un niveau haut. Selon un exemple, la communication I2C décrite en relation avec la est une communication basée sur des commandes comprenant huit bits de données. De plus, le format d'adresse utilisé par le dispositif esclave S est celui décrit en relation avec la . A une étape initiale 301 (START), la communication I2C entre les dispositifs M et S commence. Pour cela, le dispositif maître M émet une condition de démarrage. Une condition de démarrage d'une communication I2C est définie, par exemple, par un front descendant du signal transmis par la ligne SDA pendant que le signal sur la ligne SCL est à un niveau haut. La condition de démarrage imposée par le dispositif maître M a pour fonction d'avertir le dispositif esclave S du commencement d'une communication I2C. Cette interruption a pour effet d'avertir le dispositif esclave S qu'une communication sur bus I2C commence. Autrement dit, l'interruption a pour effet de "réveiller", ou de "rendre alerte" le dispositif esclave S. Une fois la condition de démarrage passée, le dispositif maître M transmet un signal d'horloge via la ligne SCL. Ainsi, le signal sur la ligne SCL présente, après la condition de démarrage, un premier front descendant et passe à un niveau bas. A une étape 302 (SLAVE ADDRESS), le dispositif maître M envoie une première commande. Cette première commande comprend l'adresse du dispositif esclave avec lequel il souhaite communiquer, en l'occurrence ici l'adresse du dispositif esclave S. Pour lire cette commande, le dispositif esclave S lit une donnée du signal SDA à chaque front montant du signal SCL. A titre d'exemple, cette première commande comprend les sept bits de l'adresse du dispositif esclave S et un bit indiquant la nature de la commande suivante. Ce dernier bit peut, par exemple, indiquer le sens de communication de la commande ou réponse suivante. Selon un exemple, si le dernier bit représente un "0" (zéro) alors la communication se fait dans le sens du dispositif maître vers le dispositif esclave, alors que si le dernier bit représente un "1" (un), la communication se fait dans le sens du dispositif esclave vers le dispositif maître. Autrement dit, si le dernier bit représente un "0" (zéro) alors le dispositif maître est en position d'émetteur et le dispositif esclave en position de récepteur, alors que si le dernier bit représente un "1" (un), le dispositif maître est en position de récepteur et le dispositif esclave en position d'émetteur. A une étape 303 (ACK ?), si l'adresse envoyée par le dispositif maître M à l'étape 302 correspond à l'adresse, ou à l'une des adresses, du dispositif esclave S, alors le dispositif S envoie une donnée d'acquittement au dispositif maître M (sortie Y). L'étape suivante est une étape 304 (CMD). Si le dispositif maître M ne reçoit aucune donnée d'acquittement (sortie N) alors la communication s'arrête, l'étape suivante est une étape 305 (STOP). Le dispositif maître M peut recevoir une donnée d'acquittement de la part d'un autre dispositif esclave (cas non représenté en ), dans ce cas la communication s'engage avec cet autre dispositif esclave, et le dispositif esclave S ne suit pas la communication. Une donnée d'acquittement envoyée par le dispositif S est, par exemple, une mise à l'état bas du signal SDA. A l'étape 304, les dispositifs M et S sont prêts à communiquer. Les dispositifs maître M et esclave S s'échangent des commandes et/ou des données. Une fois l'échange de commandes et/ou de données terminé, l'étape suivante est l'étape 305. Il est à noter que, sur une communication sur bus I2C basée sur des commandes de huit bits, le dispositif ayant la position de récepteur envoie une donnée d'acquittement au dispositif ayant la position d'émetteur après la réception de chaque groupe de huit bits de données. Si le dispositif ayant la position de récepteur n'envoie pas de donnée d'acquittement au moment voulu, le dispositif ayant la position d'émetteur considère que le dispositif ayant la position de récepteur n'est plus alerte pour communiquer avec lui. Le dispositif maître M arrête la communication de la manière décrite en relation avec l'étape 305. A l'étape 305, le dispositif maître M n'ayant reçu aucune donnée d'acquittement, il émet une condition d'arrêt permettant d'arrêter la communication. Une condition d'arrêt d'une communication I2C est définie, par exemple, par un front montant du signal SDA pendant que le signal SCL est à un niveau haut. La communication I2C entre les dispositifs M et S est alors terminée. La illustre schématiquement, et sous forme de blocs, un mode de mise en oeuvre d'un procédé d'assignation d'une adresse Add1 à un dispositif esclave S1 (SLAVE), mis en oeuvre par un dispositif maître M1 (MASTER) sur une communication sur bus I2C. Le dispositif maître M1 et le dispositif esclave S1 sont reliés par un bus I2C (non représenté en ), du type du bus I2C 101 décrit en relation avec la , comprenant une ligne de données, du type de la ligne de transmission SDA décrite en relation avec la , et une ligne d'horloge, du type de la ligne de transmission SCL décrite en relation avec la . Le dispositif maître M1 peut être relié, par le bus I2C, à d'autres dispositifs esclave non représentés en . L'adresse Add1 est une adresse libre qui n'est utilisée par aucun dispositif esclave avec lequel le dispositif maître M1 est susceptible de réaliser une communication sur bus I2C. L'adresse Add1 est destinée à être assignée au dispositif esclave S1. Selon un exemple, l'adresse Add1 est un mot binaire de sept bits. A une étape 401 (ATTRIBUTION MODE), le dispositif esclave S1 est passé dans un mode de fonctionnement où il s'attend à ce qu'on lui assigne une adresse, appelé mode d'assignation. Selon un exemple, le dispositif esclave S1 peut comprendre un bit de données, par exemple une variable d'état, indiquant qu'il est dans le mode d'assignation. Selon un exemple, le dispositif esclave S1 peut être directement dans ce mode à la fin de sa fabrication. Selon un autre exemple, le dispositif maître M1 peut avoir envoyé préalablement une commande au dispositif esclave S1 lui demandant de se mettre dans ce mode d'assignation. A une étape 402 (START), similaire à l'étape 301 décrite en relation avec la , le dispositif maître M1 émet une condition de démarrage, pour démarrer la communication sur bus I2C. A une étape 403 (FREE SLAVE ADDRESS), suivant directement l'étape 402, le dispositif maître M1 envoie une première commande sur la ligne de données du bus I2C. Cette première commande comprend l'adresse Add1 qui n'est assignée à aucun dispositif esclave avec lequel le dispositif maître M1 est susceptible de communiquer via le bus I2C. Selon un exemple, si la première commande est un mot binaire de huit bits, et l'adresse Add1 un mot binaire de sept bits, le dernier bit de la commande indique la nature de la commande suivante. Selon un mode de réalisation, le dernier bit représente une valeur par défaut, par exemple un "0" (zéro). A une étape 404 (NO ACK), suivant directement l'étape 403, le dispositif maître M1 ne reçoit aucune donnée d'acquittement. Comme, à ce moment-là, l'adresse Add1 n'est assignée à aucun dispositif susceptible de communiquer avec le dispositif maître M1, il est normal que le dispositif maître M1 ne reçoive aucune donnée d'acquittement. A une étape 405 (STORE ADDRESS), le dispositif esclave S1 ayant suivi l'échange de commandes survenu sur la ligne de données du bus I2C, le dispositif esclave S1 comprend que l'adresse Add1 envoyée par le dispositif maître M1 est une adresse libre. En effet, si l'adresse Add1 n'avait pas été libre, le dispositif esclave répondant à l'adresse Add1 aurait envoyé une donnée d'acquittement à l'étape 404. Le dispositif esclave S1 stocke alors l'adresse Add1, par exemple dans un registre volatil. Le dispositif esclave S1 peut considérer l'adresse Add1 comme une de ses adresses, par exemple comme une adresse secondaire, et répondre au dispositif maître M1 quand celui-ci commencera une communication future en demandant le dispositif associé à l'adresse Add1. Un exemple d'étapes mises en oeuvre par le dispositif esclave S1 pour enregistrer l'adresse Add1 est décrit en relation avec les figures 6 et 7. Le dispositif esclave S1 peut utiliser l'adresse Add1 de différentes manières. Selon un exemple de réalisation, le dispositif esclave S1 peut modifier son adresse principale en l'adresse Add1. Selon un autre exemple de réalisation, le dispositif esclave S1 peut enregistrer l'adresse Add1 comme adresse secondaire, ou utiliser l'adresse Add1 pour modifier une de ses adresses secondaires. Selon un autre exemple de réalisation, le dispositif esclave S1 peut utiliser l'adresse Add1 comme une adresse secondaire temporaire, c'est-à-dire utiliser l'adresse Add1 comme une adresse secondaire mais pour un nombre limité de communication sur bus I2C. En utilisant l'adresse Add1 comme adresse secondaire temporaire, ou adresse secondaire dynamique, le dispositif esclave S1 peut, par exemple, modifier l'une de ses adresses secondaires en une autre adresse que l'adresse Add1. La personne du métier saura trouver d'autres utilisations à l'adresse Add1. A une étape 406 (STOP), le dispositif maître M1 n'ayant pas reçu de donnée d'acquittement met fin à la communication en envoyant une condition d'arrêt sur la ligne de données SDA. Cette étape est similaire à l'étape 305 décrite en relation avec la . Les figures 6 et 7 illustrent un exemple pratique d'étapes mises en oeuvre par un dispositif esclave lors de la mise en oeuvre du procédé d'assignation décrit en relation avec la . Plus particulièrement, la illustre, schématiquement et sous forme de blocs, une communication sur bus I2C entre un dispositif maître M2 (MASTER) et un dispositif esclave S2 (SLAVE). La est un schéma bloc illustrant plus particulièrement les étapes mises en oeuvre par le dispositif esclave S2. En , le dispositif maître M2 et le dispositif esclave S2 sont reliés par un bus I2C 451, du type du bus I2C 101 décrit en relation avec la , comprenant une ligne de données SDA2, du type de la ligne de transmission SDA décrite en relation avec la , et une ligne d'horloge SCL2, du type de la ligne de transmission SCL décrite en relation avec la . Le dispositif maître M2 est un dispositif électronique du type du dispositif M1 décrit en relation avec la . Selon un exemple, le dispositif maître M2 est un processeur, ou un microprocesseur, d'un système électronique. Le dispositif maître M2 est adapté à mettre en oeuvre le procédé d'assignation d'adresse décrit en relation avec la . Le dispositif esclave S2 est un dispositif électronique du type du dispositif S1 décrit en relation avec la . Selon un exemple, le dispositif esclave S2 est une mémoire, par exemple une mémoire volatile ou une mémoire non volatile, d'un système électronique. Le dispositif esclave S2 est adapté à mettre en oeuvre le procédé d'assignation d'adresse décrit en relation avec la . De plus, le dispositif esclave S2 répond à plusieurs adresses 452 (ADDRESS). Selon un exemple, le dispositif esclave S2 répond à une adresse principale AddP et, en outre, à une adresse secondaire AddS. L'adresse principale AddP est utilisée par le dispositif maître M2 pour envoyer des commandes classiques au dispositif esclave S2. Selon un exemple, si le dispositif esclave S2 est une mémoire, le dispositif maître M2 utilise l'adresse principale AddP pour envoyer des commandes de lecture et d'écriture au dispositif esclave S2. L'adresse secondaire AddS est utilisé par le dispositif maître M2 pour envoyer des commandes plus particulières au dispositif esclave S2, par exemple des commandes de configuration. Selon un mode de réalisation, les adresses AddS et AddP sont stockées dans des registres non volatils du dispositif esclave S2. Selon un mode de réalisation, le dispositif esclave S2 est un dispositif dont l'une, ou plusieurs, de ses adresses sont configurables. A titre d'exemple, l'adresse secondaire AddS du dispositif esclave S2 est configurable en fin de fabrication du dispositif S2. L'adresse AddS est, par exemple, mise à une valeur de défaut en fin de fabrication du dispositif esclave S2. Une étape de configuration est nécessaire en début d'utilisation du dispositif esclave S2 pour définir son adresse secondaire AddS. Cette étape de configuration est d'autant plus importante que l'adresse secondaire AddS peut être utilisée pour envoyer des commandes de configuration au dispositif esclave S2. En effet, si l'adresse secondaire AddS est définie à la fabrication par une valeur par défaut, rien ne garantit que cette adresse ne soit pas déjà utilisée par un autre dispositif esclave avec lequel le dispositif maître M2 peut engager une communication sur bus I2C. Cette étape de configuration peut être mise en oeuvre, par le dispositif maître M2, en utilisant le procédé d'assignation d'adresse décrit en relation avec la . Selon un mode de réalisation, les adresses AddP et AddS sont du type de l'adresse Add décrite en relation avec la . Ainsi, l'adresse AddP, respectivement AddS, est composé d'un identifiant DTIP, respectivement DTIS, de type de dispositif et d'un numéro CIP, respectivement CIS, de dispositif. Selon un exemple, les adresses AddP et AddS sont des mots binaires de sept bits, les identifiants DTIP et DTIS sont des mots binaires de quatre bits, et les numéros CIP et CIS sont des mots binaires de 3 bits. Pour l'exemple pratique décrit ici, on considère que le dispositif esclave différencie son adresse principale de sa ou ses adresses secondaires en ce qu'elles ont des identifiants différents, mais des numéros identiques. Autrement dit, selon un mode de réalisation, les adresses AddP et AddS ont des identifiants DTIP et DTIS différents, et des numéros CIP et CIS identiques. La personne du métier saura concevoir un ensemble d'étapes mis en oeuvre par le dispositif esclave S2 dans lequel le dispositif esclave S2 différencie son adresse principale de sa ou ses adresses secondaires en ce qu'elles ont des numéros différents. La personne du métier saura, de plus, concevoir un ensemble d'étapes mis en oeuvre par le dispositif esclave S2 dans lequel le dispositif esclave ne se base pas sur la composition de ses adresses principale et secondaire pour les différencier. Le dispositif esclave S2 comprend, en outre, des registres 453 (REGISTERS) pouvant être adaptés à stocker des données pendant la mise en oeuvre d'une communication sur bus I2C. Plus particulièrement, le dispositif esclave S2 comprend des registres à stockage volatil RV, ou registres volatils RV, et des registres à stockage non volatil RNV, ou registres non volatils RNV. Le dispositif esclave S2 comprend, en outre, des variables d'état 454 (STATE) utilisées pendant la mise en oeuvre d'une communication sur bus I2C. Plus particulièrement, le dispositif esclave S2 comprend : - une variable d'état PERSO indiquant si la configuration du dispositif esclave S2 a eu lieu ou non ; - une variable d'état FSAI indiquant si le dispositif esclave S2 stocke une adresse temporaire ; et - une variable d'état FSAD indiquant si le dispositif esclave est dans un mode d'assignation ou non. Selon un mode de réalisation, lorsque la configuration n'a pas encore eu lieu la variable d'état PERSO représente un "0" (zéro). Lorsque le dispositif esclave S2 ne stocke pas d'adresse la variable d'état FSAI représente un "0" (zéro). La valeur de la variable d'état FSAD dépend des valeurs des variables d'états PERSO et FSAI. Lorsque les variables d'états PERSO et FSAI représentent toutes les deux un "0" (zéro), la variable d'état FSAD représente un "1" (un) indiquant que le mode d'assignation est activé. Dès que l'une des deux variables PERSO ou FSAI représente un "1" (un), le mode d'assignation est désactivé et la variable d'état FSAD représente un "0" (zéro). Autrement dit, la variable d'état FSAD correspond à l'inverse du résultat de l'application d'une fonction logique OU aux variables PERSO et FSAI. La illustre un exemple pratique d'un ensemble d'étapes mises en oeuvre par le dispositif esclave S2 pendant la mise en oeuvre d'un procédé d'assignation d'une adresse AddT par le dispositif maître M2. Comme dit précédemment, l'ensemble d'étapes décrit ci-après est un exemple pratique d'étapes, mais d'autres ensembles d'étapes mises en oeuvre par le dispositif esclave S2 sont à prévoir. Le dispositif esclave S2 et le dispositif maître M2 sont décrits en relation avec la . L'adresse AddT est du type des adresses AddP et AddS du dispositif esclave S2, c'est-à-dire du type de l'adresse Add décrite en relation avec la . Ainsi, l'adresse AddT se décompose en un identifiant DTIT de type de dispositif et un numéro CIT de dispositif. Selon un exemple, l'adresse AddT est un mot binaire de sept bits, l'identifiant DTIT est un mot binaire de quatre bits, et le numéro CIT est un mot binaire de 3 bits. Plus particulièrement, l'adresse AddT est du type de l'adresse secondaire AddS du dispositif esclave S2, et présente le même identifiant que l'adresse secondaire AddS. Ainsi, selon un mode de réalisation, l'identifiant DTIT de l'adresse AddT est identique à l'identifiant DTIS de l'adresse secondaire AddS, et est différent de l'identifiant DTIP de l'adresse principale AddP. A une étape 501 (START), le dispositif esclave S2 est averti du commencement de la communication par la réception d'une condition de démarrage qui a été exécutée par le dispositif maître M2 sur la ligne de données SDA2 du bus I2C. Le dispositif esclave S2 est donc disposé à recevoir et à lire les données envoyées sur la ligne de données SDA2. A une étape 502 (VERIF), consécutive à l'étape 501, le dispositif esclave S2 vérifie l'état dans lequel il se trouve. Plus particulièrement, le dispositif esclave S2 vérifie sa variable d'état PERSO indiquant si sa configuration a été effectuée ou non, et sa variable d'état FSAI indiquant si le dispositif esclave S2 stocke une adresse temporaire. De plus, à l'étape 502, consécutive à l'étape 501, le dispositif esclave S2 peut lire la valeur par défaut de son adresse secondaire AddS stockée dans un registre non volatil. Selon une variante, la valeur de son adresse secondaire peut correspondre à une valeur venant d'être configurée. A une étape 503 (ADDT), le dispositif maître M2 envoie une commande comprenant l'adresse AddT sur la ligne de données SDA2. Le dispositif esclave S2 prend connaissance de l'adresse AddT et la décompose en son identifiant DTIT et son numéro CIT. A une étape 505 (DTIT=DTIP), consécutive à l'étape 503, le dispositif esclave S2 vérifie la valeur de l'identifiant DTIT. Plus particulièrement, le dispositif esclave compare l'identifiant DTIT à l'identifiant DTIP de son adresse principale AddP. Si les identifiants DTIT et DTIP sont égaux (sortie Yes), l'étape suivante est une étape 506 (STANDARD CMD). Sinon (sortie No), l'étape suivante est une étape 507 (OTHER CMD). A l'étape 506, le dispositif esclave S2 s'attend à recevoir des commandes classiques, comme l'identifiant reçu DTIT est le même que l'identifiant DTIP de son adresse principale AddP. A une étape 508 (REF=CIS=CIP), consécutive à l'étape 506, le dispositif esclave S2 définit le numéro CIP de son adresse principale AddP comme un numéro de référence REF. A une étape 509 (CIT=REF), consécutive à l'étape 508, le dispositif esclave S2 vérifie si le numéro CIT de l'adresse AddT reçue est égal au numéro de référence REF. S'ils sont égaux (sortie Yes), l'étape suivante est une étape 510 (RECEIVE CMD). Sinon (sortie No), l'étape suivante est une étape 511 (QUIT). A l'étape 510, consécutive à l'étape 509, le dispositif esclave S2 a déterminé que l'adresse AddT reçue est la même que son adresse principale AddP, puisque l'identifiant DTIT et le numéro CIT sont égaux à l'identifiant DTIP et au numéro CIP de l'adresse principale AddP. En conséquence, le dispositif esclave S2 prend connaissance du dernier bit de la commande envoyée par le dispositif maître M2, ce bit indique si le dispositif esclave est émetteur ou récepteur dans la suite de la communication. A une étape 512 (ACK CMD), consécutive à l'étape 510, le dispositif esclave S2 envoie une donnée d'acquittement sur la ligne de données SDA2, et exécute la commande reçue de la part du dispositif maître M2. La communication entre les dispositifs M2 et S2 peut continuer comme une communication sur bus I2C classique, c'est-à-dire, par exemple, comme la communication décrite en relation avec la . L'étape 512 comprend, en outre, la réception et la mise en oeuvre d'une commande par le dispositif esclave S2. A l'étape 511, consécutive à l'étape 509, le dispositif esclave a déterminé que l'adresse AddT reçue était différente de son adresse principale AddP. La communication sur bus I2C lancée par le dispositif maître M2 ne concerne pas le dispositif esclave S2. En conséquence, le dispositif esclave S2 n'envoie pas de donnée d'acquittement, et arrête de surveiller la ligne de données SDA2. A l'étape 507, consécutive à l'étape 505, le dispositif esclave a déterminé que l'identifiant DTIT est différent de l'identifiant DTIP de son adresse principale AddP. Le dispositif esclave s'attend donc à, peut être, recevoir des commandes particulières. A une étape 513 (DTIT=DTIS), consécutive à l'étape 507, le dispositif esclave S2 vérifie si l'identifiant DTIT de l'adresse AddT reçue est identique ou non à l'identifiant DTIS de son adresse secondaire AddS. Si les identifiants DTIT et DTIS sont différents (sortie No), l'étape suivante est une étape 514 (QUIT). Sinon (sortie Yes), l'étape suivante est une étape 515 (FSAD). A l'étape 514, consécutive à l'étape 513, le dispositif esclave S2 a déterminé que l'identifiant DTIT de l'adresse AddT reçue est différent de l'identifiant DTIS de son adresse secondaire AddS. L'étape 514 est identique à l'étape 511. Autrement dit, le dispositif esclave S2 n'envoie pas de donnée d'acquittement, et arrête de surveiller la ligne de données SDA2. A l'étape 515, consécutive à l'étape 513, le dispositif esclave S2 consulte sa variable d'état FSAD pour savoir dans quel mode il se trouve. Si la variable d'état FSAD indique que le dispositif esclave S2 n'est pas dans un mode d'assignation, par exemple en représentant un "0" (zéro), (sortie 0), l'étape suivante est une étape 516 (PERSO). Si la variable d'état FSAD indique que le dispositif esclave S2 est dans un mode d'assignation, par exemple en représentant un "1" (un), (sortie 1), l'étape suivante est une étape 517 (RECEIVE CMD). A l'étape 516, consécutive à l'étape 515, le dispositif esclave S2 consulte sa variable d'état PERSO pour savoir si une configuration a déjà eu lieu ou non. Si la variable d'état PERSO indique qu'une configuration a déjà eu lieu, par exemple en représentant un "1" (un), (sortie 1), l'étape suivante est l'étape 508 (REF=CIS=CIP). Si la variable d'état PERSO indique qu'une configuration n'a pas encore eu lieu, par exemple en représentant un "0" (zéro), (sortie 0), l'étape suivante est une étape 519 (REF=CIV). A l'étape 519, consécutive à l'étape 516, le dispositif esclave S2 définit un numéro CIV stocké dans le registre volatil RV du dispositif esclave S2 comme le numéro de référence REF. L'étape suivante est l'étape 509. Le numéro CIV est décrit plus en détail ci-après. A l'étape 517, consécutive à l'étape 515, le dispositif esclave S2 a déterminé qu'il était dans un mode d'assignation. Le dispositif esclave S2 reçoit la commande suivant l'adresse AddT dans la commande envoyée par le dispositif maître M2. A une étape 520 (NO ACK), consécutive à l'étape 517, le dispositif esclave S2 n'envoie pas de donnée d'acquittement au dispositif maître M2. En effet, l'adresse AddT ne lui est pas assignée, il n'a donc pas à envoyer de donnée d'acquittement. A une étape 521 (BUS ACK), consécutive à l'étape 520, le dispositif esclave S2 reste attentif à l'apparition ou non d'une donnée d'acquittement sur la ligne de données SDA2 suivant la commande comprenant l'adresse AddT. Si une donnée d'acquittement est reçue (sortie Yes), l'étape suivante est une étape 522 (ADDT NOT FREE). Si aucune donnée d'acquittement n’est reçue (sortie No), l'étape suivante est une étape 523 (ADDT FREE FSAI=1). A l'étape 522, consécutive à l'étape 521, un dispositif esclave a répondu à l'adresse AddT, cette adresse AddT n'est donc pas libre. A une étape 525 (QUIT), consécutive à l'étape 522, le dispositif esclave S2 a déterminé que l'adresse AddT reçue est l'adresse d'un autre dispositif esclave avec lequel le dispositif maître M2 peut communiquer. L'étape 525 est identique aux étapes 511 et 514. Autrement dit, le dispositif esclave S2 n'envoie pas de donnée d'acquittement, et arrête de surveiller la ligne de données SDA2. A l'étape 523, consécutive à l'étape 521, aucun dispositif esclave n'a répondu à l'adresse AddT, le dispositif esclave S2 peut donc stocker l'adresse AddT dans un registre volatil RV, et, par exemple, l'utiliser l'adresse AddT comme adresse temporaire. Plus particulièrement, le dispositif esclave S2 stocke le numéro CIT dans son registre volatil RV. Le numéro CIV est ici alors égal au numéro CIT. Plus généralement, le registre volatil RV permet de stocker le numéro CIV d'une adresse temporaire libre. Ainsi, si à l'étape 509 suivant l'étape 519, le numéro CIT est égal à la référence, c'est-à-dire égal au numéro CIV, le dispositif esclave répond à une adresse temporaire libre. L'étape suivante est l'étape 524. De plus, à l'étape 523, le dispositif esclave S2 indique qu'il a reçu l'adresse AddT libre en modifiant sa variable d'état FSAI. Selon un exemple, la variable d'état représente alors la valeur "1" (un). A une étape 524 (STOP), consécutive à l'étape 523, le dispositif esclave S2 arrête de prendre part à la communication, par exemple en arrêtant de répondre et d'envoyer des données d'acquittement. Un avantage du mode de mise en oeuvre du procédé d'assignation décrit ici est qu'il ne nécessite pas de changement matériel dans le dispositif maître. Il est compatible avec les procédés de communication classiques sur bus I2C. De plus, un autre avantage de cette mise en oeuvre est qu'elle permet d'assigner une adresse libre à un dispositif esclave sans avoir connaissance au préalable des adresses libres. Plus particulièrement, cette mise en oeuvre permet d'assigner une adresse libre à un dispositif esclave dont une adresse secondaire peut être en conflit avec une adresse d'un autre dispositif esclave, et cela après installation du dispositif esclave dans le système comprenant le dispositif maître. Un autre avantage du mode de mise en oeuvre du procédé d'assignation est qu'il permet de modifier une adresse secondaire d'un dispositif esclave. Cela est intéressant car l'adresse secondaire d'un dispositif esclave peut être, par exemple, une adresse de configuration d'un dispositif esclave. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé d'assignation, sur une communication sur bus I2C, d'une première adresse (AddT) à un premier dispositif (S1 ; S2) par un deuxième dispositif (M1 ; M2), dans lequel le deuxième dispositif (S1 ; S2) envoie ladite première adresse (AddT) sur le bus I2C et, si le deuxième dispositif (M1 ; M2) ne reçoit aucune donnée d'acquittement, alors le premier dispositif (S1 ; S2) enregistre ladite première adresse (AddT). Procédé selon la revendication 1, dans lequel si le deuxième dispositif (M1 ; M2) reçoit une donnée d'acquittement alors le premier dispositif (S1 ; S2) n'enregistre pas ladite première adresse (AddT). Procédé selon la revendication 1 ou 2, dans lequel le premier dispositif (S1 ; S2) enregistre ladite première adresse dans des registres non volatils (RNV). Procédé selon l'une quelconque des revendications 1 à 3, dans lequel ladite première adresse (AddT) n'est assignée à aucun dispositif avec lequel le deuxième dispositif (M1 ; M2) peut être en communication. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel le premier dispositif (S1 ; S2) est dans un mode d'assignation où il attend qu'on lui assigne une adresse, et sort de ce mode d'assignation quand il enregistre ladite première adresse (AddT). Procédé selon la revendication 5, dans lequel le premier dispositif (S1 ; S2) comprend une première variable d'état (FSAD) indiquant s'il est dans le mode d'assignation ou pas. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel le premier dispositif (S1 ; S2) comprend une deuxième variable d'état (FSAI) indiquant s'il a enregistré ou non une adresse. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel la première adresse (AddT) comprend un identifiant (DTIT) de type de dispositif et un numéro (CIT) de dispositif. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel le premier dispositif (S1 ; S2) est un dispositif esclave de la communication sur bus I2C. Procédé selon l'une quelconque des revendications 1 à 9, dans lequel le premier dispositif (S1 ; S2) est une mémoire. Procédé selon la revendication 10, dans lequel le premier dispositif (S1 ; S2) est une mémoire non volatile de type EEPROM. Procédé selon l'une quelconque des revendications 1 à 11, dans lequel le deuxième dispositif (M1 ; M2) est un dispositif maître de la communication sur bus I2C. Procédé selon l'une quelconque des revendications 1 à 12, dans lequel le deuxième dispositif (M1 ; M2) est processeur. Procédé de configuration d'un troisième dispositif (S1 ; S2) comprenant le procédé d'assignation selon l'une quelconque des revendications 1 à 13. Dispositif adapté à mettre en oeuvre le procédé d'assignation selon l'une quelconque des revendications 1 à 13.