¿Impedir que la línea de entrada de datos bit-bang vuelva a encender el dispositivo?

2

Estoy construyendo una máquina Z80 a partir de componentes, para hablar inicialmente con una PC a través de bit golpeado E / S a través de un FTDI cable USB, y tengo poca idea de cómo evitar la alimentación de la placa Z80 de una fuente de datos de 5 V en línea. Los datos de Z80 a PC están funcionando bien, al contrario de lo contrario. Soy un neófito en esto, desde un fondo de codificación.

(Nosemuestraarriba,tambiénhetenidoqueagregarunN4148hackyentreU1ylalíneadebusdedatos).

ElproblemasurgecuandoquierorecibirbitsenlamáquinaZ80,enviadosporlaPC:

AlapagarlamáquinaZ80,permanecesemi-alimentadadesdelalíneadedatosde5VdesdelaPC.Hepasadohorasymuchobuscandotratandodeentenderesto.LamayorpartedeInternetparecepreocupadoporvolveraalimentarconseguridadaRaspiyArduino,perohuboalgunoshallazgos:

Culpable:Este sucede a través de mi puerta U1 AND: el SN74HC08N hoja de datos muestra la Clasificación Máxima Absoluta para la corriente de" pinza "de entrada como (no debe exceder) +/- 20 mA fuera del rango de voltaje 0 a VCC, siendo VCC 0 aquí (apagado) ), que recojo significa que se puede volver a encender inadvertidamente desde las entradas. Por lo tanto, la corriente a la entrada del U1 AND está saliendo a través de la línea VCC, alimentando nuevamente la placa.

Correcciones que puedo ver / he probado:

  • Poniendo un segundo N4148 o mejor en el VCC de U1 AND gate para limitar la alimentación a un mA pequeño. Intentado, oculta / resuelve el problema, pero no puedo imaginar que esto sea correcto?

  • Use un MOSFET / BJT para intentar manejar U1 solo desde VCC, enviando datos FTDI a la puerta / base. No tengo la habilidad suficiente para saber si esto es más correcto que un diodo.

  • Op-amp plus MOSFET (como en un pregunta relacionada pero distinta ) - Puedo seguir adelante, pero ¿es realmente así? Esto no se siente como un enfoque estándar para una pequeña máquina de 8 bits, pero tal vez me equivoque.

  • Optoaislamiento : esto se debe en gran parte a las respuestas de lo que puedo ver, pero no sé si esto es una práctica estándar para su dispositivo de consumidor promedio. ¿Todas las microcomputadoras con capacidad RS-232 de 8 bits comunes fueron realmente optoaisladas? Los esquemas que he encontrado parecen usar simplemente el MAX232 o su equivalente, pero no puedo averiguar cómo ayuda eso.

¿Cómo, en su experiencia, uno tiende a evitar esto al diseñar tales circuitos?

    
pregunta El Zorko

2 respuestas

4

Agregue una resistencia en serie, como 10K, solo a la línea de señal de entrada, lo que limitará la corriente sin ralentizar demasiado la señal.

No relacionado, pero es posible que desee agregar un pullup de 100K para establecer un nivel lógico conocido cuando el cable FTDI está desenchufado.

simular este circuito : esquema creado usando CircuitLab

Hay ciertos chips lógicos que no tienen el mismo tipo de red de protección interna y se pueden conectar directamente a una tensión de entrada, incluso cuando no están encendidos, pero no es necesario aquí.

Otro enfoque es simplemente insertar un BJT con una resistencia de base de 10 K, que invierte la señal. Si coloca un 1N4148 desde la base hasta el emisor, puede soportar grandes transitorios o ESD en la entrada sin freír nada.

simular este circuito

    
respondido por el Spehro Pefhany
1

Envíe una señal BREAK en la interfaz asíncrona desde la PC para restablecer el Z80, esto establecerá los datos de TX en inactivo, que serán 0 V en una interfaz de nivel TTL.

Algunos software de comunicaciones de PC, algunos USARTS y algunos convertidores de USB a ASYNCH no pueden mantener la condición BREAK permanentemente, pero por lo general pueden causar un pulso largo (muchas longitudes de caracteres) y esto debería ser suficiente para que el circuito se reinicie.

    
respondido por el KalleMP

Lea otras preguntas en las etiquetas