¿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.