Estou tentando dirigir esse monitor LCD I2C com um microcontrolador ATxmega16A4U .
Ambos os dispositivos estão listados para funcionar com frequências de clock I2C de até 400 kHz. Os dois dispositivos são os únicos dispositivos no barramento I2C.
No entanto, elaborar os cálculos para os limites do resistor de pull-up fornece alguns valores bastante estranhos.
Cálculo do valor mínimo do resistor de tração I2C:
Observando as folhas de dados do uC, na página 92 lista a capacitância máxima de entrada de pinos de 10pF.
No entanto, para o LCD, ele possui na página 8 algo chamado Capacitive load represent by each bus line
rotulado como Cb e é listado com um valor máximo de 400pF. Estou assumindo que devo apenas adicionar esse valor à capacitância de entrada de 10pF uC, mas isso parece realmente alto e os cálculos são instáveis.
Por exemplo, quando tento calcular o valor máximo do resistor de pullup para um relógio de 400kHz:
Estou interpretando mal a folha de dados do LCD? Obviamente, o valor máximo permitido do resistor de pullup não pode ser menor que o valor mínimo permitido.
Da mesma forma, se eu assumir uma capacitância máxima de barramento líquido de 400pF, eu obtenho:
ainda abaixo do valor máximo permitido.
Seu cálculo faz sentido. Há um cálculo semelhante nesta nota do aplicativo de TI (seção 4.1) . Observe que eles usam V cc = 1,8V para calcular R min .
É concebível que a C b é a capacitância máxima ônibus que LCD pode trabalhar com, e não a capacitância que LCD acrescenta ao ônibus. Você pode testar a capacitância das entradas I 2 C medindo sua constante RC. Isso forneceria uma verificação de sanidade em ordem de magnitude.
fonte