Microcontrolador con ADC y capaz de comunicación SPI

1

Estoy diseñando un sistema donde

Señal analógica --- > (ADC- Datos digitales) --- > UWB chip en su mayoría WSR601 o Chipset AL6301 / AL5100

Nota (1): UWB es una abreviatura de la tecnología de comunicación inalámbrica de banda ultraancha. Los chips USB inalámbricos que se utilizan aquí hacen uso de esta tecnología. Entonces, en resumen, los datos se transmiten a 5 Mbps a los chips UWB (usb inalámbricos) utilizando SPI o USB 2.0. Estos chips inalámbricos luego transmiten datos al receptor.

Nota (2): Los datos muestreados a través del ADC solo deben transmitirse directamente al chip UWB a través de cualquier interfaz (USB, SPI, etc.). Los datos no necesitan ser procesados de ninguna manera.

Estoy buscando un microcontrolador para realizar la función de ADC y la interfaz con el chip UWB. Ambos (WSR601 y AL6301 / AL5100) admiten varias opciones como USB 2.0, SPI, SDIO 2.0, UART, etc.

1) El ADC que necesito es de 10 bits y la velocidad de datos resultante de lo que necesito transmitir al chip UWB es de aproximadamente 5 Mb / seg. La tasa de muestreo ADC requerida sería de alrededor de 5 * 10 ^ 5 veces por segundo.

2) Es necesario que tenga la menor potencia posible

3) ¿SPI sería la mejor opción para esto considerando la tasa de datos y la baja potencia o cree que alguna otra interfaz de comunicación sería mejor?

4) ¿Alguna sugerencia de uC que tenga suficiente capacidad de procesamiento para que ADC y SPI funcionen simultáneamente?

Me sugirió PIC32MX250F128D por alguien que afirmó que consume 14.5 mA a 40MHz, 3.3V. Pero nuevamente, esta unidad tiene muchas opciones de interfaz disponibles, lo que creo que es innecesario y tampoco parece que esta unidad esté disponible en el sitio web del microchip.

Espero que alguien pueda sugerir uC con una funcionalidad un poco menor y, con suerte, con un consumo de energía menor al considerado.

    
pregunta gururaj

2 respuestas

2

No sé qué quiere decir con "UWB" (use abreviaturas estándar o comunes, no, no lo voy a buscar, es su trabajo para explicarlo), pero muchos muchos micros tienen A / D de 10 bits. y SPI hardware. Incluso sin el hardware SPI, SPI es fácil de hacer en el firmware controlando las líneas de E / S directamente.

En la línea de Microchip, hay un amplio espectro que cumple con estos requisitos. Un PIC 16 de gama baja puede ser pequeño, barato y de muy baja potencia. Un dsPIC33 rápido puede ejecutar hasta 40 MIPS pero, por supuesto, utilizará más potencia. Hay varios PIC 18 y PIC 24 en el medio.

Lo que necesita explicar es qué tan rápido necesita muestrear el A / D de 10 bits y qué debe hacer el micro a estos valores de 10 bits antes de transmitirlos a través de SPI.

Esta "respuesta" es más un comentario porque falta mucha información importante. Puede convertirse en una respuesta si coopera y responde a las preguntas específicas , no a lo que le apetece responder o si cree que es importante. Tal como está, esta pregunta es demasiado vaga para ser respondida razonablemente y debe cerrarse. La gente vendrá y la cerrará cuando la encuentren. Cuando se emiten 5 votos cerrados, se termina. El reloj está corriendo. Usted puede tener sólo unos minutos a unas pocas horas. Haga lo que dije exactamente como lo dije rápidamente y puede obtener su respuesta. Ignórelo y no coopere, y será enviado a casa sin una cookie.

Añadido:

Ahora ha agregado que la frecuencia de muestreo A / D es de 500 kHz y que estos datos en bruto A / D deben transmitirse a través de SPI. Dado que el A / D es de 10 bits, parece que aquí es donde obtuvo el requisito de datos SPI de 5 Mb / s.

Esto es factible, pero requerirá un micro de final razonablemente alto. El factor limitante es el A / D de 10 bits a una frecuencia de muestreo de 500 kHz. Eso es bastante rápido para un micro, por lo que limita las opciones disponibles. Otra cosa a considerar es que SPI es más que solo enviar los bits. Es posible que los bytes se deban transferir en trozos con la selección de chip activada y anulada por trozo. Por ejemplo, ¿cómo se empaquetarán estos datos de 10 bits en bytes de 8 bits, o en absoluto?

El bucle de operación principal del firmware será bastante simple. Probablemente configure el A / D para hacer conversiones periódicas automáticas e interrumpir cada 2 µs con un nuevo valor. Ahora tienes la mayoría de 2µs para enviarlo al SPI. Si el dispositivo realmente puede aceptar un flujo de bits, entonces podría ser más fácil hacer el SPI en el firmware. La mayoría del hardware SPI quiere enviar 8 o 16 bits a la vez. Tendría que almacenar en búfer los bits y enviar una palabra de 16 bits 5 de cada 8 interrupciones. Podría ser más fácil simplemente enviar 10 bits cada interrupción en el firmware.

