Cómo determinar los parámetros de temporización del maestro I2C

1

Soy relativamente nuevo en I2C, pero he leído mucho sobre el tema y estoy confundido en cuanto a los parámetros de tiempo necesarios al diseñar un Maestro I2C.

Conozco este cuadro en el manual en la página 48.

Sin embargo, ofrece una gran variedad de valores posibles.

Por ejemplo, necesito configurar los siguientes parámetros para mi Maestro I2C (usando un programa de National Instruments) en Modo Estándar:

tSU;STA - MIN = 4700 ns
tHD;STA - MIN = 4000 ns
tSU;DAT - MIN = 250 ns
tHD;DAT - MIN = 0 ns
tSU;STO - MIN = 4000 ns
tBUF - MIN = 4700 ns
tHIGH - MIN = 4000 ns
fSCL - MIN = 0 - MAX = 100 kHz

¿Cómo puedo calcular los valores apropiados para mi bus I2C para todo lo anterior?

¿Siempre usa el mínimo? ¿Importa cuántos dispositivos esclavos hay, etc.?

    
pregunta MrHappyAsthma

1 respuesta

1

Normalmente, un dispositivo esclavo I2C funcionará con cualquier maestro que no sea más rápido de lo que esperaba. En algunos casos, puede haber problemas si el maestro es demasiado lento, pero generalmente son solo un problema si el maestro es realmente lento (por ejemplo, tomar varios segundos para hacer algo que normalmente tomaría menos de un milisegundo) . En general, la especificación I2C dice que para que algo sea un esclavo I2C adecuado, debe ser capaz de adaptarse a una cierta velocidad, y que los maestros tienen derecho a suponer que los dispositivos I2C podrán adaptarse a esas velocidades o agregar un saludo para decirle al maestro para reducir la velocidad.

Cualquier esclavo I2C estándar debe cumplir con los estándares mínimos para su velocidad especificada, y cualquier dispositivo estándar que funcione como maestro I2C debe funcionar con cualquier dispositivo que cumpla con los estándares asociados con su velocidad especificada Los microcontroladores programados para actuar como esclavos I2C no siempre se ajustan a los tiempos previstos (su capacidad para hacerlo depende en gran medida del firmware instalado), pero la mayoría de los otros dispositivos esclavos no deberían plantear ningún problema.

    
respondido por el supercat

Lea otras preguntas en las etiquetas