uC para alojar el módulo Bluetooth a través de UART

2

Soy un novato. Estoy tratando de terminar un proyecto escolar, necesito transmitir una señal analógica a la computadora a través de Bluetooth.

Estoy usando Bluegiga WT12 como el módulo Bluetooth, y quiero usarlo con el perfil SPP. Necesito alojar este módulo con una unidad uC, que enviará las instrucciones de iWRAP5 a través de UART para controlar el módulo y enviar los datos a través de UART.

La señal tiene un ancho de banda de alrededor de 4000 Hz, por lo tanto, necesito convertirla a digital con una tasa de 8000 muestras por segundo como mínimo.

Mi pregunta, ya que no estoy familiarizado con los uC alrededor,

  1. ¿Qué debo buscar en una unidad de control para completar mi proyecto? (aparte de las interfaces ADC y UART)

  2. Con eso, ¿cómo puedo usar la unidad uC como un host en la conexión UART? (¿el cableado y el software?)

pregunta natsirun

2 respuestas

1

No ha especificado uno de los parámetros de ADC más importantes, que es el número de bits de resolución. Esto selecciona la magnitud de su error de cuantización. Los ADC normalmente vienen en 8, 10, 12 y 16 bits. Los ADC de 16 bits son bastante raros. Así que busqué chips con ADCs de 12 bits.

Una tasa de muestreo de 8000 muestras / seg no debería ser un problema. Por ejemplo, el PIC24EP256GP202 de Microchip, que cuesta solo $ 5.41 en cantidades individuales de Digi-Key , tiene un ADC multicanal de 12 bits que puede muestrear a 500,000 muestras / segundo, obviamente mucho más de lo que necesita.

También tiene 256KB de memoria flash y 32KB de RAM, y dos UARTs, por lo que puede usar uno para conectarse al WT-12 (solo necesita usar los pines TX y RX de interconexión entre el WT-12 y el PIC), y use el otro si lo desea para conectarse a un programa de terminal en la PC para depurar la salida.

Debido a su tasa de muestreo propuesta de 8000 muestras / seg, si usa dos bytes para cada muestra de 12 bits, esto requeriría un ancho de banda en serie de 8000 * 2 * 10 bits (para el protocolo serie 8N1), o 160,000 bps . Esto es obviamente más alto que la velocidad de transmisión predeterminada de 115.200 para el WT-12. Sin embargo, el WT-12 puede ejecutar hasta 3M baudios, y el PIC24 puede ir más alto que eso. Así que esto no es un problema después de todo. Así que sugiero elegir una velocidad en baudios de 460,800.

Si eligió usar un ADC de 8 bits (que no recomiendo), podría obtener los 115.200 predeterminados, ya que solo enviaría un byte de datos, o la mitad del ancho de banda de los anteriores (80.000) .

Este PIC24 está disponible en un paquete DIP, lo que facilita la creación de prototipos.

Para la programación, deberá obtener un programador compatible con PIC, como el PIC kit3 . (Este es el menos costoso fabricado por Microchip; puede haber algunos de terceros que también puede comprar).

Hay un compilador gratuito disponible para PIC24 que es gratuito de Microchip; La única diferencia entre la gratuita y la pagada ($ 495) es que la gratuita no hace ninguna optimización de código. Pero como el procesador funciona a 70 MIPS, eso no será un problema en su caso. También deberá descargar el IDE de MPLABX , que es gratuito.

    
respondido por el tcrosley
1

1: Además de las interfaces ADC y UART, como dijiste, estoy pensando en el tamaño de memoria de la unidad uC (por lo que el programa que escribes puede encajar en ella ) y su velocidad de reloj máxima . Una tasa de 8000 muestras por segundo me parece un requisito importante, por lo que debe elegir una unidad de usuario rápida. También debe tener en cuenta la resolución ADC (cuánta precisión necesita para sus mediciones).

Aquí puede ver algunos cálculos que debe hacer para saber qué tan rápido necesita que funcione su microcontrolador. No tienen los mismos valores que los tuyos, pero puedes obtener una imagen: enlace

Sin embargo, hay muchas otras cosas que debes buscar para elegir una unidad de usuario. La lista puede ser muy larga, pero aquí hay algunos consejos:

  • precio
  • Consumo de energía
  • Herramientas de desarrollo

2: el cableado de UART es bastante simple. Solo hay tres líneas (GND, TX y RX) y su cableado es sencillo: -WT12 TX pin a MCU RX pin -WT12 RX pin a MCU Tx pin -WT12 GND pin a MCU GND pin

Para el software, depende de la unidad de usuario que esté utilizando, pero el código debe ser similar. Puedes consultar cualquier tutorial de Arduino para la comunicación UART (es un buen punto de partida). Se basan en microcontroladores ATMEGA.

    
respondido por el pepevalbe

Lea otras preguntas en las etiquetas