Hoy Sábado voy a hablar un poquito sobre CSR y sus soluciones bluetooth. CSR es la empresa más importante a nivel mundial de chips bluetooth y con casi con toda seguridad todos estamos utilizando algún chip de ellos, pues nada menos que el 70% de los equipos que tienen bluetooth, especialmente los móviles, tienen un chip CSR, los mejores.

CSR vende chips bluetooth, no módulos bluetooth. Decir que utilizar estos chips no es sencillo, es más, es muy complicado, absolutamente nada que ver con utilizar un módulo bluetooth como los módulos bluetooth de Bluegiga (que por cierto, tienen en su interior un chip de CSR). Los chips de CSR están pensados para aquellas empresas que pretendan vender grandes cantidades de equipos, es decir, cuando hablamos de más de 20.000/30.000 equipos al año, entonces sí sale a cuenta, económicamente hablando, meterse a nivel de chip. Cantidades más pequeñas no compensa y es mejor trabajar con módulos.
 

¿Y en qué consisten los chips bluetooth de CSR?

CSR fabrica los chips que llama Bluecore. Tiene varias familias de chips que han ido desarrollando a lo largo de los últimos años. Actualmente tienen el Bluecore3, Bluecore4, Bluecore5, cada uno de ellos con distintas variantes, y el nuevo Bluecore6 (únicamente versión ROM por el momento),

El Bluecore 3 y Bluecore 5 están más pensados para aplicaciones de audio, mientras que Bluecore 4 está más pensado para aplicaciones de datos y es algo más económico (pues no tiene DSP). Veamos un diagrama que muestra cómo es internamente uno de estos Bluecore. Veamos el Bluecore5.

Bluecore

Como véis este chip es una solución completa, pues a nivel interno cuenta con una parte de radio, una memoria RAM, un codec de audio, un microprocesador RISC y un potente DSP (Kalimba) utilizado por los codecs para MP3, AAC, …  Lo único que tiene esta versión de Bluecore5, a diferencia de la Bluecore3, es la memoria FLASH externa. En Bluecore3 puede tener la memoria FLASH interna o externa, pero es menos potente a nivel de DSP y procesador.

En cuanto a buses, pues la lo véis en el diagrama, el chip cuenta con un bus UART o USB, GPIOs, entrada / salida de audio, PCM/SPDIF y SPI.
 

¿Y puede programarse el micro de este Bluecore?

Sí. Puedes programar este chip con tus propios programas. Todo el proceso de programación y debug de la aplicación se hace a través del puerto SPI.
 

Entiendo que si haces una aplicación embebida en este chip estamos utilizando la “pila interna” bluetooth del chip de CSR.  Pero, ¿puede utilizarse este chip simplemente como una “antena bluetooth” utilizando la pila bluetooth de un PC o procesador externo?

Efectivamente. Los chips de CSR tienen lo que ellos llaman las PSKeys, que son cómo unos valores de configuración no volátiles. Una de estas PSKeys sirve para indicar si el control del chip será a través de HCI, es decir, controlado por un PC o procesador externo a través del puerto serie o USB o bien tomará el control la aplicación embebida dentro del propio chip.
 

¿Y cómo es el entorno de desarrollo de CSR?

Bueno, para desarrollar aplicaciones para los chips de CSR se utiliza el entorno BlueLab, un entorno de desarrollo, similar en aspecto a Visual Studio o similares, con el que se puede crear aplicaciones customizadas.
 

¿Y hay ejemplos y librerías?

Sí, el entorno tiene muchos ejemplos y librerías (da un vistazo a www.csrsupport.com ) , pero como dije en el inicio del post, no son sencillos. Básicamente la programación se basa en utilizar los cientos de funciones con las que cuenta el entorno de CSR. Cuando compiles tu aplicación, ésta se ejecutará sobre una máquina virtual, es decir, no vas a generar código que se ejecute directamente sobre el procesador del chip, sino sobre una capa de software superior, teniendo siempre la máquina virtual de CSR corriendo por debajo de tu aplicación.
 

¿Y hay otras utilidades de desarrollo?

Sí, por ejemplo también tienen lo que llaman el Bluesuite, un conjunto de utilidades. Está por ejemplo la utilidad PSTools, con las que podrás cambiar las PSKeys del micro, el BlueFlash, una utilidad para programar la flash del micro …
 

¿Y si yo quiero utilizar CSR y luego poner el logo bluetooth en mis equipos, puedo hacerlo?

