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

3

He desarrollado una placa de sensores simple basada en el microcontrolador Attiny84a que puede comunicarse a través de una conexión 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 Serial, que el otro socio de comunicación pone en alto.

Parece que la línea de RX se lleva a 3.4 voltios cuando no hay nada conectado y puedo medir 1.4V a través de los pines Vcc y GND del Attiny84 cuando la línea serie está conectada. Aparentemente, eso es suficiente para encenderlo, ya que mi LED de depuración comienza a parpadear débilmente.

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

    
pregunta Simon Harst

3 respuestas

1

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

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

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Daniel
2

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

Aunqueestossonpequeñosdiodos,estechiputilizatanpocaenergíaqueamenudoessuficienteparaejecutarlo.Estaeslafuentedeunodelos top-10 errores más difíciles siempre he sido difícil de encontrar!

Método # 1 - Pull ~ RESET Low

Mientras el voltaje en el pin ~ RESET sea inferior a 0.2 * Vcc, entonces el chip permanecerá en una condición de reinicio y no se estará ejecutando.

Puedeconectarelpin~RESETalpindelafuentedealimentaciónyusarunaresistenciadesplegableparamantenerelpin~RESETdebajodelumbralcuandonohayaunafuentedealimentaciónactiva.Tengaencuentaquenecesitaelmenúdesplegableporquehayunpull-upinternoenelpin~RESET.

simular este circuito : esquema creado usando CircuitLab

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

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

Método # 2 - Aislar pines de entrada

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 fluye corriente significativa hacia el pin de entrada.

    
respondido por el bigjosh
1

Si su velocidad de comunicación es lo suficientemente baja y su presupuesto de energía lo permitirá, 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 de pull-up en el pin RX (su micro puede hacer esto internamente).

Luego, el dispositivo remoto solo puede tirar del pin RX hacia abajo, pero la resistencia de pull-up lo hará retroceder.

Probablemente querrá usar un diodo schottky (por ejemplo, BAT54), y debe pensar en los niveles de entrada baja (Vil) que obtendrá en el micro pin - compruebe que aún estén bien.

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

    
respondido por el user1844

Lea otras preguntas en las etiquetas