¿Cómo se calcula la capacitancia del bus eléctrico para la traza I2C?

3

Estoy tratando de aprender cómo calcular la capacitancia del bus de un árbol I2C con un maestro y varios esclavos.

Por ejemplo, en este documento de TI , se muestra cómo calcular el valor de el resistor pull-up y solo asume que la carga cautiva de cada línea de bus es de 400 pF.

¿Dónde obtengo este número de pF en mi diseño i2c?

En lo que puedo pensar es en dos fuentes (¿qué me estoy perdiendo?):

  1. Necesito buscar especificaciones de todos los dispositivos esclavos y sumar sus Capacitancias para estar en paralelo, ¿verdad?
  2. La segunda fuente sería el seguimiento I2C en sí, ¿verdad? Si mi rastro es, digamos, 6 pulgadas de largo, ¿cómo calculo la capacitancia de este rastreo?

    
pregunta user1406716

2 respuestas

3
¿Cómo se calcula la capacitancia del bus eléctrico para la traza I2C?

No lo es. Puedes adivinar y verificar, o diseñar para tolerar tanto como sea posible.

¿De dónde vino 400 pF? Quien haya escrito esa nota de la aplicación, la sacó de la nada, pensando que es un número "grande", pero aún así funciona bien con las partes que está tratando de mostrarte lo maravillosos que son.

400 pF suena bastante alto, incluso para un trazo largo en una tabla grande, por lo que es un número tan bueno como cualquier otro. Por supuesto, la única forma de saberlo con seguridad es medir su caso particular.

Sin embargo, la mejor estrategia cuando le preocupa que esté alcanzando este límite es usar el menor número de detonaciones posibles para no exceder la corriente máxima que un nodo debe poder hundir cuando mantiene una línea de bus baja. Es lo mejor que puede hacer, por lo que ahora depende de la velocidad del bus ajustarse a la capacidad que tenga realmente.

Por ejemplo, digamos que este es un bus IIC normal donde la corriente máxima de sumidero por línea es de 3 mA. (3.3 V) / (3 mA) = 1.1 kΩ, que es el pullup más bajo que puede usar con una potencia de 3.3 V. Digamos que una línea realmente tiene una capacidad parásita de 400 pF para conectarse a tierra. El pullup y esta capacitancia forman un filtro de paso bajo R-C con una constante de tiempo de (1.1 kΩ) (400 pF) = 440 ns. No recuerdo de la cabeza lo que el nivel lógico alto garantizado es para IIC (su tarea es buscar), así que usemos 2.0 V como ejemplo. Se requieren .93 contantes de tiempo para que el filtro R-C aumente de 0 a 2.0 V, que es de 410 ns. Ese es el tiempo que tarda después de que se "escribe" un 1 en el bus antes de que se garantice que todos los dispositivos lo vean como un 1. Obviamente, necesita que el tiempo de medio bit sea un poco más largo que eso. A 410 ns de tiempo de medio bit, tiene 820 ns de tiempo de bit, o una velocidad de reloj máxima de 1.2 MHz. De nuevo, quieres un margen. Un factor de 2 sería bueno, por lo que podría considerar 600 kHz como el límite de velocidad de reloj superior. Los esclavos IIC básicos pueden tener 400 kHz como límite superior, en lo que este bus debería funcionar correctamente.

De nuevo, recuerda que algunos números se inventaron en este ejemplo. Es su trabajo verificar todas las especificaciones relevantes y sustituir los valores correctos. Solo estoy tratando de mostrar cómo realizar los cálculos.

    
respondido por el Olin Lathrop
0

El I2C es un bus para conectarse a varios esclavos. Estos esclavos pueden ser otros MCU o sensores (giroscopios, accelo, etc.). Ahora cada pin del esclavo (que está conectado al bus) tiene su propia capacitancia y carga la línea con ese valor. Para los microcontroladores suele ser unos pocos picoFarads. Echa un vistazo a la hoja de datos. Ahora, estos pueden modelarse como pequeños condensadores en paralelo (para cada esclavo / maestro en el bus).

Ahora, tenemos rastros que conectan estos buses y estos tienen su propia impedancia (capacitiva e inductiva). Puede olvidarse de los inductivos, ya que vienen a jugar solo a altas frecuencias y no a I2C. La capacidad de estas pistas se puede calcular utilizando herramientas como Saturn PCB o Agilent para obtener una estimación aproximada de la carga capacitiva en su bus.

    
respondido por el Board-Man

Lea otras preguntas en las etiquetas