Sí, previo pago de todas las certificaciones correspondientes. Prepara 30.000 euros. Piensa que los chips de CSR no son un end product. Por eso es conveniente utilizar CSR para cantidades muy grandes, pues si pretendes hacer pocos miles de unidades, entre los costes del entorno de desarrollo de CSR, los costes de certificaciones, los costes de horas de ingeniería (no es fácil programar CSR), no te saldrá rentable.
 

¿Y que puedo hacer si quiero hacer aplicaciones bluetooth para pocos miles de equipo?

La mejor solución es utilizar módulos bluetooth. Por ejemplo los módulos bluetooth de Bluegiga. Éstos realmente están basados en el chip de CSR, es decir, no son más que una plaquita donde está montado el chip Bluecore 4 ó 5, la antena, el regulador de tensión y todos los componentes necesarios. Además tienen embebido lo que llaman el protocolo iWrap, un sencillísimo protocolo con lo que con un micro cualquiera, un simple PIC de los más baratos, a través de una uart y con comandos AT, puedes gestionar complejas conexiones bluetooth. Es decir, tienes casi toda la potencia de CSR, pero con mucha más sencillez, mejor soporte (Bluegiga da soporte a pequeños clientes, CSR no) y barato en cuanto certificaciones.
Para tu curiosidad decirte que el protocolo iWrap desarrollado por Bluegiga está desarrollado con el BlueLab de CSR.

Evidentemente si quieres puedes comprar el BlueLab y programar tu propia aplicación dentro del módulo de Bluegiga, pero entonces perderías la condición de end-product y tendrías que pagar de nuevo las certificaciones correspondientes. En cambio si utilizas el módulo con el iWrap, puedes poner tranquilamente en tu equipo el logo bluetooth sin coste alguno, puesto que Bluegiga suministra los módulos como end-product, ya que Bluegiga ya ha pagado todas las centificaciones correspondientes.
 

Dentro de poco pondré algunos ejemplos de cómo crear conexiones de audio y datos entre dos módulos Bluegiga mediante el protocolo iWrap, utilizando simples comandos AT, veréis que sencillo es.
 

Espero que hayáis encontrado de interés este post. ;-)


Post relacionados:

  1. Nuevo módulo bluetooth de bluegiga WT32 Hoy día 19 de Septiembre Bluegiga, fabricante finlandés de módulos...
  2. Bluetooth Low Energy Para los que estáis buscando nuevas ideas de desarrollo para...
  3. Como hacer un equipo GSM manos libres bluetooth con audio PCM Aprovechando que he tenido que probar el interfaz PCM de...
  4. Nuevo módulo bluetooth WT41 de Bluegiga. Hace ya tiempo hablé de los módulos WT11 y WT12 de...
  5. Gateway Bluetooth-GPRS Desde hace ya un tiempo quería escribir un post acerca...