Enviar bits SPI en el firmware si solo necesita controlar el reloj y la salida de datos es bastante fácil. Por bit, tienes que:

  1. Escriba el valor de bit en la línea de datos.

  2. levantar el reloj

  3. reloj inferior

Tendría sentido desenrollar este bucle con la lógica del preprocesador o algo así. Un PIC 24H puede funcionar hasta 40 MIPS, por lo que tiene 80 instrucciones por interrupción. Obviamente no puedes usar 8 instrucciones para enviar cada bit. Si puedes hacerlo en 6 debería funcionar. Hay una cierta sobrecarga para entrar y salir de cada interrupción, por lo que puede hacer que todo sea un circuito de sondeo en espera del A / D, pero luego el procesador no puede hacer nada más. Probablemente trataría de incluir esto en la rutina de interrupción A / D utilizando todos los trucos posibles para que queden al menos unos pocos ciclos para las tareas en segundo plano, como saber cuándo parar, etc.

Echa un vistazo a la línea PIC 24H de Microchip. Creo que la mayoría, si no todos, tienen A / D que pueden hacer 500 kbit / s, y todos pueden funcionar al menos hasta 40 MIPS. La nueva serie E es aún más rápida, pero no estoy seguro de cuán real es eso todavía.

    
respondido por el Olin Lathrop
3

Wow. 500,000 muestras / s (también conocido como 500 kMuestras / s) a 10 bits de resolución es bastante rápido. Sospecho que cualquier procesador que tenga un ADC que pueda hacer esto puede manejar fácilmente el procesamiento de datos SPI requerido. SPI es una excelente opción para transmitir a esta velocidad de datos en unas pocas pulgadas.

ADC independientes

¿Hay alguna razón para no usar un ADC independiente para esta aplicación? (Estos chips SPI ADC requieren algún otro chip para actuar como maestro SPI. Si su chip UWB no puede configurarse como maestro SPI, entonces ninguno de estos chips funcionará con él, pase a la siguiente sección). Es bastante fácil usar la herramienta de selección paramétrica en Newark o Digikey para seleccionar "al menos 5,000,000 Muestras / segundo" Y "al menos 10 bits / Muestra" Y "SPI". Los resultados incluyen docenas de chips como

  • Linear Technology LTC1197LCS8 # PBF: ADC, 10BIT, 500kSPS, SOIC-8, SPI
  • National Semiconductor ADC101S051CIMF: ADC, 10BIT, 500kSPS, SOT-23-6, SPI
  • Texas Instruments ADS7884SDBVT: ADC, 10BIT, 3MSPS, SOT-23-6, SPI
  • National Semiconductor ADC124S101CIMM: ADC, 12BIT, 1MS / s, MSOP-10, SPI
  • National Semiconductor ADC122S101CIMM: ADC, 12BIT, 1MS / s, MSOP-8, SPI

Un ADC independiente será más pequeño y conceptualmente más simple y probablemente con menos potencia que un procesador con un ADC incorporado.

procesadores

Hay bastantes procesadores que pueden manejar 500,000 muestras / segundo a 10 bits / muestra. Por desgracia, las herramientas de selección paramétrica no facilitan la selección de aquellos que cumplen con el requisito de la gran mayoría o los procesadores que no cumplen con esas especificaciones.

  • Todos los chips incluidos en la serie de 8 bits AVR Atmel Xmega AU, como el ATxmega128A4U, pueden muestrear a 2,000,000 muestras / segundo a una resolución de 12 bits.
  • Muchos en la serie AT32UC3C de Atmel "32-bit AVR", como el AT32UC3C0512C, pueden muestrear hasta 1,500,000 muestras / segundo a una resolución de 12 bits.
  • Muchos en la serie LPC ARM NXP de 32 bits, como el LPC1347FBD48, pueden muestrear a 500,000 muestras / segundo a una resolución de 12 bits.
  • Muchos chips en la serie SAM3S ARM Cortex-M3 Atmel de 32 bits, como el SAM3S1A, muestra de levas a 1,000,000 de muestras / segundo a una resolución de 12 bits.
  • Muchos chips en las series Microchip dsPIC y PIC24 de 16 bits, como el PIC24FJ64GB002, pueden muestrear a 500,000 muestras / segundo a una resolución de 10 bits.

transmisores de video

La transmisión de video de forma inalámbrica es más o menos un problema resuelto. Tal vez obteniendo un "pequeño transmisor de video" y un receptor correspondiente le permitirá obtener algo trabajando semanas antes, lo que le permitirá concentrarse en las partes de su proyecto que no son "problemas resueltos". Luego, después de que el resto del sistema comienza a funcionar, puede experimentar con la creación de un sistema de captura / transmisión de video que sea de menor potencia o mejor de alguna otra manera.

    
respondido por el davidcary

Lea otras preguntas en las etiquetas