MSP430 Bluetooth y UART

4

Texas Instruments ofrece código fuente para una pila Bluetooth (Perfil de puerto serie) que fue escrita por Mindtree. Se ejecuta en un microprocesador MSP430 e interactúa con su chip de controlador de banda base (es decir, el chip RF). Esto utiliza el sistema operativo FreeRTOS. Este software viene en forma de varias demostraciones; El que utilicé se llama demo del acelerómetro. Este conjunto de chips es parte del hardware de mano personalizado que estoy desarrollando. Estoy ejecutando la versión GA1.0 (demostración de acelerómetro modificada para trabajar en el hardware personalizado). Intento simplemente intentar pasar datos entre el SPP de Bluetooth y un UART que se ejecuta en 78K. Tengo el modo SNIFF deshabilitado y deshabilito RTS en la interrupción de UART. No se realiza ningún procesamiento en la Interrupción, aparte de una escritura en un búfer y una toma de semáforo. Tengo una tarea de baja prioridad que maneja el almacenamiento en búfer.

Todo lo que necesito para hacer el chip es proporcionar un enlace entre Bluetooth y un UART que se ejecuta en 76 K (este UART se conecta con nuestro procesador DSP). Actualmente, el DSP es el cerebro del hardware y se comunica con una GUI de la PC a través de USB. Quiero tomar el UART DSP y reenviarlo a través de Bluetooth en lugar de que el DSP sepa o se preocupe a qué está conectado su UART.

Tal como está construido en este momento, el software se conecta a través de Bluetooth correctamente y he verificado la transmisión y la recepción de datos. A tasas bajas, esto funciona muy bien. Dado que el DSP siempre está transmitiendo un mensaje de estado desde su UART, puedo conectar una PC con un dispositivo Bluetooth y usar Putty (terminal de puerto serie) para ver cómo este mensaje de estado aparece correctamente. Sin embargo, una vez que trato de conectarme con nuestra GUI de la PC, el tráfico de RX resultante en el bluetooth es tal que el software ya no puede atender las interrupciones de DSP UART de manera oportuna. Sin Bluetooth RX, obtengo más de 100 interrupciones de UART antes de que mi tarea pueda procesar los datos, incluso con la prioridad de la tarea establecida en la más alta. Me imagino que es una gran magnitud más una vez que comienzan a llegar los datos de RX, lo que actualmente nos falla. Desafortunadamente, este procesador MSP430 no ofrece DMA para el UART que estamos utilizando, y no ofrece almacenamiento en búfer de hardware.

Mis intentos de solucionar esto siempre han llevado a uno de los tres resultados: mi interrupción de UART se desborda, la interrupción de BT UART se desborda o mi búfer de UART se desborda cuando la Pila no puede enviar los datos a tiempo. La guía para desarrolladores dice que a 18 MHz y 115K, el rendimiento promedio de los datos es de 84K, y el uso promedio de la CPU es del 10.7%, sin embargo, el software no puede continuar con un UART de 78K.

En este punto, me temo que la interrupción UART de Bluetooth (parte de la pila de Mindtree) está acaparando demasiada CPU para permitir el manejo de cualquier otra interrupción a la velocidad que deseamos.

¿Alguien ha tenido algún éxito en la integración de la pila Bluetooth TI / MindTree? Si es así, ¿te topaste con estos mismos problemas? Básicamente estoy buscando alguna y todas las sugerencias sobre cómo superar estos problemas.

    
pregunta cbursk

1 respuesta

4

Gracias por los comentarios de todos. Recibí una respuesta de TI con la siguiente respuesta con respecto a este problema.

"Debido a algo innato en la pila de Mindtree, no puede generar una interrupción en el MSP430 mientras los datos se envían / reciben a través de BT. Por lo tanto, verá una limitación en el rendimiento de entrada / salida de la pieza. Esto es algo en lo que Mindtree estaba trabajando y sería bueno preguntarles a través de su publicación en el foro E2E ya que el ingeniero de Mindtree "Balaji Jeyaraman" puede decirle si ha encontrado una manera de solucionar esto o actualizar la pila. MSP430BT5190 + CC2560 problemas de transferencia de datos / carga

En la misma línea, TI ha publicado una Wiki (diferente a la de Bluetooth) que se enfoca solo en esta ‘aplicación de puente BT '. Se puede encontrar aquí: CC256x MT UART BRIDGE Hemos visto limitaciones similares y la tasa de datos que está obteniendo Es un poco más rápido de lo que hemos visto. "

Así que no era la respuesta que estaba buscando, pero pensé que la publicaría aquí para otros. Gracias.

    
respondido por el cbursk

Lea otras preguntas en las etiquetas