Entiendo que en las líneas I2C, SCL y SDA se utilizan resistencias pull-up y los controladores de clavijas son dispositivos NPN de colector abierto que pueden conectar clavijas a tierra. Esto le da a I2C la ventaja de que el mismo bus ahora se puede compartir con múltiples esclavos, e incluso si dos o más esclavos accidentalmente intentan conducir el bus al mismo tiempo, no causarán ningún daño al sistema.
Pero esto también se puede hacer usando controladores de drenaje abierto PNP y resistencias desplegables en líneas SDA y SCL. Con esto también se pueden lograr cosas como el estiramiento del reloj y el arbitraje multimaestro.
¿La implementación actual del protocolo I2C brinda algún beneficio sobre la implementación alternativa sugerida anteriormente?
Eléctricamente tiene sentido porque la conexión a tierra es la única conexión común a todos los dispositivos en un bus IIC. Esa es una restricción mucho menor que obligar a que la alimentación sea la conexión común a todos los dispositivos IIC, como sería necesario si las líneas se elevaran y flotaran a baja a través de pulldowns.
Tenga en cuenta que no todos los dispositivos IIC necesitan ser alimentados desde la misma red o el mismo voltaje. Esto no sería cierto si ambas líneas de bus tuvieran que ser conducidas al voltaje de alimentación común único.
En los viejos tiempos, los controladores TTL eran mucho mejores para bajar una señal que para subirla. Por lo tanto, los protocolos como I2C, pero también las líneas de interrupción, el restablecimiento y otros, se implementaron utilizando un pull-up con pull-down distribuido.
Es más fácil usar tierra como una referencia común entre los subsistemas que pueden tener voltajes de suministro variables. Si usa transistores PNP para obtener un voltaje de suministro, todos los subsistemas deberían estar conectados al mismo suministro.
Aquí abundan las buenas respuestas, pero también hay otra razón.
Si el estado de reposo del bus está en tierra, no hay forma de saber si el bus está conectado o simplemente colgando en el espacio.
Es normal que el pull-up esté ubicado en el dispositivo maestro. Los esclavos generalmente no tienen pull-up. Esto se debe a que la corriente desplegable que se requeriría para establecer un nivel bajo aumentaría con la cantidad de dispositivos conectados al bus.
Un esclavo, cuando se conecta al bus, puede detectar que la línea está demasiado alta (suponiendo que no se esté utilizando) y saber que el bus está realmente allí y en silencio. Ese no sería el caso con un bus con polarización a tierra.
Si entiendo bien la pregunta un aspecto es:
En primer lugar, debe tener en cuenta que no utiliza transistores bipolares (NPN, PNP) sino MOSFET (que existen en cuatro variantes diferentes).
Los dispositivos que utilizan la variante " pull-up y NPN " utilizan un MOSFET de mejora de canal n . Debido a que la fuente de este MOSFET está conectada a tierra, el voltaje de la puerta a la fuente (que controla el flujo de corriente) es igual al voltaje entre la puerta y la tierra. Entonces, el MOSFET se puede controlar usando un voltaje entre 0 y Vdd.
Existirían tres posibilidades para implementar la variante " pull-down y PNP ":
Uso de un MOSFET de mejora de canal p
En un NMOS o CMOS IC, los MOSFET de canal p con características comparables (resistencia, etc.) requieren más espacio que los MOSFET de canal n.
En la microelectrónica, el espacio es dinero, por lo que se evitan los MOSFET de canal p si es posible.
Uso de un MOSFET de mejora de canal n
Esto requeriría que la salida del circuito lógico que controla el transistor tenga un voltaje "BAJO" del voltaje de suministro (p. ej., +5 V) y un voltaje "ALTO" por encima del voltaje de suministro (p. ej., +10 V cuando se alimenta el resto del circuito). con +5V).
La razón: el voltaje fuente-tierra será Vdd cuando el MOSFET esté conduciendo. El voltaje de la fuente de la puerta debe ser positivo, por lo que el voltaje entre la puerta y la tierra debe ser aún mayor.
Necesitaría dos suministros de voltaje, y un circuito que cambie la salida del circuito lógico de 0...+5V a +5V...+10V...
Uso de un MOSFET de empobrecimiento de canal n
Desafortunadamente, no puedo decirte mucho sobre esta solución. Sin embargo, encontré una página que usa Google que dice que los MOSFET de agotamiento son más difíciles de producir que los MOSFET de mejora y se evitan por este motivo.
Sé por la electrónica de potencia (no por la microelectrónica) que la variante de "dos fuentes de alimentación" descrita anteriormente incluso se prefiere a los MOSFET de agotamiento. (Pero no puedo decirte por qué.)
EDITAR Usando MOSFET de agotamiento de canal n, probablemente necesite un voltaje negativo (por ejemplo, -5V), por lo que también necesitará dos voltajes de suministro ...
También hay un beneficio adicional por tener líneas de datos pull-up y de tierra común (en lugar de tener VCC y pull-down comunes):
Incluso si la intención original era conectar dispositivos en la misma PCB en un espacio de unas pocas pulgadas, fue lo suficientemente exitoso, por lo que ahora no es raro tener líneas largas de un par de pies y conectar "dispositivos" que podrían ser computadoras o algo por el estilo. complejidad, con algunos dispositivos que tienen sus propias fuentes de energía (de diferente calidad, digamos que conecta algo alimentado por un enchufe de pared con algo alimentado por batería). Es mejor si la conexión funciona "al menos bien", incluso en condiciones no ideales y fuera de las especificaciones.
Y muchos de estos dispositivos conectados pueden estar conectados de alguna manera también por otros medios, entonces solo comunicación I2C. Por lo general, cuando conecta dispositivos, lo conecta con common ground
, a veces como parte de otras funciones, a veces solo porque está montado en una caja de metal y los dispositivos también están conectados a tierra con la caja (o con un enfriador común o algo así) o puede haber Ser cable blindado con blindaje puesto a tierra en el interior - que también conecta las tierras.
Si también conecta directamente las líneas de alimentación (VCC) de dichos dispositivos, tendrá problemas cuando esas líneas tengan un voltaje diferente de forma natural (claro, puede decir 5 V aquí y allá, pero dependiendo de la construcción y las tolerancias de las piezas de las fuentes de alimentación, podría ser también de 4,9 V o 5,2 V o incluso cambiar, si funciona con batería y, a veces, hace funcionar algunos motores, lo que hace que la potencia disminuya y aumente con el tiempo).
En tal caso, existe efectivamente un cortocircuito entre esas fuentes de energía de parte de un voltio y, dependiendo de las fuentes (y la resistencia de las vías), podrían fluir corrientes relativamente altas, lo que resultaría no solo en el desperdicio de energía y el aumento de calor, sino incluso en daños ( o acortando la vida) de algunas de esas fuentes. Lo cual no es bueno.
Tener una conexión a tierra común y pull-ups evita tales problemas: la tierra es tierra y las resistencias pullup solo permiten una corriente cruzada realmente pequeña, incluso si el VCC difiere mucho entre los dispositivos.
No tienes que enviar tanta energía a través del chip, si es pull up.
Debido a que el chip no maneja nada, solo está creando un cortocircuito para llevar el bus a 0 y haciendo una apertura para llevarlo a 1.
Si se desconectara, tendría que enviar energía a través del chip para llevar el bus a 1. Si el bus sufre un cortocircuito accidental, podría ser mucha energía la que pase a través de ese chip para tratar de empujarlo. hasta 1.
Descargo de responsabilidad: soy un EE bastante pésimo en este punto.
PlasmaHH
marcus muller
bimpelrekkie
winny
TonyM
EML