¿Cómo evitar que Attiny84 se encienda con una línea de datos levantada?

Desarrollé una placa de sensor simple basada en el microcontrolador Attiny84a que puede comunicarse a través de una conexión en serie. Estoy usando un cargador de arranque arduino y la biblioteca SoftwareSerial en los pines 5 (RX) y 3 (TX). Me gustaría poder mantener la línea serie conectada mientras se apaga y enciende el sensor. Pero parece que el Attiny84 se alimenta a través de la línea RX de la conexión en serie, que es elevada por el otro compañero de comunicación.

Parece que la línea RX se tira a 3,4 voltios cuando no hay nada conectado y puedo medir 1,4 V en los pines Vcc y GND de Attiny84 cuando la línea serial está conectada. Aparentemente, eso es suficiente para encenderlo, ya que mi LED de depuración comienza a parpadear tenuemente.

¿Hay alguna forma sencilla de mantener apagado el Attiny84 incluso cuando el cable serie está conectado?

¿Resistencia en serie en la línea de datos? O una resistencia de carga en las líneas de suministro de energía paralelas al AVR, pero tenga en cuenta que su línea de datos se cargará. Es causado por los diodos protectores en el chip, no puedes cambiar eso.
Si encuentra una buena solución, me encantaría saberlo, esto siempre me ha molestado y solo he vivido con eso. Básicamente, cuando tenía todo lo demás en la placa de circuito, consumiría suficiente energía para que el ATMega/Tiny estuviera por debajo del umbral de reinicio.
Es una mala práctica de diseño, otros chips pueden bloquearse y autodestruirse en estas condiciones (encender los pines de E/S antes de que se aplique energía a los pines de suministro).
Entonces, ¿está diciendo que una resistencia en serie en la línea de datos es una mala práctica de diseño ya que el pin de E / S todavía está alto? Parece el enfoque más simple y puedo confirmar que funciona en mi caso. Por curiosidad, ¿qué tipo de chip es ese que podría autodestruirse?
¿Cuál es el valor de la resistencia pull up? ¿Puedo atreverme a sugerir que es simplemente una cuestión de aumentarlo para que no haya suficiente corriente para alimentar el attiny?
En mi caso, funcionó bien con una resistencia de 1k, lo que debería limitar la corriente a unos 3 mA. Sin embargo, la solución de diodo es más limpia, ya que bloquea la corriente no deseada en lugar de simplemente reducirla.

Respuestas (3)

Dependiendo de los márgenes que tenga disponibles, esto podría funcionar para usted. Permite que la señal Rx atraiga la entrada ATTiny Rx hasta 0,6-0,7 V, pero no permite que la corriente fluya de regreso al procesador. El nodo "ATTiny VCC" se enciende y apaga con el procesador. Si esto es de 5 V (en lugar de 3,3 V), debe dimensionar la resistencia para que no cause problemas de reflujo en el circuito Rx.

Si 0.6V es demasiado alto para activar un buen BAJO en el ATTiny, puede usar un diodo de caída baja como un Schottky o un germanio.

esquemático

simular este circuito : esquema creado con CircuitLab

Fácil de implementar y funciona a las mil maravillas en mi caso. Muchas gracias.
Creo que el diodo bloqueará el flujo de corriente a la entrada
Sí, para eso es.

Esto sucede porque hay diodos de protección internos en los pines GPIO, por lo que cualquier voltaje que entre se deriva al riel de alimentación interno...

ingrese la descripción de la imagen aquí

Aunque estos son pequeños diodos, este chip usa tan poca energía que a menudo es suficiente para ejecutarlo. ¡Esta es la fuente de uno de los 10 errores más difíciles que he encontrado!

Método n.° 1: tire de ~RESET bajo

Siempre que el voltaje en el pin ~RESET sea inferior a 0,2*Vcc, el chip permanecerá en una condición de reinicio y no funcionará.

ingrese la descripción de la imagen aquí

Puede conectar el pin ~RESET al pin de la fuente de alimentación y usar una resistencia desplegable para mantener el pin ~RESET por debajo del umbral cuando no hay una fuente de alimentación activa. Tenga en cuenta que necesita el menú desplegable porque hay un menú desplegable interno en el pin ~RESET.

esquemático

simular este circuito : esquema creado con CircuitLab

Este método desperdicia un poco de corriente, pero mantendrá el chip en un estado de reinicio cuando no esté alimentado activamente.

Tenga en cuenta que habrá una caída de voltaje en el diodo.

Método n.º 2: pines de entrada aislados

esquemático

simular este circuito

Aquí usamos la fuente de alimentación para habilitar el pin de entrada. Si no hay voltaje proveniente de la fuente de alimentación, no hay corriente significativa para fluir hacia el pin de entrada.

¿Está diciendo que al mantener el sistema en reinicio no puede retroceder la energía? No estoy seguro de haber encontrado que eso sea cierto.
La energía aún volverá a fluir, pero el chip no funcionará, estará en un estado RESET.
No -1, pero no creo que esto realmente aborde el problema, que es retroalimentar un chip a través de su E/S. Solo está enmascarando el síntoma.
¡Muchas gracias por esta respuesta informativa! Sin embargo, también me parece que el n. ° 1 no aborda el problema de raíz y el n. ° 2 parece un poco más complicado que la solución de diodo discutida por Will Dean y Daniel, así que probaré la suya primero.

Si la velocidad de sus comunicaciones es lo suficientemente baja y su presupuesto de energía lo permite, a menudo puede evitar esto simplemente agregando un diodo entre el pin RX y el mundo exterior (ánodo al pin RX, cátodo al mundo exterior), y luego tener una resistencia pull-up en el pin RX (su micro podría hacer esto internamente).

Luego, el dispositivo remoto solo puede bajar el pin RX, pero la resistencia pull-up lo volverá a subir.

Probablemente querrá usar un diodo schottky (por ejemplo, BAT54), y debe pensar en los niveles bajos de entrada (Vil) que obtendrá en el pin micro; verifique que todavía estén bien.

Si no puede hacerlo así, puede usar un búfer en esa línea, seleccionando un búfer que no tenga este comportamiento de diodo de protección a VCC (por ejemplo, 74LVC o uno de los otros como este - Llamada de Texas Instruments este soporte 'Ioff' - vea esto por ejemplo)

Uh....... maldición?
No puedes decir "jinx" después de 5 minutos :-)
Me tomó un poco escribir mi respuesta y hacer el esquema ... ¡desde mi perspectiva fue simultáneo!
Sí, soy demasiado perezoso para hacer los esquemas.