STM32: Ejecutando muchos periféricos al mismo tiempo

0

Necesito hacer EMC para una placa controlada por un STM32F2. Idealmente, quiero activar, a toda velocidad, todos los periféricos de la placa.

Es decir, quiero leer / escribir lo más rápido posible en las memorias (SD, Flash, RAM) y poner / recibir tanto como sea posible a través de los canales de comunicación (Ethernet, USART). Todo esto, al mismo tiempo .

En este momento tengo controladores individuales para cada periférico, pero los controladores están "bloqueando", lo que significa que cuando un controlador opera, todos los demás están inactivos.

¿Cómo puedo hacer que todos mis periféricos se activen a toda velocidad al mismo tiempo?

Nota : Realmente no me importa lo que hacen los periféricos, solo que estén muy activos.

    
pregunta Randomblue

2 respuestas

6

No es necesario que ejerza todos los periféricos, solo los que usa en su producto. El STM32 tiene sincronización de reloj y casi todos los periféricos opcionales están deshabilitados en el inicio. Solo debe preocuparse por los periféricos que habilite en su firmware de producción.

En lo que respecta a la operación simultánea, si realmente lo necesita (parece un modo de operación diferente del código de producción que dice que está bloqueando, por lo que EMI también puede ser diferente), tiene 3 opciones: interrupciones, DMA y tareas RTOS preventivas. Cada uno de estos es un tema en sí mismo, pero existen muchos ejemplos, por ejemplo, la mayoría de los ejemplos que vienen con la biblioteca de periféricos estándar están controlados por interrupciones. Tenga en cuenta que los pequeños detalles de la implementación pueden nuevamente dar como resultado un rendimiento muy diferente (y, por lo tanto, una actividad periférica y de bus). Hacer que "todos los periféricos se muevan a toda velocidad al mismo tiempo" es una tarea muy desafiante si realmente lo dice literalmente.

    
respondido por el Thorn
2

No necesitas activar todo a la vez. Necesita hacer un rastreo de emisiones en el campo cercano antes de siquiera pensar en ir a un centro de pruebas FCC / CE.

Obtenga una sonda de alcance y haga un bucle a tierra con la punta y conecte la sonda de 10MΩ a un analizador de espectro de 50Ω. Descubra todos sus puntos calientes y luego vea qué se filtra a través de sus escudos y cables. Los cables de E / S serán sus mayores radiadores y también los chips de distribución del reloj a bordo. 120MHz es su reloj central, así que preste atención a los armónicos y subarmónicos.

Habiendo hecho esto una docena de veces o más, puedo ayudar con soluciones como los choques CM, el blindaje y las tapas de ESR bajas. No olvides las pruebas de ingreso.

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas