Estoy viendo un efecto secundario inesperado, y podría usar algunos indicadores. Estoy trabajando en un proyecto que utiliza cinco TCS34725 . Estos sensores se están interconectando a través de I2C en un Plataforma de lanzamiento DSP F28069M de TI . El primer problema que enfrenté fue que todos los sensores de color tienen la misma dirección (y no se pueden volver a escribir). Me dieron un DG407 mux analógico de 8 canales para intentar una solución. Al principio, pensé que esta solución era bastante sencilla: usaría el mux para SDA y SCL. Sin embargo, lo que estoy viendo es que la primera dirección mux que establezco funciona perfectamente bien, puedo leer la identificación del sensor de color y los registros de configuración de lectura / escritura, etc. La siguiente dirección mux que establezco hace que el bus I2C se registre como ocupado en la TI DSP.
Mi teoría es que el mux hace una transición temporal a alta impedancia entre los cambios de dirección, y que el estado de alta impedancia se ve de alguna manera como una condición de inicio por parte del DSP, por lo tanto siempre ocupando el bus hasta que se reinicie.
Según el manual de referencia técnica de DSP , puedo establecer el bit I2CMDR.IRS en 1 , que efectivamente desactiva el periférico, restablece sus bits de estado y retiene su configuración. Intenté configurar este bit, retrasar 10uS, cambiar el mux, esperar 10uS, luego borrar el bit, pero aún veo el problema.
¿Alguna idea de cómo puedo solucionar este problema?
Diagrama de circuito a continuación.