# Comunicação PIC \<-\> Bluetooth

**URL:** <https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301>\
**Category:** Eletrônica\
**Created:** [Julho 29, 2014, 5:30pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301 "2014-07-29T17:30:31Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hegaja](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/hegaja/32/419_2.png) [@Hegaja](https://forum.fazedores.com/u/Hegaja)\
**Post date:** [Julho 29, 2014, 5:30pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/1 "2014-07-29T17:30:31Z")

</div>

Olá,

Pretendo criar um circuito no qual irá realizar comunicação via Bluetooth, o microcontrolador utilizado será o PIC 18F4550 e **não quero usar um módulo** mas sim um mini dongle, semelhante a dessa imagem:  
 ![](https://sea2.discourse-cdn.com/flex016/uploads/fazedores/423/d10e989fca48bd58.png)  
Como não meche com shield e sim com um produto final, suspeito que tenha que se fazer um drive ou algo do tipo, alguém tem experiência com esse tipo de trabalho?

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Julho 29, 2014, 5:52pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/2 "2014-07-29T17:52:50Z")

</div>

> [@Hegaja](#):
>
> não quero usar um módulo

Não entendi, mas o fato é que você vai ter que utilizar um módulo… Acho que, pela tua postagem, você parece estar bem perdido…

---

<div class="post-metadata">

**Author:** ![Hegaja](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/hegaja/32/419_2.png) [@Hegaja](https://forum.fazedores.com/u/Hegaja)\
**Post date:** [Julho 29, 2014, 5:56pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/3 "2014-07-29T17:56:59Z")

</div>

Olá,  
Por módulo eu me referi a shields semelhante a dessa imagem:  
 ![](https://sea2.discourse-cdn.com/flex016/uploads/fazedores/424/2ef288d95e2077b2.jpg)

Em vez de usar esses shields pretendo utilizar um semelhante a imagem da primeira postagem.

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Julho 29, 2014, 6:42pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/4 "2014-07-29T18:42:44Z")

</div>

Na verdade, tanto o dongle quanto o shield são “módulos”, a diferença **pode** estar apenas no CI controlador do Bluetooth e/ou na forma de conexão utilizada, em um utilizaram um core de USB para a conexão com o Host e no outro, provavelmente estão usando UART/SPI ou algum outro core para fazer essa conexão.

Um CI muito utilizado para criar este tipo de módulo é o [Broadcom BCM2046](http://pdf.datasheetarchive.com/indexerfiles/Datasheets-IS6/DSA00109908.pdf) e, como pode verificar no Datasheet, ele suporta vários tipos de conexão, inclusive USB.

Creio que, para um microcontrolador PIC poder se comunicar com um módulo de Bluetooth por USB, agindo como Host do mesmo, o microcontrolador deve ter este tipo de conexão disponível, como eu nunca usei PIC, não sei se o 18F4550 tem USB disponível, caso contrário, você deverá usar um outro MCU que suporte USB ou usar um módulo de BT cujo CI suporte um tipo de conexão disponível no 18F4550.

---

<div class="post-metadata">

**Author:** ![Hegaja](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/hegaja/32/419_2.png) [@Hegaja](https://forum.fazedores.com/u/Hegaja)\
**Post date:** [Julho 29, 2014, 7:05pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/5 "2014-07-29T19:05:01Z")

</div>

Olá,

Esse PIC foi escolhido por ter a possibilidade de se comunicar através de uma USB. Infelizmente esse tipo de produto (dongle) é uma caixa preta, pelo menos nunca encontrei algum datasheet dele. Estou para receber alguns para realizar testes porém não tenho exemplos/códigos para me basear, tentarei modificar alguns códigos de exemplos de shields. Também possuo um Arduino Uno, caso a galera aqui tenha algum conhecimento para o arduino nessa área posso tentar “traduzir” para o PIC depois 😄

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Julho 29, 2014, 7:21pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/6 "2014-07-29T19:21:34Z")

</div>

O USB é um protocolo, sendo assim, segue regras padronizadas, por isso, nenhum datasheet entrará em detalhes sobre como realizar a conexão pois isso não é de responsabilidade do fabricante do CI, que já fez muito implementando esse meio de comunicação, a única coisa que deve fazer é [usar a biblioteca de USB](http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537044) do PIC que está trabalhando, tendo em vista que ele disponibiliza um core de USB e programar a troca de informações “Master/Slave”.

Para Arduino UNO é impossível conectar-se com um dongle deste por protocolo USB por vias convencionais, tendo em vista que o ATmega328, MCU do UNO não dispõe de um core USB.

---

<div class="post-metadata">

**Author:** ![rafaelvc](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/rafaelvc/32/434_2.png) [@rafaelvc](https://forum.fazedores.com/u/rafaelvc)\
**Post date:** [Agosto 5, 2014, 2:23am UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/7 "2014-08-05T02:23:47Z")

</div>

Olá!

O PIC18F4550 eu já usei por um tempo e possui funções de USB implementadas no hardware. Funciona legal demais a função USB deste mcu, utilizei como um HID e reconhece de pronto, Plug 'n Play, mas se não estou enganado, será sempre um dispositivo SLAVE.

Acho que o dongle também é SLAVE, e portanto, acho que a comunicação entre estes dois dispositivos não vai funcionar.

Se não estou errado, você precisa de um hardware que possa atuar como um MASTER, para poder ler do usb dongle. O Raspberry PI é um dispositivo MASTER, e com certeza funciona. Se for uma opção pra você, é garantido.

Tem alguma razão específica pra não querer usar o módulo BT?

---

<div class="post-metadata">

**Author:** ![sksdutra](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/sksdutra/32/442_2.png) [@sksdutra](https://forum.fazedores.com/u/sksdutra)\
**Post date:** [Agosto 5, 2014, 12:16pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/8 "2014-08-05T12:16:43Z")

</div>

Olá @rafaelvc creio que possa haver a comunicação, o protocolo de BT admite um um dispositivo possa assumir as duas funções alternadamente, ou seja, um dispositivo BT, como por exemplo: um fone, pode começar como master para poder realizar a comunicação, mas depois é mais interessante que ele entregue a função de master ao dispositivo conectado e fique como slave no restante do processo.

---

<div class="post-metadata">

**Author:** ![Hegaja](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/hegaja/32/419_2.png) [@Hegaja](https://forum.fazedores.com/u/Hegaja)\
**Post date:** [Agosto 5, 2014, 5:04pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/9 "2014-08-05T17:04:44Z")

</div>

Olá,

> [@rafaelvc](#):
>
> Tem alguma razão específica pra não querer usar o módulo BT?

Sim, os módulos que conheço tem um tamanho e preço maiores em consideração ao Dongle. A princípio ia utilizar o módulo BT porém tive essa sacada de usar o Dongle e estou estudando formas de faze-lo.

> [@sksdutra](#):
>
> o protocolo de BT admite um um dispositivo possa assumir as duas funções alternadamente, ou seja, um dispositivo BT, como por exemplo: um fone, pode começar como master para poder realizar a comunicação, mas depois é mais interessante que ele entregue a função de master ao dispositivo conectado e fique como slave no restante do processo.

É, tenho um bom caminho para percorrer em entender esse conteúdo.

---

<div class="post-metadata">

**Author:** ![rafaelvc](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/rafaelvc/32/434_2.png) [@rafaelvc](https://forum.fazedores.com/u/rafaelvc)\
**Post date:** [Agosto 6, 2014, 12:07am UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/10 "2014-08-06T00:07:40Z")

</div>

Oba!

São duas coisas que possuem a relação master/slave, o BT e o USB. O protocolo BT talvez possa de fato ser configurável, mas o usb não. E este dongle é um dispositivo USB além de ser BT.

Existe um tipo de dispositivo dentro da versão do 2.0 do protocolo USB, que é o USB On-The-Go (OTG), feito justamente pra definir provisoriamente quem é Master e quem é Slave. O objetivo é interligar dois dispositivos que não sejam um computador.

Parece que a família 24F da Microchip possui esta função de USB OTG, mas com o 18F não tem jeito, ele sempre será escravo. Uma opção pra você, Hegaja, pode ser usar este mcu da família 24F, mas pode ser bem mais complicado.

> **[Can PIC 18F4550 be a host when using USB?????](http://www.edaboard.com/thread120839.html)**
>
> International Electronic Discussion Forum: EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals

Aqui explica bem sobre o protocolo USB:  
[http://www.beyondlogic.org/usbnutshell/usb1.shtml](http://www.beyondlogic.org/usbnutshell/usb1.shtml)

Valeu!!

---

<div class="post-metadata">

**Author:** ![Hegaja](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/hegaja/32/419_2.png) [@Hegaja](https://forum.fazedores.com/u/Hegaja)\
**Post date:** [Agosto 6, 2014, 8:35pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/11 "2014-08-06T20:35:54Z")

</div>

Olá,

Muito obrigado pela dica! Qual MCU da 24F você me indicaria? (Estou de olho no PIC24HJ32GP202) O circuito não fará nada complexo, na verdade no princípio iria utilizar um microcontrolador da família 16F pois ele deveria apenas se comunicar com o host e controlar 2 TRIACs, fui para a 18F visando a comunicação e agora terei que migrar para a 24F pelo mesmo motivo. Ele se comunicará com um Host (raspberry) que fará todo o processamento pesado necessário.

Let’s Rock!

---

<div class="post-metadata">

**Author:** ![rafaelvc](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.fazedores.com/rafaelvc/32/434_2.png) [@rafaelvc](https://forum.fazedores.com/u/rafaelvc)\
**Post date:** [Agosto 7, 2014, 11:40pm UTC](https://forum.fazedores.com/t/comunicacao-pic-bluetooth/301/12 "2014-08-07T23:40:50Z")

</div>

Oba Hegaja!

Na realidade eu não sei. Os únicos PICs 18F que trabalhei foram o 4550 e 2550 (que é quase igual ao anterior, mas como menos portas e pinos).

Eu recomendaria pra você começar a fazer alguma que coisa que funcione, conseguir algum projeto de alguém mais experiente, fazer o que o cara sugere fazer, e em seguida ir adaptando às suas necessidades, inclusive trocando emails e pedindo dicas se o sujeito permitir.

Eu fiz assim, e com uma pequena base consegui fazer algumas coisas bem interessantes. Meu ponto de partida foi este: [http://zeitmedien.hfk-bremen.de/a-TECH/TechNotiz/Interaktiv/Create%20USB-Interface.pdf](http://zeitmedien.hfk-bremen.de/a-TECH/TechNotiz/Interaktiv/Create%20USB-Interface.pdf). Este PDF era um site que saiu do ar, deve ter ficado obsoleto, e hoje este produto evoluiu e existe uma versão bem mais top dele ([https://www.sparkfun.com/products/retired/9645](https://www.sparkfun.com/products/retired/9645), [http://overtone-labs.ning.com/profiles/blogs/first-project-of-overtone-labs](http://overtone-labs.ning.com/profiles/blogs/first-project-of-overtone-labs)).

Valeu, abração!
