Tengo un par de dispositivos en una red 1-Wire incluyendo un DS18S20. Si inicio una conversión de temperatura, tarda 750ms en completarse. Durante ese tiempo, me gustaría consultar otros dispositivos en la red y luego volver a leer el scratchpad para obtener la temperatura. La consulta a esos otros dispositivos enviará una serie de reinicios en la línea y me pregunto si detendrán la conversión de temperatura en curso.
Respuesta
¿Demasiados anuncios?(Ten en cuenta que estoy utilizando la hoja de datos más reciente del DS18B20, pero las diferencias deberían ser mínimas, especialmente en lo que respecta al protocolo 1-Wire, ya que se supone que los dispositivos son compatibles).
Está explícitamente prohibido hacer cualquier cosa en el autobús si se está utilizando energía parásita:
Si el DS18B20 es alimentado con energía parásita /.../ el bus debe ser jalado en alto por un pullup fuerte durante toda la conversión de temperatura.
Por otro lado, si se utiliza una fuente de alimentación externa, la hoja de datos indica:
el bus 1-Wire está libre para transportar otro tráfico durante el tiempo de conversión de la temperatura.
Además, en la hoja de datos dan un ejemplo en el que se puede sondear activamente si el proceso de conversión ha terminado.
Esto parece sugerir que puedes usar el bus 1-Wire para comunicarte con otros dispositivos -- lo que implica que serías capaz de enviar un pulso de reset -- a menos que estés usando energía parásita. No he podido encontrar nada que confirme esto directamente, así que lo mejor es que lo pruebes en una protoboard.