Multiplexación de la funcionalidad del pin en el procesador NXP p1010

0

Estoy tratando de hacer un diseño pequeño con el procesador P1010.

Durante la secuencia de encendido, el procesador obtiene la configuración a través de pines específicos.

Todos ellos también se utilizan para otras funciones. La guía del procesador nos dijo que tenemos dos opciones aquí.

  • Primero: use un dispositivo PLD (CPLD específicamente).
  • El segundo en usar resistencias pull-up y pull-down. Yo no Necesito una flexibilidad PLD ahora, así que planearé usar resistencias.

Escribiré sobre un pin específico aquí, pero en general es igual para todos ellos.

Primera pregunta:

Tenemos dos pines. Uno de ellos es EC_MDC / cfg_cpu_boot. El segundo es LISTO / TRIG_OUT. LISTO: Afirmado: indica que el dispositivo ha completado la operación de restablecimiento y que el núcleo e500 no está en estado de apagado (siesta, duerme o duerme). Necesito algún tipo de hematología aquí, así que mientras esté READY 0, el portor debe usar una resistencia (pullup o pull down). Pero cuando READY se va 1, debería usar la funcionalidad EC_MDC (ir a otra parte de las resistencias de derivación y de gráficos)

La segunda pregunta es casi la misma.

Tenemos algunos pines que tienen triples menciones. Algo como IFC_CLK_1 / USB_NXT / IFC_CS_3_B. Vamos a cambiar entre ellos utilizando software. Pero, ¿cómo deberíamos rotar este pinn de tal manera que usemos diferentes partes de los esquemas y pasemos por alto a otros?

Por ejemplo, IFC_CLK_1 se usa como un reloj durante algunas operaciones para una parte de las estadísticas. En el otro momento, nos gustaría usar IFC_CS_3_B como chip select para una parte completamente diferente de los esquemas.

En general, ¿cómo podemos usar los pines para diferentes actividades representadas por partes diferentes diferentes y no relacionadas?

    
pregunta Alexey Smirnov

1 respuesta

0

Esa es una pregunta bastante amplia.

Entonces, la mayoría de los microcontroladores tienen alguna forma, típicamente algunos registros de control, que puede usar en su firmware para cambiar la funcionalidad de un pin.

Ahora, si necesita "multiplexar" ese pin a diferentes señales / elementos de su circuito, necesitará algún tipo de multiplexación.

En el caso de las señales digitales, eso podría ser simplemente algunos transistores que direcciona con otro pin; en el caso de señales analógicas, o señales digitales rápidas , esto podría ser un poco más complicado y necesitar interruptores analógicos específicos, ya sea que estén basados en transistores discretos, por ejemplo. en los IC de conmutador analógico (por ejemplo, desde TI , o ST . Básicamente , vaya al sitio web de cualquier fabricante de semiconductores y busque "interruptor analógico"), o incluso relés, completamente y totalmente depende de su aplicación. Además, aún necesitará algo de salida para programar estos dispositivos de multiplexación, y eso requerirá más pines de salida, y parece que ya se encuentra en una situación en la que estos son escasos.

En general, siento que estás haciendo algo mal: si ya usas un microcontrolador relativamente grande, solo usa uno con aún más pines y simplemente tienes un pin para cada parte de tu esquema. Si no puede hacer eso, busque las salidas o entradas digitales que no necesita cambiar / leer rápidamente, y conéctelas a algún tipo de extensor IO, ya sea un simple registro de desplazamiento o algún tipo de conexión I²C IO-extender IC, o un CPLD, o algo conectado a algún bus de alta velocidad, o cualquier otra forma de usar algunos pines para proporcionar muchos pines IO.

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas