¿Cómo detecto periféricos de 1 cable sin un sondeo constante?

2

Estoy buscando a bit bang 1-Wire desde un Atmega uC. Mi diseño requiere que el Atmega (que actúa como Host) detecte la presencia de un único eeprom de 1 cable cuando está conectado físicamente a la unidad de usuario.

No quiero sondear continuamente la línea, ya que parece una pérdida de batería. No he usado 1 cable antes, por lo que podría faltar algo obvio; por ejemplo, ¿puede un periférico hacer valer una lógica baja en el encendido que podría usar como una interrupción para activar la unidad de usuario?

(Estoy trabajando en el supuesto de que el eeprom será alimentado por el uC a través de la línea de datos).

EDITAR: Estoy pensando en algo como esto: enlace

Por lo que entiendo, responderá después de que el maestro del bus inicia un pulso de reinicio. Pero, esto vuelve al método de sondeo, que no quiero usar.

¿La aplicación de energía a la EEPROM se "ve" como un pulso de reinicio? (Lo dudo).

    
pregunta hex4def6

2 respuestas

1

Si la memoria sirve, los dispositivos de un solo cable definen que un pulso de restablecimiento es cualquier pulso bajo más largo que una duración específica (creo que aproximadamente 600us) con sin duración máxima . Si se desconecta durante cuatro meses y luego se le aplica voltaje, se calificaría como un pulso bajo de 10,368,000,000us, que ciertamente es más largo que 600us. En consecuencia, los dispositivos generalmente afirman un pulso de "presencia" poco después de que se aplica la energía por primera vez. Dependiendo del rebote del contacto, es posible que tocar un dispositivo no cause un restablecimiento limpio, en cuyo caso es posible que no se obtenga el pulso "presente", pero he encontrado que la activación en un flanco descendente activado por un dispositivo remoto parece para ser bastante confiable.

    
respondido por el supercat
0

1-wire está diseñado para este tipo de sondeo, pero es posible que puedas evitarlo con algunos circuitos analógicos creativos.

Presumiblemente, la EEPROM tomará algo de corriente cuando se conecte. Puede usar una resistencia de 10 o incluso 100 ohmios en serie con la línea de tierra para el dispositivo de 1 cable que desea detectar. Use un comparador para comparar el voltaje a través de esta resistencia a un voltaje de referencia que funcione para usted, y conecte la salida del comparador a una línea de interrupción en su microcontrolador.

simular este circuito : esquema creado usando CircuitLab

Con el ejemplo anterior, su voltaje de referencia es VCC * 1k / 121k o aproximadamente 41mV para un suministro de 5V. 41 mV a través de una resistencia de detección de 10 ohmios es aproximadamente 4 mA de corriente para disparar el comparador. Esto es solo una suposición salvaje, tus niveles pueden ser mucho más bajos. Verifique la hoja de datos de la EEPROM. Dependiendo del comparador, es posible que también tenga que incluir una resistencia de pull-up en su salida y también quiera incluir un poco de histéresis. Tenga en cuenta que he conectado la referencia y la resistencia de detección hacia arriba para que cuando la EEPROM dibuje más que la referencia, la salida del comparador pase a LOW .

Usted querría experimentar con la resistencia para encontrar la resistencia más alta con la que pueda salirse sin hacer que el bus de 1 cable se vuelva inestable (cuanto mayor sea la resistencia, mayor será la caída de voltaje que tendrá, lo que facilita la detección, pero también una diferencia mayor en lo que la EEPROM ve como 0V y el nivel real del sistema 0V).

También puede poner la resistencia en la línea de datos, pero luego tendrá que usar un amplificador diferencial o un circuito de detección de corriente de lado alto, y una resistencia demasiado alta confundirá las comunicaciones.

En cualquier caso, es probable que desees deshabilitar la interrupción cuando te estás comunicando activamente para evitar toda una tormenta de interrupciones a medida que aumenta el consumo de corriente del dispositivo debido a un enlace de comunicaciones activo.

    
respondido por el akohlsmith

Lea otras preguntas en las etiquetas