Cálculos do resistor de tração I2C

10

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:

RmEun=Vcc-0,43mUMA=966,7Ω

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 linerotulado 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:

Rmumax=300ns10pF+400pF=731,7Ω

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:

Rmumax=300ns400pF=750Ω

ainda abaixo do valor máximo permitido.

helloworld922
fonte

Respostas:

11

Há um erro de digitação na folha de dados da Atmel; o tempo de subida para o gabinete de 100kHz deve ser 1000ns, não 100ns (não precisaria ser menor que o gabinete de 400kHz de 300ns), e você obtém:

1 1vocês400pF=2.5kΩ

A folha de dados do LCD (quase certamente) significa a capacitância máxima do barramento, não a capacitância que ele adiciona ao barramento. Provavelmente adiciona cerca de 10pF. Você pode verificar com um medidor LCR ou configurá-lo com um resistor de 2k e observar os tempos de subida.

Muitos dispositivos não cumprem totalmente as especificações oficiais de 400kHz , por isso é melhor consultá-las para entender as condições sob as quais 400kHz pode funcionar (capacitância de barramento, pullup / fonte de corrente / etc). Consulte a seção 6 em particular (consulte, por exemplo, nota 4 na pág.47:

[4] Para conduzir a carga total do barramento a 400 kHz, é necessária uma IOL de 6 mA a 0,6 V VOL. As peças que não atendem a essa especificação ainda podem funcionar, mas não a 400 kHz e 400 pF)

Mais adiante, essas tabelas são bastante úteis e parecem concordar com seus cálculos:

Pullups I2C

Oli Glaser
fonte
Sim, notei isso na folha de dados. um sinal de 400kHz deve ter um tempo de subida mais curto do que um sinal de 100kHz: D
helloworld922
1

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.

Nick Alexeev
fonte