¿Cuál es el flujo del programa para que se ejecuten varios puertos SPI al mismo tiempo?

0

¿Cuál es el flujo del programa para que varios puertos SPI se ejecuten al mismo tiempo? Soy un pensador lineal, por lo que es difícil pensar en completar más de una tarea a la vez. Necesito leer dos ADCs de 24 bits al mismo tiempo (o cerca de él). Los puertos SPI tendrán una velocidad de 40MHz y necesito tomar 1,000,000 (1M) lecturas por segundo.
El procesador es un PIC32MZ2048ECH de 144 pines. Puedo usar solo C o C con el RTOS gratuito.
Los ADC son ADS1675 por Texas Instruments.

    
pregunta Kentj

2 respuestas

1

Hice algo como esto antes (alrededor de 2006), necesito acelerar la programación de dispositivos flash SPI en nuestra producción y queremos hacer una operación SPI paralela para todos los 8 dispositivos flash. Así que pensando fuera de la caja, lo que hice es:

  • cree un dispositivo que pueda insertarse en 8 dispositivos
  • el pin CS, CLK, MOSI están todos conectados en común a todos los dispositivos. Entonces, todos los dispositivos flash, reciben los comandos de estos pines al mismo tiempo.
  • Para leer, usé un puerto completo (PORTB0 a PORTB7) para conectarme al MISO individual de los dispositivos flash.

Esto fue un éxito. Utilizó SPI bitbanging e implica el desplazamiento de bits para formar los datos leídos desde el puerto. Pero sigue siendo muy rápido que acceder o leer un dispositivo SPI de uno en uno.

Pero veo que está utilizando PIC32MZ2048 y solo 2 dispositivos SPI, tal vez pueda intentar explorar la QSI (Interfaz cuádruple en serie) si puede satisfacer sus necesidades sin tener que recurrir a los golpes de bits.

    
respondido por el newbie programmerz
0

A estas velocidades, tendrá que pagar impuestos al PIC32 por encima de sus capacidades si tiene algo más que hacer. Mi enfoque al problema sería configurar los activadores DMA para leer / escribir fragmentos más grandes a la vez (consulte enlace ) y confiando en gran medida en interrupciones y máquinas de estado.

    
respondido por el Mathieu L.

Lea otras preguntas en las etiquetas