DSP para generación de señal de control de precisión simple

1

Actualmente estoy frustrado por las limitaciones de la aritmética de punto fijo en un microcontrolador para un avión cuadrotor. El avión con el que estoy experimentando está usando un ATMEGA. Pensé: ¿sería posible reemplazar el ATMEGA con un DSP equipado con una unidad flotante de punto único?

Mis requisitos son:

El panel de control existente tiene especificaciones listadas en línea . Utiliza un ATMEGA1284P, y esa es la parte que estoy buscando reemplazar. Eso significaría que el reloj de la CPU debería ser de al menos 20 MHz y debe haber alrededor de 32 pines de salida, algunos de los cuales admiten I2C.

Si tiene experiencia con controladores DSP y tiene algunas recomendaciones para esto proyecto. Los números de pieza de la CPU que están disponibles en Digikey o en línea serían aún mejores.

EDITAR: la latencia ha cambiado para calificar

    
pregunta speciousfool

2 respuestas

2

100 Hz es muy lento para la mayoría de los micros. Un dsPIC 33F o 24H, por ejemplo, puede ejecutar 400,000 instrucciones en ese tiempo.

A menos que esté haciendo algo inusual, probablemente no necesite un punto flotante de hardware. La instrucción de 400 k es mucho, incluso si se usan aproximadamente 100 a la vez para realizar operaciones de punto flotante individuales.

Probablemente no necesite lo que tradicionalmente se considera "precisión única". Tenga en cuenta que "precisión simple" por sí mismo es un término sin sentido en un sentido absoluto, ya que depende de la máquina y de la implementación. Solo es significativo en relación con "doble", con el único significado de que este último tiene más precisión y probablemente más rango. Suponiendo que te refieras a la mantisa de 24 bits, ¿realmente necesitas todo eso? Como usted dice, las mediciones serán de 12 bits, y las salidas resultantes probablemente sean menores que eso. A menudo utilizo un formato FP con 16 bits de mantisa en casos como este. Esto aún deja algunos bits adicionales para que los errores de cuantificación de múltiples operaciones se mantengan por debajo de su nivel de ruido original, pero en general se asignan mejor al hardware disponible y, por lo tanto, son más rápidos.

Entonces, en lugar de decir que necesita hardware FP, debería decir qué tipo de operaciones necesita realizar cada 10 ms. Existe una buena posibilidad de que no necesite hardware FP para cumplir con las especificaciones. Eso deja a su disposición un mundo de micros mucho más grande, que puede ser útil para sus otros atributos, como mejores salidas PWM para impulsar los motores, por ejemplo.

    
respondido por el Olin Lathrop
2

Parece que hay una optimización que se necesita hacer. Pero, al final, si aún necesita un punto flotante, puede considerar el uso del microcontrolador Cortex M4 que tiene una unidad FPU. Existen muchos fabricantes para estos, como Texas Instruments (LM4F), ST Micro (STM32F3, STM32F4), NXP, Freescale, etc.

El diseño de DSP es inherentemente más difícil que el diseño del microcontrolador, por lo que depende de su nivel de experiencia.

No hay nada mejor que evitar tener que convertir un punto flotante en un punto fijo.

    
respondido por el Gustavo Litovsky

Lea otras preguntas en las etiquetas