Habilitar DTR / RESET mediante software con una MCU ATMega328

0

Estoy creando un proyecto usando un ATMega328, y para la comunicación en serie y programándolo, conecté un controlador USB CP2102. El problema con atmega328 (y todas las placas arduino) es que la MCU se reinicia cada vez que el sistema envía señales al pin DTR del puerto serie, por ejemplo, cuando tenemos el dispositivo siempre conectado al puerto USB de una PC y la computadora se reinicia o se enciende, la MCU se reinicia. Para evitar este comportamiento, tengo un interruptor físico que abre y cierra la conexión DTR del módulo USB al pin de reinicio de la MCU, que funciona bastante bien.

Mi pregunta es, ¿cómo puedo deshacerme del interruptor físico y tener la funcionalidad para habilitar / deshabilitar el DTR para restablecer la conexión por software usando un pin MCU?

Lo intenté usando una compuerta NAND con 2 transistores NPN con entradas DTR y un pin digital y una salida para reiniciar el pin, pero no funcionó bien.

EDIT:

Soy consciente de alterar los archivos del controlador del puerto USB y desactivar el DTR, y el indicador de fusible RSTDISBL, que no son lo que estoy buscando. Necesito una forma sencilla de habilitar / deshabilitar la conexión DTR / reset por software y un pin MCU.

    
pregunta Christos Lytras

1 respuesta

1

¿Quieres decir algo como esto?

Cuando "CONTROL" se maneja ALTO:

DTR es ALTO, el N-FET está APAGADO (Vgs = 0), y RST es ALTO.

DTR está BAJO, el N-FET está ENCENDIDO (Vgs = 5V) y presionando RST BAJO.

Cuando se activa "CONTROL" BAJO:

DTR es ALTO, el N-FET está APAGADO (Vgs = -5V), RST es ALTO.

DRT está BAJO, el N-FET está APAGADO (Vgs = 0V), RST está ALTO.

Cuando "CONTROL" se encuentra en estado de alta impedancia:

R3 levanta la compuerta N-FET, conectando DTR y RST cuando DTR está en BAJO.

Básicamente, cuando el CONTROL es ALTO, DTR está habilitado.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Wesley Lee

Lea otras preguntas en las etiquetas