Microcontrolador vs FPGA a DAC y ADC [cerrado]

6

Busqué en varios foros sobre microcontroladores y FPGA, pero no pude encontrar la respuesta que estaba buscando.

Tengo que elegir si voy a usar un microcontrolador / minipc como un Rapsberry Pi o algo así como un Zynq SoC.

Lo que quiero hacer es: detectar vibraciones con un sensor de geófono, usar un ADC para enviar la información a un controlador, luego usar un DAC para enviar una señal de contador hacia un actuador.

Todavía me gustaría poder mostrar las señales entrantes y salientes y sintonizar la señal saliente de manera que pueda contrarrestar una frecuencia específica.

Actualmente estoy usando una PC sin ventilador, algunos amplificadores, DAC y ADC para hacer los cálculos y una computadora portátil externa para sintonizar la señal (con MATLAB).

Ahora, me gustaría encontrar una solución para utilizar una forma más pequeña de hacer los cálculos. Revisé el Rapsberry Pi, pero el rango en voltios para el DAC - ADC es muy bajo: -0.3 a + 0.3V. Estoy buscando un rango entre +/- 10V y 16 bits.

Además, todavía necesito poder sintonizar y mostrar las señales. ¿Tal vez dos chips, uno para cálculos y otro para comunicación con la interfaz de usuario?

Gracias.

    
pregunta Dukel

2 respuestas

4

Como lo veo, tienes 3 opciones:

PC, reducido

Siga usando el mismo sistema, solo bájelo. Esto es fácil (porque tiene un sistema de alto nivel), pero quizás no sea demasiado eficiente ya que el sistema operativo no está optimizado para la latencia o la operación en tiempo real. También será hambriento de poder.

MCU

Un microcontrolador que funcione a ~ 100 MHz debería tener suficiente capacidad de procesamiento para esta tarea (y será mucho más sensible que una solución basada en Linux). Deberá interactuar con los niveles de tensión periférica, pero debe poder usar un amplificador simple para la tarea (brindando cierta protección para el lado digital en el proceso). Puede capturar datos de salida a través de un UART, algunas luces indicadoras o un pequeño panel de visualización; todas estas partes deben ser fáciles de encontrar ejemplos. Por supuesto, tienes que aprender un paradigma de software ligeramente diferente (es posible micro-python, pero tal vez no sea ideal aquí).

FPGA

Es posible que su parte de ejemplo no sea una buena opción, ya que está muy sobre especificada y es costosa. El procesamiento básico en tiempo real probablemente se realice en un dispositivo bastante pequeño, pero la codificación de bajo nivel probablemente sea un desafío (a menos que matlab pueda generarle todo el código que necesita).

El uso de FPGA aquí sería típicamente el enfoque a utilizar si los cálculos son complejos y exigentes. Un MCU debería ser un buen ajuste si su objetivo es reducir la escala del hardware, y quizás hacer que funcione con baterías. Un montón de MCU pequeñas vienen en tableros de desarrollo del tamaño de una tarjeta de crédito en ~ $ 10.

Verifique qué velocidad de datos necesita para generar su señal de 'cancelación', esto determinará el tamaño de la matriz de memoria y la frecuencia DMA que necesita para impulsar el DAC en su diseño.

    
respondido por el Sean Houlihane
3

Si necesita un rango de ± 10V, esto generalmente está fuera del rango de la mayoría de los ADC y DAC, por lo que necesitaría una solución estándar o diseñar su propio sistema analógico.

Utilice un raspberri pi, son baratos y hay numerosos ejemplos de código y tutoriales para comenzar, el software es gratuito y la mayoría de las distribuciones que se ponen en un rasberri pi ya vienen con el software que usará. También puede obtener DAQ que funcionan en el rango de ± 10V

Un microcontrolador (en una placa de desarrollo) también es una opción, sin embargo, asegúrese de que el software (compilador) sea gratuito. Puede usar gcc con la mayoría, pero si desea depurar con un IDE, esto se vuelve más difícil porque la mayoría de los compiladores comerciales lo limitan a 32kbytes de programación antes de que el costo se incremente en miles. Lo más probable es que esté programando en C. A menos que pueda encontrar un escudo, diseñará sus propios componentes electrónicos en una PCB. Con un microcontrolador podrá ejecutar un bucle de control más rápido que una PC o un dispositivo con un sistema operativo normal (es posible que pueda poner un Sistema operativo en tiempo real (RTOS) en una pi, y ejecutar las cosas más rápido).

Un FPGA es el más complicado, las cadenas de herramientas son gratuitas, pero el tiempo que tomará para configurar el software puede ser de días para un principiante. Hay placas de desarrollo, la electrónica analógica tendría que ser diseñada. La compensación es la velocidad, si tiene señales muy rápidas, entonces necesitaría usar un FPGA porque puede diseñar hardware en el nivel de la puerta con ns temporización.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas