Je comprends que dans les lignes I2C, SCL et SDA utilisent des résistances de pull-up et les pilotes de broches sont des dispositifs NPN à collecteur ouvert qui peuvent conduire les broches à la terre. Cela donne à I2C l'avantage que le même bus peut maintenant être partagé avec plusieurs esclaves, et même si deux esclaves ou plus tentent accidentellement de conduire le bus en même temps, cela n'endommagera pas le système.
Mais cela peut également être fait en utilisant des pilotes de drain ouvert PNP et des résistances de retrait sur les lignes SDA et SCL. Des choses comme l'étirement de l'horloge et l'arbitrage multimaître peuvent également être réalisées avec cela.
La mise en œuvre actuelle du protocole I2C offre-t-elle des avantages par rapport à la mise en œuvre alternative suggérée ci-dessus?
Réponses:
Sur le plan électrique, cela a du sens car la terre est la seule connexion commune à tous les périphériques d'un bus IIC. C'est beaucoup moins une restriction que de forcer l'alimentation à être la connexion commune à tous les appareils IIC, comme cela serait nécessaire si les lignes étaient entraînées haut et flottaient bas via des déroulements.
Notez que les appareils IIC n'ont pas tous besoin d'être alimentés à partir du même réseau ou de la même tension. Cela ne serait pas vrai si les deux lignes de bus devaient être entraînées à la seule tension d'alimentation commune.
la source
Dans le bon vieux temps, les conducteurs TTL étaient beaucoup mieux à tirer un signal vers le bas que vers le haut. Par conséquent, des protocoles comme I2C, mais aussi des lignes d'interruption, une réinitialisation et d'autres, ont tous été implémentés à l'aide d'un pull-up avec pull-down distribué.
la source
Il est plus facile d'utiliser la terre comme référence commune parmi les sous-systèmes qui peuvent avoir des tensions d'alimentation variables. Si vous utilisez des transistors PNP pour atteindre une tension d'alimentation, tous les sous-systèmes doivent être connectés à la même alimentation.
la source
Les bonnes réponses abondent ici, mais il y a aussi une autre raison.
Si l'état de repos du bus est au sol, il n'y a aucun moyen de savoir si le bus est connecté ou simplement suspendu dans l'espace.
Il est normal que le pull-up soit situé sur l'appareil maître. Les esclaves n'ont généralement pas de pull-up. En effet, le courant de pull-down qui serait nécessaire pour affirmer un niveau bas augmenterait avec le nombre de périphériques connectés au bus.
Un esclave, lorsqu'il est branché sur le bus, peut alors détecter que la ligne est tirée haut (en supposant qu'elle n'est pas utilisée) et savoir que le bus est réellement là et silencieux. Ce ne serait pas le cas avec un bus polarisé à la masse.
la source
Si je comprends bien la question, un aspect est:
Tout d'abord, vous devez noter que vous n'utilisez pas de transistors bipolaires (NPN, PNP) mais des MOSFET (qui existent en quatre variantes différentes).
Les appareils utilisant la variante " pull-up et NPN " utilisent une amélioration à canal n MOSFET d' . Parce que la source de ce MOSFET est connectée à la terre, la tension grille-source (contrôlant le flux de courant) est égale à la tension entre la grille et la terre. Le MOSFET peut donc être contrôlé à l'aide d'une tension comprise entre 0 et Vdd.
Il y aurait trois possibilités pour implémenter la variante " pull-down et PNP ":
Utilisation d'un MOSFET d'amélioration de canal p
Sur un CI NMOS ou CMOS, les MOSFET à canal p avec des caractéristiques comparables (résistance, etc.) nécessitent plus d'espace que les MOSFET à canal n.
En microélectronique, l'espace est de l'argent, donc les MOSFET à canal p sont évités si possible.
Utilisation d'un MOSFET d' amélioration à n canaux
Cela nécessiterait que la sortie du circuit logique commandant le transistor ait une tension "FAIBLE" de la tension d'alimentation (par exemple + 5 V) et une tension "ÉLEVÉE" au-dessus de la tension d'alimentation (par exemple + 10 V lorsque le reste du circuit est alimenté). avec + 5V).
La raison: la tension source-masse sera Vdd lorsque le MOSFET sera conducteur. La tension grille-source doit être positive, la tension entre la grille et la masse doit donc être encore plus élevée.
Vous auriez besoin de deux alimentations en tension - et d'un circuit décalant la sortie du circuit logique de 0 ... + 5V à + 5V ... + 10V ...
Utilisation d'un appauvrissement du canal n MOSFET d'
Malheureusement, je ne peux pas vous en dire beaucoup sur cette solution. Cependant, j'ai trouvé une page utilisant Google disant que les MOSFET d'appauvrissement sont plus difficiles à produire que les MOSFET d'amélioration et ils sont évités pour cette raison.
Je sais par l'électronique de puissance (pas la microélectronique) que la variante "deux alimentations" décrite ci-dessus est même préférée aux MOSFET à épuisement. (Mais je ne peux pas vous dire pourquoi.)
EDIT En utilisant des transistors MOSFET à canal N, vous auriez probablement besoin d'une tension négative (par exemple -5V), vous auriez donc également besoin de deux tensions d'alimentation ...
la source
Il y a aussi un autre avantage supplémentaire à avoir des lignes de données communes de mise à la terre et de pull-up (par rapport au VCC et à la pull-down communs):
Même si l'intention initiale était de connecter des périphériques sur le même PCB à une portée de quelques pouces seulement, cela a été un succès suffisant, il n'est donc pas rare d'avoir les longues lignes de quelques pieds et de connecter des "périphériques" qui pourraient être des ordinateurs ou quelque chose d'égale complexité, avec certains appareils ayant leurs propres sources d'alimentation (de qualité différente, disons que vous connectez quelque chose alimenté par une prise murale avec quelque chose alimenté par batterie). Il est préférable que la connexion fonctionne "au moins bien" même dans des conditions non idéales et hors spécifications.
Et beaucoup de ces appareils connectés peuvent être connectés d'une manière ou d'une autre par d'autres moyens, alors seulement la communication I2C. Habituellement, lorsque vous connectez des appareils ensemble, vous le connectez avec
common ground
- parfois dans le cadre d'autres fonctions, parfois simplement parce qu'il est monté sur un boîtier métallique et que les appareils sont également reliés à la terre avec le boîtier (ou avec un refroidisseur commun ou quelque chose comme ça) ou il peut y avoir être un câble blindé avec un blindage mis à la terre à l'intérieur - qui relie également les terres.Si vous connectez également directement les lignes électriques (VCC) de ces appareils, vous aurez des problèmes lorsque ces lignes seront naturellement sur une tension différente (bien sûr, cela peut dire 5 V ici et là, mais en fonction de la construction et des tolérances des pièces des sources d'alimentation, il pourrait également être de 4,9 V ou 5,2 V ou même changer, s'il est alimenté par batterie et fonctionne parfois avec certains moteurs, ce qui fait chuter et augmenter la puissance au fil du temps).
Dans un tel cas, il y a effectivement un court-circuit entre ces sources d'alimentation de la partie A Volt et selon les sources (et la résistance des voies), il pourrait y avoir des courants relativement élevés entraînant non seulement des pertes d'énergie et une augmentation de la chaleur, mais peut-être même des dommages ( ou raccourcir la durée de vie) de certaines de ces sources. Ce qui n'est pas bon.
La mise à la terre commune et les tractions évitent de tels problèmes - la terre est mise à la terre et les résistances de traction ne permettent qu'un très petit courant croisé même si le VCC diffère beaucoup des appareils.
la source
Vous n'avez pas à envoyer autant de puissance via la puce, si elle est tirée vers le haut.
Parce que la puce ne pilote rien, elle crée simplement un court-circuit pour amener le bus à 0 et fait une ouverture pour le ramener à 1.
S'il était abaissé, vous devrez envoyer de l'énergie via la puce pour conduire le bus à 1. Si le bus se trouve être un court-circuit accidentel, cela pourrait être beaucoup d'énergie que vous passez à travers cette puce pour essayer de le pousser. jusqu'à 1.
Avertissement: je suis un EE assez moche à ce stade.
la source