J'ai vu sur de nombreux site qu'il était possible d'utiliser 10 bits d'adresse sur le bus I2C. Après avoir lu plusieurs tutos, je ne comprends pas exactement comment cela fonctionne...
Je viens donc en quête de réponse. Mon objectif étant de disposer d'au moins 300 adresses.
Sur le principe même d'adressage 10bits, c'est expliqué sur le net, par exemple ici : I2C — Wikipédia
Par contre ça risque d'être coton à implémenter sous arduino, car sauf erreur de ma part ce n'est pas pris en charge par les bibliothèques standard wire et twi intégrées à l'IDE arduino. Donc il te faut trouver ou écrire (très complexe) une bibliothèque compatible.
A ce stade j'aurais plutôt tendance à remettre en question ton hypothèse de départ : qu'est-ce qui te fait dire qu'un bus I2C est la bonne solution pour causer avec 300 composants?
De quoi s'agit-il?
Es-tu sur de ton choix d'architecture?
Quel est le volume des données échangées?
Wario:
... Mon objectif étant de disposer d'au moins 300 adresses. ...
Vous voulez un volant de 300 adresses disponibles ou bien avoir un bus sur lequel 300 périphériques sont connectés simultanéments ? Si c'est la dernière proposition, cela risque d'être en contradiction avec la norme à cause de capacité énorme sur le bus, soit l'équivalent de 300 x 20 pF = 6000 pF. Voir les calculs donnés par le lien fourni par Bricoleau.
Complication supplémentaire, sauf à n'utiliser que des circuits programmables (genre micro processeur ou FPGA), les adresses sont distribuées par le consortium I2C, ce ne sera jamais toi qui les choisira. L'adhésion au consortium n'est pas gratuite c'est pourquoi Atmel qui n'y était pas obligé ne la pas fait. Du coup il n'a pas le droit d'utiliser le sigle I2C et a "inventé" TWO WIRE.
C'est réglé depuis qu'Atmel appartient à Microchip, qui lui adhère au consortium.