Acerca del microcontrolador que tiene muchos controladores SPI

1

Me gustaría preguntar si alguien tuvo la experiencia de usar más de 1 controlador / canal SPI en un proyecto. Tuve este pyboard donde tiene hasta 3 controladores SPI, aunque creo que solo se pueden usar 2 controladores SPI. Esto es diferente del esquema esclavo SPI múltiple tradicional que se aplica solo en 1 controlador SPI.

Tuve esta configuración donde el 1er controlador SPI (SPI_1) hablará con un concentrador de relés basado en SPI y el 2do controlador SPI (SPI_2) hablará con múltiples sensores basados en SPI. Ahora mi pregunta es, ¿pueden funcionar estos dos controladores SPI simultáneamente o en ese momento, SPI_1 se activará & apague el (los) relé (s) mientras SPI_2 leerá los valores del sensor . Estos dos generan relojes seriales diferentes entre sí, ¿verdad? ¿Se puede lograr esto? también, ¿cómo se aplicaría esto en el lado de la programación?

Tuve muchas experiencias en SPI con tablas arduino, pero aún no he intentado usar dos controladores SPI diferentes al mismo tiempo, ya que las tablas arduino solo tienen 1 controlador SPI.

EDITAR:

enlace es el microcontrolador utilizado por el Pyboard v1.1.

enlace es la placa a la que voy a utilizar.

    
pregunta Mheruian

1 respuesta

2

No mencionó un microcontrolador específico, pero en general sí: un microcontrolador con más de un controlador SPI puede utilizar los controladores simultáneamente en la medida de lo posible.

Recuerde que muchos microcontroladores son de un solo núcleo y solo pueden ejecutar una sola instrucción a la vez, pero con DMA se puede lograr más paralelismo. Por ejemplo, podría indicar al motor DMA que cambie una gran parte de los datos a través de un controlador SPI e inmediatamente después de iniciar las comunicaciones SPI en otro controlador SPI.

Entonces, si bien es probable que no pueda ejecutar los controladores SPI exactamente a la vez, para sus necesidades serán efectivamente simultáneos. Si tiene periféricos altamente sensibles al tiempo en los que las operaciones SPI en múltiples buses SPI deben coordinarse exactamente en el mismo instante, el FPGA se usa normalmente para implementar múltiples controladores SPI que pueden funcionar completamente en paralelo. Pero si escribe un par de bytes en un controlador de retransmisión en un bus y lee unos pocos bytes de un sensor en un bus diferente, asumo que está bien si estas transacciones ocurren con unos microsegundos de diferencia.

    
respondido por el uint128_t

Lea otras preguntas en las etiquetas