Estoy intentando conectar un microcontrolador compatible con 8051 a un acelerómetro usando el bus I2C. Ambos dispositivos funcionan a la misma tensión, 3.3v. Sin embargo, no logro entender algo: ¿no se creará un cortocircuito directo cuando el microcontrolador establece una lógica ALTA en SCL o SDA y el dispositivo esclavo intenta mantener la línea en la lógica BAJA? No entiendo cómo evitar esto ...
¿Cómo puedo hacer que la MCU flote las líneas en lugar de colocar una lógica ALTA en ellas? Me doy cuenta de que puedo cambiar el estado de las líneas a "entrada" en lugar de salida, pero ¿es seguro evitar un cortocircuito?
Como yo lo veo, podría ocurrir el siguiente escenario:
Si la MCU cambió del modo 'entrada' al modo 'salida', ¿no podría el pin estar en el estado ALTO, incluso si configuró el pin en BAJO, y luego configuró el modo de entrada en 'salida'? ¿El voltaje de entrada no cambiará el estado de nuevo a ALTO debido a que el pin está en modo "entrada", antes de que tenga la oportunidad de cambiar al modo de salida? Luego, durante unos pocos uS, estaría emitiendo una lógica alta, antes de que la MCU ejecutara la siguiente instrucción para convertir el pin en BAJO.