Etiquetas: ,
10 Respuestas a “Bluetooth. Opciones de desarrollo.”
  1. ioloo dice:

    Según entiendo lo que comentas esto solo es aconsejable para modulos autocontrolados o controlados por micro. Entiendo que para ser controlado po PC sería mejor adquirir un adaptador USB-BT cualquiera del mercado… ¿O le encuentras alguna aplicación a estos modulos controlandolos con PC?

  2. Feje dice:

    Hola de nuevo,

    Como supongo que no te acordarás de mi nick, te pongo al día: te estube pidiendo ayuda hace tiempo acerca de los modems GSM, concretamente el TC65. Gracias al foro conseguí mis objetivos con el modem.

    Ahora me estoy metiendo en un nuevo campo para mí, del que no tengo ni idea y necesito ayuda. He visto en tus post acerca de los módulos Bluetooth de Bluegiga las posibilidades que ofrecen para mi aplicación, te cuento:

    Necesito enviar datos por el puerto serie a un PIC que reside en mi aplicación pinchandole una mochila bluetooth a través de un conector mini-USB. La mochila la tendría que hacer yo con uno de los módulos de Bluegiga. Sin embargo los datos que yo envío a la mochila bluetooth deben provenir de un movil, al que se le cargará una aplicación que tendré que desarrollar (supongo que en Java). En esencia es entregar datos a un PIC desde una aplicación propia que resida en un movil a través de bluetooth.

    Supongo que hacer dicha mochila con estos módulos es sencillo, pero ¿Es facil hacer una aplicación genérica para cargar en un teléfono móvil que envie datos por bluetooth a la mochila?

    Cualquier ayuda o comentario que puedas hacerme es tremendamente agradecido.

    Un saludo.

  3. blogElectronica dice:

    Hola Feje,

    sí, me acuerdo de tu nick, al no ser de uso digamos común.

    lamentáblemente no te se decir qué de complicada es hacer una aplicación para un móvil genérico (entiendo que en java) para manejar el BT, pues yo no desarrollo aplicaciones para móviles.

    A ver, si el móvil fuese como el mío, con SO Windows Pocket Mobile, pues es sencillo. En .net puedes simplemente abrir un puerto serie del móvil asociado a un perfil SPP que ya tengas establecido en el móvil y poco más que enviar datos por un puerto serie. De hecho dentro de poco creo que voy a poner un post que tengo pendiente de un gateway grps-bluetooth casero donde utilizo un móvil.

    Salu2.

  4. basculero dice:

    Hola, despues de un lapsus por motivos de trabajo vuelvo a retomar el tema de dispositivo WT12 y mi consulta es la siguiente: que comando y con que parametros puedo dar la maxima potencia de transmision.

    Un saludo

  5. Silvia dice:

    Hola, tu información es muy buena. Estoy interesada en comenzar a trabajar con los módulos de Bluegiga y estaba muy confundida con muchos aspectos, como el protocolo iWRAP y lo de BlueLab que dicen que soporta. Me ha quedado claro ahora eso :D . También me has ayudaodo a elegir entre CSR y módulos Bluegiga. Gracias

    Cual módulo BT de Bluegiga recomiendas para transmisión de audio y datos Full Duplex?

    Por cierto espero con ansias tus ejemplos para conexiones de audio y datos entre módulos BT a través del firmware iWRAP

    Saludos

    • blogElectronica dice:

      Hola Silvia,

      ¿módulo para audio y datos? Pues depende de si buscas coste, calidad de audio (stereo), larga distancia …

      En función de esas características escoge entre el WT12, WT11, WT32 y WT41.

      Salu2.

      • Silvia dice:

        Hola, muchas gracias por contestarme!

        Me decidí por el modulo WT32 que viene con codec de audio incluido. Pero tengo algunas dudas relacionadas con bluetooth.

        Dices que desde un PIC puedo lograr conexiones BT, en este caso que es lo que realmente haces para diferenciar entre tener que pagar la certificacion o no?

        En caso de que necesitara implementar una apliacación, debo desarrollar en un PIC las capas l2cap y perfiles que necesite? o hay algo ya realizado a lo cual se le pueda modificar algunas cosas?… vi algo sobre BlueZ para linux, habrá algo para microlinux?

        estuve leyendo la especificacion BT, la arquitectura se divide en tres partes: bluetooth controller (define capas bajas), un HCI (que se usa para comunicar el host con el controller) opcional y un host bluetooth (define capas altas, perfiles de apliacación). Tengo una duda, ?el host bluetooth es por ejemplo el software bluesoleil que instalas en la PC para manejar dispositivos BT?.

        Por ultimo, no se si pusiste en el foro los ejemplos de comunicacion usando modulos bluegiga, me gustaría hecharles un vistazo

        De antemano muchas gracias, tu ayuda es muy valiosa para mi pues de repente veo tanta indormación que me saturo :s
        Saludos!

  6. blogElectronica dice:

    Hola Silvia

    “Dices que desde un PIC puedo lograr conexiones BT, en este caso que es lo que realmente haces para diferenciar entre tener que pagar la certificacion o no?”

    Estás mezclando chorizos con manzanas, las conexiones BT las realiza el WT32, tú solo las controlas con el PIC. Bluegiga paga la certificación por ti, la heredas.

    “En caso de que necesitara implementar una apliacación, debo desarrollar en un PIC las capas l2cap y perfiles que necesite? o hay algo ya realizado a lo cual se le pueda modificar algunas cosas?… vi algo sobre BlueZ para linux, habrá algo para microlinux?”

    No mujer no …
    Todo eso ya está implementado dentro del WT32. Tú solo debes enviar simples “comandos AT” por el puerto serie al WT32 para gestionar las conexiones. Es muy sencillo.

    Te recomiendo que te des de alta en el techforum de Bluegiga y te leas el manual del iWrap. Lo entenderás todo con los ejemplos del final del manual.

    Salu2.

  7.  
Deja una Respuesta

Puedes publicar un comentario aquí si quieres, pero te recomiendo que uses el nuevo foroElectronica.com para introducir comentarios. Te contestaré más rápido. Recuerda que debes registrarte si no lo estás para publicar un comentario.