Múltiples señales de salida con un solo reloj

1

Aquí está el trato ...

Necesito transmitir datos a 8 componentes idénticos. Cada componente tiene un reloj y una señal de entrada.

  1. MCU solo envía datos. Los componentes solo reciben datos.
  2. Los 8 componentes son iguales y reciben el mismo formato de flujo de 366 bits (solo con valores diferentes)
  3. Todos los componentes usan el mismo reloj.
  4. Los datos deben transmitirse a 25Mhz, el reloj también debe funcionar a 25Mhz.

Este es un trabajo para un FPGA pero estoy tratando de salirme con la miya en una MCU de 120Mhz. ¿Cuál sería la mejor manera de abordar esta tarea? No puedo enviar los datos en serie (enviar los datos a cada componente a la vez) y no pude encontrar una MCU con 8 unidades SPI.

Toda la ayuda sería apreciada.

    
pregunta Gilad

2 respuestas

2

Bueno, si su chip tiene una interfaz de memoria externa que no está utilizando, entonces podría hacer algo un poco travieso, suponiendo que la interfaz de memoria externa se puede configurar correctamente. La idea es simple: conecte todos los pines MOSI en los chips en paralelo a los pines del bus de datos con un pin MOSI por cada pin de datos, y conecte todos los pines del reloj al reloj del bus de datos, posiblemente con un búfer. Luego, todo lo que debe hacer es configurar la interfaz de memoria externa para que se ejecute con la velocidad de transmisión correcta y escribir los datos en la región asignada de la memoria con el motor DMA. Naturalmente, deberá reformatear los datos para que el bit 0 de cada palabra corresponda al primer periférico, el bit 1 corresponda al segundo, y así sucesivamente.

    
respondido por el alex.forencich
1

Si los componentes de recepción no tienen pines de selección de esclavos, puede usar buffers digitales de tres estados para emular la selección de esclavos. Estos tipos de búferes tienen pines de habilitación que pueden poner a cada circuito de búfer en un modo de triple estado (alta impedancia) si se desea. De esa manera, puede vincular el pin CLK de la MCU a las entradas de cada búfer y solo habilitar uno a la vez. En el circuito a continuación, solo he mostrado 3 componentes para mantener el circuito conceptualmente simple. Expandir a 8 debería ser obvio.

simular este circuito : esquema creado usando CircuitLab

Las resistencias desplegables son necesarias porque las clavijas CLK son entradas en el lado del componente. Cuando realice un triple estado de una salida de búfer, se verá como un pin flotante en las entradas CLK. Por lo tanto, un pull-down forzará el voltaje para que sea una señal baja y limpia cuando el búfer se declara de forma triple.

En la parte superior de mi cabeza, recientemente usé un 74LVC125A, que es un búfer cuádruple de 3.3V con funcionalidad tri-state. Usando dos de ellos te da 8 buffers tri-estatales. Hay, por supuesto, varios otros buffers disponibles.

Aquí está el diagrama lógico de una hoja de datos representativa como ejemplo:

    
respondido por el Dan Laks

Lea otras preguntas en las etiquetas