Estoy tratando de manejar esta pantalla LCD I2C con un microcontrolador ATxmega16A4U .
Ambos dispositivos están listados para funcionar con frecuencias de reloj I2C de hasta 400 kHz. Los dos dispositivos son los únicos dispositivos en el bus I2C.
Sin embargo, calcular los cálculos para los límites de resistencia pull-up da algunos valores bastante extraños.
Cálculo del valor mínimo de resistencia de pullup I2C:
Mirando las hojas de datos de uC, en la página 92 se enumera la capacitancia máxima de entrada del pin de 10pF.
Sin embargo, para la pantalla LCD, tiene en la página 8 algo llamado Capacitive load represent by each bus line
etiquetado como Cb, y aparece en la lista con un valor máximo de 400pF. Supongo que debería agregar este valor a la capacitancia de entrada de 10pF uC, pero esto parece muy alto y los cálculos son inestables.
Por ejemplo, cuando intento calcular el valor máximo de resistencia de pullup para un reloj de 400 kHz:
¿Estoy malinterpretando la hoja de datos LCD? Obviamente, el valor máximo permitido de resistencia pullup no puede ser menor que el valor mínimo permitido.
Del mismo modo, si supongo una capacidad máxima del bus neto de 400pF, obtengo:
aún por debajo del valor máximo permitido.
Tu cálculo tiene sentido. Hay un cálculo similar en esta nota de la aplicación TI (sección 4.1) . Observe que usan V cc = 1.8V para calcular R min .
Es concebible que C b sea la capacitancia máxima del bus con la que LCD puede trabajar, y no la capacitancia que LCD agrega al bus. Puede probar la capacitancia de las entradas I 2 C midiendo su constante RC. Eso proporcionaría el control de cordura de orden de magnitud.
fuente