Aislamiento de E / S digital en un Atmega328

1

Tengo una MCU Atmega328P que está impulsando un controlador de motor paso a paso utilizando su E / S digital. Sin embargo, me gustaría usar los mismos pines para impulsar el motor externamente y posiblemente usar una MCU o hardware diferente. Cuando el controlador externo está accionando el motor utilizando estos mismos pines, la MCU Atmega328P puede apagarse y su estado sería desconocido. Sé que no es seguro conducir los pines de la MCU Atmega328P con niveles lógicos cuando se apaga y de hecho destruirá el chip.

Para superar esto, pensé en agregar diodos Schottky de baja potencia entre los pines de la MCU Atmega328P y las entradas del controlador del motor (como se muestra en la imagen). ¿Estaría bien o puede alguien recomendar una mejor solución? Sé que podría usar un optoacoplador pero no tengo espacio en el tablero para colocar tantos de ellos.

ACTUALIZACIÓN:estoesloquefinalmenteestoypensandohacer(verimagen).El buffer elegido aquí puede contener hasta + 6.5V en sus terminales de salida cuando se apaga. También me di cuenta de que incluso cuando se usa un control lógico externo, la placa todavía tiene que estar encendida para que funcionen los controladores del motor. Esto significa que el Atmega a bordo también se encenderá. Sin embargo, existe la posibilidad de que el usuario olvide inadvertidamente encender la placa antes de conectar una fuente de control externa. En este caso, el Atmega a bordo experimentaría 5V en sus pines de E / S cuando se apague, lo que obviamente no es bueno. Estos buffers se encargan de eso.

    
pregunta electrophile

2 respuestas

4

Yo usaría un traductor de nivel de suministro dual como 74LVC8T245.

Como se indica en la hoja de datos , cuando VCCA o VCCB están en el nivel de GND, ambos puertos están en alta impedancia (es decir, desconectados). Por lo tanto, puede conectar, digamos, VCCA al VDD de su ATMEGA328, así que cuando se apague, no ocurrirá ningún problema.

También puede triplicar las salidas al elevar el OE. De esta manera, puede hacer que su circuito tire de OE alto cuando está conectando un controlador externo, para evitar conflictos.

Todas las entradas pueden aceptar 5,5 V independientemente del voltaje de VCC y, como dato adicional, también puede usar un valor VCCA diferente del VCCB.

    
respondido por el next-hack
0

El problema que tiene aquí es que realmente necesita quitar la unidad ATMEGA completamente cuando conduzca con la fuente externa, y viceversa . Ninguna matriz de diodos lo hará por usted para todas las permutaciones de salidas y configuraciones de energía.

Como tal, sería prudente agregar multiplexores 2: 1, o lógica equivalente, a cada señal para que las salidas del controlador se alimenten explícitamente de uno u otro.

Puedeseleccionarquécontrolesestánhabilitadosporvariosmétodos.

  1. Configureelconectoralafuenteexternaparaincluirunpinqueestáconectadoenpuenteenelcableparaforzarelmuxenelestadoapropiado.Deesamanera,enchufarelcablepermitiráautomáticamenteelcontrolexternoalcontrolador.Opcionalmente,estepindecontroltambiénsepuedeconectarauninterruptorenalgúnlugarsisevaaconectardeformapermanentedentrodeunrecintodealgúntipo.

simular este circuito : esquema creado usando CircuitLab

  1. Use un pin de la atmega para seleccionar el canal ... con las opciones apropiadas para seleccionar el canal apropiado cuando la atmega esté apagada.
  2. Agregue un interruptor DIP o puente para configurar manualmente el enrutamiento.
respondido por el Trevor_G

Lea otras preguntas en las etiquetas