Es una forma razonable de resolver el problema de las colisiones accidentales.
Otro método habitual es utilizar un drenaje abierto salida. Es el método utilizado por I2C para asegurar que dos controladores que colisionan no consuman demasiada corriente, y para asegurar que la señal sea baja o alta, y no algo intermedio.
De esta manera puedes conectar tantas salidas como quieras, porque o no hacen nada, o tiran de la salida a tierra. Si dos o más pines llevan la misma señal a tierra, no pasa nada malo.
Para que esto funcione, se necesita una sola resistencia pull-up en el bus, y como nadie está activamente conduciendo la señal alta, esto hace que la tasa de bits máxima sea menor.
Dado que está utilizando una interfaz de serie controlada por software, debería ser fácil de adaptar a sus necesidades. En lugar de configurar los puertos como salidas push-pull y luego configurarlos como bajos o altos, los configuras como entradas con pull-up cuando se supone que son salida alta o entrada y los configuramos como salida baja cuando se supone que son salida baja .
0 votos
Lee atentamente la respuesta de Pipe. El diagrama de su respuesta no está completo. Como no sabes la solución, sospecho que no sabes lo que es una resistencia pull-up. Busca en Google "pull-up resistor". Y sí, pipe es correcto: no te comuniques poniendo el pin alto y bajo. Comunícate poniendo el pin a bajo y configurándolo como entrada y salida. Cuando está en modo de salida intentará drenar todo el voltaje de la línea dando 0. En modo de entrada no producirá ningún voltaje por lo que la resistencia pull-up es libre de suministrar voltaje dando 1. Si ambos transmiten 0 = no hay problema. Si ambos transmiten 1 tampoco hay problema
1 votos
@slebetman Por favor, vea el sección de ayuda en los comentarios para saber cómo se utilizan los comentarios en el intercambio de pilas. Si hay problemas con mi respuesta, el comentario debe estar ahí. Si quieres responder a la pregunta, debes publicarla como una respuesta real que pueda ser votada. Las respuestas en los comentarios van en contra del modelo de Stack Exchange de las respuestas examinadas por la comunidad.