Configuración de encendido para MCU usando CPLD y multiplexación de pin

0

simular este circuito : esquema creado usando CircuitLab

Supongamos que tenemos lo mismo aquí. La lógica detrás de esto es muy simple. Durante el arranque de la MCU, comprueba los pines CONF1 y CONF2 en busca de datos (LOW o HIGH) y configura sus componentes internos basándose en esto. También durante la secuencia de inicio contiene BOOT_COMPLATE HIGH por ejemplo. Después de que MCU entra en estado de listo, maneja BOOT_COMPLATE en la dirección opuesta (BAJA en este ejemplo). Después de ese pin en la MCU se utilizan para la funcionalidad de DATA1 y DATA2. El proveedor de MCU recomienda utilizar CPLD para este tipo de trabajo. Pero no se avergüence de forma gratuita. Mis pensamientos acerca de cómo debería funcionar esto y se ve como todos juntos:

simular este circuito

  1. Encienda CPLD primero (suponga que ya tenemos configurado el programa adecuado)
  2. Unidad IO2 e IO3 BAJA o ALTA según sea necesario por configuración
  3. Pruebe el nivel de la señal en IO1 y espere a BAJO en este ejemplo (indica el inicio de MCU completo)
  4. Establezca IO2 y IO3 en tres estados (flotante)
  5. ¿Hecho? ¿O me estoy perdiendo algo?

También sería bueno tener un ejemplo de VHDL o SystemVerilog para esta simple situación

    
pregunta Alexey Smirnov

1 respuesta

0

Me parece bien. Encaja con la descripción que le diste. Creo que esto es básicamente lo que el proveedor de MCU tenía en mente.

Lo único que debe tener en cuenta es lo que hacen los "Otros componentes" durante el período de arranque. Más específicamente, cómo influyen en las señales CONF1 / CONF2. Podría ser que también tiren de las líneas en una dirección (no de forma activa, por supuesto, pero debido a un levantamiento / descenso interno oa través de los diodos ESD).

Si es la dirección que te conviene (igual que la CPLD), entonces todo está bien. Si no, podría haber problemas, dependiendo de qué lado tira más fuerte. Si este es el caso, podría / debería usar componentes "aislados" entre los "Otros componentes" y su estructura MCU / CPLD.

Es lo más común en las resistencias en serie que limitan la corriente y, por lo tanto, la influencia que los "Otros componentes" pueden tener en las señales de configuración durante el arranque.

OFF-TOPIC: ¡¿Me estoy preguntando por qué recomiendan usar un CPLD para algo tan simple ?! ¿Por qué no puedes simplemente usar resistencias de pull-up o pull-down fijas?

    
respondido por el nickagian

Lea otras preguntas en las etiquetas