¿La condición de DETENER tiene algún significado en un solo sistema maestro I2C?

5

Actualmente estoy trabajando para reescribir parte del código en mi controlador I2C, y estoy tratando de averiguar el propósito exacto de la condición de STOP.

Creo que en un sistema de múltiples maestros, una vez que se produce una condición de INICIO, los otros maestros no pueden / no deben conducir el autobús hasta que se haya producido una PARADA.

  • Pero ¿qué pasa con un solo sistema maestro?
  • ¿La condición de PARADA tiene alguna función? ¿Qué es exactamente lo que hace?
  • Debido a que el bus I2C funciona con DC-x Hz, ¿no podría seguir haciendo el inicio? ¿Condiciones y condiciones de reinicio cada vez que necesite enviar datos?
  • ¿Qué te da hacer la DETENCIÓN al final?
pregunta w1res

1 respuesta

8

El STOP es una indicación al dispositivo esclavo de que las comunicaciones están completas. Está arraigado en el protocolo y los dispositivos esclavos que cumplen con las especificaciones esperan verlo, por lo que simplemente no lo puedes dejar de lado.

Por ejemplo, si está realizando una escritura de página en una EEPROM serie 24AA04 (hasta 16 bytes de datos), la EEPROM dejará de almacenar datos en el búfer y comenzará a escribir en el flash al recibir el STOP del maestro. No está obligado a enviar una página completa, por lo que necesita la PARADA como una clara indicación de que no habrá más bytes. (Algunas EEPROM descartarán las transacciones pendientes si no se recibe una PARADA en el momento esperado / apropiado, lo que puede llevar a algunos problemas de depuración que causan problemas).

Algunos dispositivos también usan STOP para ingresar en un modo de consumo de energía reducido, consumiendo menos energía hasta que el siguiente START los despierte.

    
respondido por el Adam Lawrence

Lea otras preguntas en las etiquetas