¿Desbloqueo de entrada de MUX?

2

Estoy usando un CP2103 para interactuar con un simple 74HC4051 MUX. Quiero usar 3 de los puertos de E / S en el CP2103 para controlar los pines de entrada del MUX. El 4to puerto de E / S se está utilizando para otra cosa. El problema es que al cambiar los puertos de E / S, hay un retraso al que el MUX reacciona demasiado rápido. Si pasé de una entrada de 0-0-0 a un 1-1-1, entonces, durante el tiempo que tarda el CP2103 en cambiar todas sus salidas, en la salida del MUX, también veré las salidas para 0- 0-1 y 0-1-1 son altos por aproximadamente 10 uS cada uno. Sé que esto se debe a los puertos de E / S del CP2103 que cambian uno por uno, en lugar de hacerlo simultáneamente.

Desafortunadamente, no puedo dar muchos más detalles sobre lo que hay en esas salidas, ya que es una cuestión de trabajo, pero todo lo que puedo decir es que incluso el pequeño pulso de 10 uS está teniendo una reacción no deseada.

Entonces, mi pregunta es, ¿hay un MUX que tenga algún tipo de rebote integrado (5 ms) o algo así que estos pequeños retrasos no se registrarán? Realmente me gustaría hacer esto sin tener que obtener un microprocesador, ya que parece un poco innecesario para algo como esto.

Pensé en usar condensadores para retrasarlo, pero luego me di cuenta de que solo retrasaría las otras salidas y no arreglaría nada.

Espero haber logrado transmitir mi pregunta correctamente y ustedes lo entienden. Siéntase libre de hacer cualquier pregunta y trataré de responder.

    
pregunta MCG

5 respuestas

2

Si su aplicación lo permite, puede usar un código gris para las asignaciones de canales mux. Es decir, elija los canales de modo que al cambiar entre ellos, solo cambie un bit de la palabra de dirección S [2: 0] a la vez.

    
respondido por el pericynthion
1

Puede averiguar cómo hacer que las salidas cambien simultáneamente (si es posible) o puede agregar alguna lógica de percebe que le permita corregirlo. Esto definitivamente no es algo que aparece muy a menudo.

Un ejemplo sería agregar un 74HC595 para controlar las líneas de dirección. El HC595 tiene un pestillo de salida. Por lo tanto, necesita tres líneas para controlar los datos del reloj y el latch de salida. Tendrá que hacer bit-bang en la salida en serie, la cual tomará algo más de tiempo (pero luego puede tener 8 salidas si las necesita, si no solo usa los bits de orden inferior y cambia tres bits a la vez, luego cierre) ).

    
respondido por el Spehro Pefhany
1

El código fuente del controlador Linux cp210x hace que parezca que el chip toma una palabra GPIO con máscara de bits que controla todos los pines, lo que potencialmente podría hacer un cambio bastante coordinado. Sin embargo, ese controlador solo parece exponer una interfaz de una en una. Quién sabe qué encontrarías en otros sistemas operativos. Sin embargo, la mayoría de los sistemas le permitirán a alguien con privilegios administrativos desconectar el controlador habitual y hablar las operaciones USB explícitas a un dispositivo, por lo que quizás pueda lograr un mejor rendimiento al operar el chip directamente a través de algo como libusb.

Sin embargo, incluso si puede cambiar los bits de salida al mismo tiempo, no debería prestar atención no sincronizada al resultado del multiplexor. Realmente deberías poner algo en muestra que solo cuando sea válido.

Una vez que tenga el CP2103 y un chip multiplexor, y tenga que hacer algo para solucionar el problema de falla, probablemente sea mejor que obtenga el MCU USB con el extremo más bajo que pueda encontrar y programarlo para que sea un MUX controlado por USB. que transfiere la entrada seleccionada a la salida a una frecuencia de muestreo alta, sincrónica con cualquier cambio en la selección de entrada.

    
respondido por el Chris Stratton
0

Usa el pin habilitado.

Haga que la habilitación sea baja, solo después de seleccionar la dirección.

    
respondido por el skvery
0

No puedo imaginarme una situación en la que necesitaría un multiplexor analógico combinado con circuitos de rebote, que por su naturaleza son digitales, pero, de todos modos, ¿realmente necesita un multiplexor analógico? Para un simple circuito de 3 in y 8 out como el que usted describe, usaría un 74HC138 o un 74HC238, en función de si las salidas deben ser activas bajas o altas activas.

Dependiendo de exactamente lo que impulsan las salidas, puede usar un filtro RC en cada salida para filtrar los impulsos no deseados o puede colocar las salidas a través de un circuito de rebote como el MC14490 que tiene seis canales, aunque eso es relativamente componente costoso y también requiere un condensador externo para establecer su sincronización.

Aunque ha dicho que un microprocesador podría ser un poco excesivo, es una aplicación ideal para algo como el PIC16F505, que viene en un solo paquete de 14 pines y reemplazaría directamente al 74HC4051 sin componentes adicionales y bajo costo adicional .

    
respondido por el Finbarr

Lea otras preguntas en las etiquetas