Tengo un proyecto simple que básicamente envía y recibe datos a través de una conexión USB y Bluetooth. Tanto el módulo USB como el módulo BT comparten los mismos puertos UART RX (P1.2) y TX (P1.1).
El problema que tengo es que cuando el bluetooth está encendido, no puedo enviar comandos al MSP430 con el módulo USB. Si desenchufo el módulo BT, puedo enviar bien a través de USB.
¿Los estoy conectando incorrectamente o necesito desactivar el BT cuando uso USB?
El módulo USB se basa en FT232R: https://www.sparkfun.com/products/9716
El módulo BT se basa en RN-42: https://www.sparkfun.com/products/10269
Conexiones USB:
Conexiones BT:
El Arduino tiene el mismo problema y han implementado una solución hace mucho tiempo.
Como puede ver en la imagen, las resistencias RN4B y RN4A son resistencias en serie de 1k entre el USB-Serial ic y el ATMega328p de Arduino. Esto permite que un dispositivo conectado directamente a los encabezados de Arduino, como un escudo/boosterpack, se comunique con el Arduino sin interferencias del USB-Serial IC.
Quieres implementar lo mismo. Coloque resistencias de 1k entre su MSP430 y su módulo Bluetooth. Esto significará que la conexión USB-Serie tiene prioridad sobre el módulo Bluetooth. Cualquier comunicación entre el USB-Serial y el MSP430 no será interferida por el módulo Bluetooth. Dicho esto, no puede enviar/recibir desde el módulo bluetooth cuando la conexión USB-Serial está enchufada.
Actualización: Sin embargo, es posible que esto no siempre funcione. Algunos dispositivos, cuando no hay señal USB en un lado, convertirán el tx/rx en entradas flotantes/abiertas, en lugar de conducir la línea, lo cual es bueno, pero otros, cuando están apagados, aún pueden desviar energía a través de diodos de sujeción en pines gpio . Puede ser un dolor porque esto significa que intentan conducir la línea, evitando que otros lo hagan. En su caso, es posible que necesite un multiplexor bidireccional, o más simple, si la serie USB solo se usa ocasionalmente, podría agregar un puente a la línea. Enchufe el puente cuando necesite usar la conexión USB, retírelo cuando no lo necesite.
Tanto el USB como el BT comparten los mismos pines GPIO, usa unos diferentes para cada módulo. Supongo que solo tiene un UART, por lo que requerirá alguna lógica o software adicional.
Los estás conectando incorrectamente.
El módulo Bluetooth y el convertidor de USB a serie (lo llamaré FTDI para abreviar) comparten los mismos pines UART. Están conectados en paralelo a la misma UART.
Por lo general, habría UART separados para Bluetooth y FTDI.
Alternativamente, puede agregar un multiplexor a su esquema para que el UART del microcontrolador "vea" solo un dispositivo a la vez.
usuario2218339
Transeúnte
usuario2218339