O circuito integrado TEA5767 é um rádio FM estéreo em um único chip. Esse CI é ideal para pequenas aplicações com baixo consumo de energia e de baixa complexidade uma vez que não é necessário nenhum tipo de ajuste no seu circuito. Este chip pode se comunicar com circuitos externo via um barramento I2C. Confira como funciona este dispositivo e como utilizá-lo para fazer um rádio FM com o microcontrolador PIC16F876a.
Introdução
O módulo de rádio FM contem todos os blocos necessários para construir uma função de rádio digitalmente sintonizável em um único chip. O chip TEA 5767 é geralmente encontrado em forma de módulo como apresentado na figura 1. Esse componente é facilmente achado em dispositivos portáteis como MP3, MP4 ou celulares com função rádio.
Figura 1 - Módulo de rádio FM TEA5767 encontrado em dispositivos móveis |
Descrição do módulo TEA5767
O módulo possui 10
pinos como ilustrado na figura 2 e é comandado via um barramento I2C quando o
Busmode (Pino 3) é colocado em nível baixo. A interface serial I2C usa o pino 1
para SDA (via de dados) e o pino 2 para SCL (Clock). O sistema é alimentado no
pino 5 (VCC) com tensão entre 2,5V a 5V e o pino 6 é o GND . Os pinos 7 e 8
são as saídas de áudio estéreo e o pino 10 é a antena para entrada de RF.
Figura 2 - Ligação do TEA5767 |
Receptor super-heteródino
Inicialmente de
comandarmos o circuito é interessante entendermos a idéia de funcionamento de
um receptor super-heteródino que é usado nesse componente em questão.
O receptor Super-heteródino (figura 3) foi inventado em 1918 por Edwin
Armstrong. O princípio de funcionamento, que ainda hoje se aplica aos mais
modernos aparelhos de rádio, constituiu o maior salto na evolução das
radiocomunicações uma vez que permitiu resolver alguns graves problemas que os
receptores da época tinham: fraca estabilidade, pouca seletividade e grande sensibilidade
às interferências.
Figura 3 - Diagrama de Bloco simplificado de um receptor super-heteródino. |
No receptor super-heteródino uma onda de rádio
com frequência Frf, captada pela antena, é amplificada e levada ao bloco
misturador que é um elemento não linear. No bloco misturador a onda de
radiofrequência é misturada com outra onda que é gerada em um oscilador do
próprio receptor, chamado de oscilador local. A frequência do oscilador local,
na grande maioria dos sintonizadores é sempre 10,7MHz, chamada de frequência
intermediária FI.
De
forma resumida o misturador recebe x+y, e efetua (x+y)2
= x2 + y2 + 2xy. O termo 2xy
é o responsável pela conversão de frequência, pois corresponde ao produto de
duas funções senoidais (identidade trigonométrica sen(x)sen(y)=[cos(x-y)-cos(x+y)]/2
) esse produto resulta em dois novos sinais com frequência soma: Frf+Fo
e frequência diferença: Frf-Fo e é um desses dois sinais que nos
interessa. Esse sinal é escolhido como sinal de FI (frequência intermediária)
por meio de um filtro (figura 4) adequado de FI.
Figura 4 - Funcionamento receptor super-heteródino. |
Para que todo esse processo? Imaginemos uma frequência de sintonia do rádio FM escolhida de 97,7MHz.
No final do bloco misturador teremos várias frequências espalhadas espectralmente entorno da frequência central de 97,7MHz, porém as duas mais importantes são a soma e a diferença das frequências Frf e FI, ou seja, 108,4MHz e 10,7MHz. A frequência de 108,4MHz é então eliminada pelo filtro e a frequência de 10,7MHz é amplificada e detectada.
Para a frequência de 97,7MHz e uma
frequência local de oscilação de 10,7MHz teremos:
Para que todo esse procedimento? Amplificar uma frequência de 97,7MHz é mais complicada do que amplificar uma frequência de 10,7MHz por isso temos essa conversão de espectro. Em resumo o sinal de áudio modulado na frequência de 97,7MHz é transferido para uma frequência mais baixa para ser amplificado e detectado mais facilmente e minimizando os efeitos indesejáveis. Entretanto o CI TEA5767 utiliza uma frequência intermediária (FI) de 225KHz ao invés de 10,7MHz.
Demodulação
Nos sistemas osciladores de RF a
sintonia é feita por intermédio de um capacitor variável ou por um diodo
varicap. Os sistemas de sintonia digitais substituem os convencionais
receptores AM e FM. O sintonizador digital é feito com um PLL (Phase Locked
Loop). O PLL é usado para sintetizar a comunicação dos receptores e
transmissores, ele necessita de uma frequência de referencia de baixa
frequência. O Modulo TEA5767 usa um cristal de 32,768Khz para isso. A
demodulação FM é mostrada de forma ilustrativa na figura 5.
Figura 5 - Demodulação FM com PLL. |
O
circuito PLL funciona a partir de um oscilador de referencia sintonizado em uma
frequência fo. O PLL recebe em sua entrada um sinal com uma frequência fc. O
circuito compara então a frequência e a fase do sinal recebido com a frequência
e a fase do oscilador de referencia (32768KHz no caso do TEA5767). Se forem iguais,
a saída do circuito é nula. Se a frequência fc for maior que fo, então o
circuito fornece na saída uma tensão positiva proporcional à diferença entre as
frequências. Se a frequência fc for menor que fo, então o circuito fornece na
saída uma tensão negativa proporcional à diferença entre as frequências.
Resumidamente, o PLL fornece
uma tensão proporcional
ao desvio de
frequência a partir da frequência
do oscilador local, que é, em princípio, o processo inverso da modulação a partir
de um VCO. Modificando o valor da frequência
fo, é possível
demodular sinais com
diferentes portadoras ou estações,
visto que os
desvios serão agora
comparados a partir
da nova frequência fo que no caso
do CI TEA5767 pode ser ajustada digitalmente através de um registrador de
14bits.
Configurando o modulo TEA5767 com o PIC16F876a
O TEA5767HN pode se comunicar
com o controlador externo através de uma interface serial. O sintonizador suporta
interface de barramento I2C e 3-WIRE, selecionável através do pino BUSMODE.
Quando o pino BUSMODE é levado para estado baixo o barramento de comunicação é
I2C mas quando em estado alto funciona no modo 3-WIRE. Uma aplicação típica de
interface I2C é dado na figura 6.
Figura 6 - Comunicação I2C. |
Para estabelecermos uma comunicação serial com o módulo
de rádio utilizaremos um microcontrolador PIC16F876a. Esse microcontrolador
possui internamente um periférico de comunicação que suporta o protocolo I2C e
é facilmente encontrado no mercado com preços acessíveis.
Estabelecer a comunicação entre o microcontrolador PIC e o módulo é relativamente simples se os comandos forem dados corretamente.
O módulo TEA5767 pode ser lido e escrito, porem neste
artigo vamos somente descrever o processo básico de escrita no módulo para
operá-lo de forma simples. O programa apresentado a seguir pode servir como
base para novas aplicações.
Em artigos futuras apresentarei outros projetos com o TEA5767!
Escrita no Barramento I2C
I2C é uma
interface de barramento bidirecional simples. O barramento requer apenas duas
linhas, que são dados seriais (SDA) e o clock (SCL). O barramento é de 8 bits
orientado serialmente. Cada dispositivo é reconhecida com um único endereço. O
barramento I2C funciona com uma frequência máxima de 400KHz.
A
transferência de bytes de dados devem ser ordenados do menor para o maior. A
sequencia de transferência dos dados para o modulo é a seguinte: Endereço,
Byte1, Byte2, Byte3, Byte4 e Byte5 (A
sequencia dever ser necessariamente nessa ordem como apresentado na figura 7).
O MSB de cada byte será enviado em primeiro lugar. O endereço IC do TEA5767 é 0b1100000. Isto significa que o primeiro byte a ser transmitido para o TEA5767HN deve ser "0xC0" para uma operação de escrita (caso abordado neste artigo) ou "0xC1" para a operação de leitura.
Figura 7 - Sequencia de comando de escrita no TEA5767. |
Portanto
após enviarmos o Byte de Endereço devemos enviar os 5 bytes subsequentes. Nas
tabelas a baixo temos a sequencia de bytes que devêm ser enviados para a
operação de escrita básica.
Para sintonizar o rádio na frequência desejada, deve-se em primeiro lugar calcular a variável do registrador PLL correspondente. Está variável é uma palavra de 14bits que vai ser enviada para o divisor programável do PLL. Podemos escolher entre o sinal contido na banda lateral inferior ou superior. Em contraste com a maioria dos sistemas que utilizam um sintonizador super-heteródino com FI de 10.7MHz, o TEA5767/68 usa uma baixa FI de 225KHz. Com esta baixa FI, integração do FI filtro torna-se viável. O objetivo é reduzir os custos do sistema e da potência global.
A formula
para calcular a variável do registrador PLL é dada na figura 8. Como
dito anteriormente o valor desse registrador é de 14Bits, portanto a variável é
enviada ao registrador por dois bytes seguidos, o primeiro (Byte1) contêm os
6bits mais significativos (MSB) já o segundo (Byte2) contêm os 8bits menos
significativos (LSB) restantes.
Enviando o Byte 2 ao módulo
(Tabela 2). Corresponde ao 8bits restantes do registrador PLL (0xD7).
Enviando
o Byte 3 ao módulo (Tabela 3). Configuração do modo de busca (SUD,SSL[1,0]) e
escolhemos a banda lateral superior para a demodulação (HLSI).
Enviando
o Byte 4 ao módulo (Tabela 4). Configuração da frequência de oscilação de
referencia do PLL (XTAL).
E
por último enviamos o Byte 5 ao módulo (Tabela 5). Configuração da frequência
de oscilação de referencia do PLL (PLLREF).
A baixo temos uma parte do código básico para configurar o módulo com o microcontrolador PIC16F876a por intermédio do barramento I2C. O programa foi desenvolvido com o compilador CCS e o arquivo completo pode ser baixado no link: Radio.c
Circuito e Montagem do Receptor de Rádio
O circuito elétrico de ligação é apresentado na figura 10. Caixinhas de som do computador poderão ser usadas como amplificador de áudio.
Na figura 11 temos o circuito montado em protoboard.
Maiores
informações sobre o receptor de rádio e sua configuração podem ser obtidas no
datasheet e no application note do TEA5767. O módulo oferece muitos outros
recursos que podem ser explorados.
Em breve estarei postando um outro trabalho mais elaborado com esse pequeno receptor de rádio FM!
Arquivos:
Datasheet: TEA5767
Application: TEA5767
Versão 1 : Sem LCD
Versão 2 : Com LCD
Codigo fonte: Radio.c
Obs : As conexões entre LCD, PIC et TEA5767 devem ser deduzidas pelo códigos fonte.
Vídeos
Versão 2
Versão 1
Onde posso encontrar esse ci TEA5767
ResponderExcluirOlá amigo,
ResponderExcluirEsse módulo pode ser encontrado em sucatas de MP3 ou MP4 player... Eu particularmente retirei esse módulo de um mp4 que não funcionava mais... Talvez no mercado livre você possa encontrar também.
Obrigado pela visita.
Excluirhttp://produto.mercadolivre.com.br/MLB-463865997-modulo-radio-fm-digital-philips-tea5767-para-arduino-pic-_JM
Parabéns pelo projeto. Muito útil. Este módulo pode ser encontrado importado também, pela bagatela de 2 dolares.
ResponderExcluirhttp://www.banggood.com/TEA5767-FM-Programmable-Radio-Module-Stereo-Low-power-Low-noise-p-86432.html
Amigo pode colocar o código em C já com o LCD o Mesmo que usou no vídeo ?
ResponderExcluirOi Gabriel, bom dia !
ExcluirTente fazer a sua propria rotina para exercitar a programação. Meu objetivo é estimular a criação...
A rotina é bem simples.. Você pode incrementar a variável "frequency" por intermédio de dois botoes e apresentá-la em um LCD não é nada complicado. Você coloca o valor da variável atualizada no LCD... As rotinas para a utilização do LCD ja estão implementadas no próprio compilador.
Qualquer duvida entre em contato pelo o e-mail do blog !
Obrigado pela visita e desculpe-me a demora do retorno !
Ola tudo bem, eu gostaria de saber o seguinte, estou tentando montar um link de fm , transmissor e receptor o meu problema é o receptor , no caso do circuito , gostaria de colocar ele para funcionar em uma frequencia fixa , daria para fazer isso somente com ele ou teria que montar o outro bloco .
ResponderExcluirpara que ele funcione eu teria que montar o bloco com o pic no caso ou ele sozinho poderia funcionar .
Boa tarde Luciano,
ResponderExcluirO módulo TEA5767 necessita ser configurado para que ele possa funcionar nas condições desejada. No caso o microcontrolador PIC faz essa configuração, descrita no tópico "configurando o módulo TEA5767 com o PIC..". Portanto você precisa montar o bloco para configuração. Você não é obrigado a utilizar o PIC descrito no post, outros modelos de PIC podem ser utilizado e até mesmo outros microcontroladores como a plataforma Arduino.
Obrigado pela visita !
Boa tarde Guilherme,
ResponderExcluirSabe me dizer se é possível adaptar o modulo TEA5767 em um tablet (meu tablet é o Genesis GT-7230)?
Bom dia Marcelo,
ExcluirNão sei informar com exatidão Marcelo... Mas acredito que essa adaptação não seja muito trivial ou possível além de ser arriscada para o tablet...
Obrigado pela visita !
Como faz pelo programa para saber se é stereo ou mono ? Não consegui.
ResponderExcluirBoa noite Gabriel,
ExcluirQue bom que o senhor consegui fazer a rotina, parabéns !
Para saber se stereo ou mono você necessita fazer o processo de leitura dos registradores do módulo para obter essa informação. Para saber se a recepção está sendo estereofônica vc dever ler bit7 do 3° byte dos registrador dedicado a leitura... é só usar o comando ic2_read(). Mais informações podem ser obtidas no datasheet do módulo pag 17 do pdf, dê uma olhadinha vc vai ficar por dentro de todas as funcionalidades do TEA5767
Para receber os dados do TEA5767 vc pode fazer dessa forma abaixo, depois é só tratar a informação!
//Recebe dados para o modulo TEA5767 via I2C
i2c_start();
i2c_write(0xC1); //adres om te schrijven
byte1=i2C_read();
byte2=i2C_read();
byte3=i2C_read();
byte4=i2C_read();
byte5=i2C_read();
i2c_stop();
Obrigado por contribuir com o blog ! abraço
posso só ler o byte 3 ? Tenho que colocar em alto o pino R/W ? Posso colocar essa rotina dentro da primeira
ExcluirBoa tarde Gabriel,
ExcluirNão, você deve ler a sequencia de bytes como descrita acima... O comando i2c_write(0xC1) já informa para o TEA que você estará lendo os bytes... Após a leitura você deve tratar a variável Byte3 para pegar a informação no stereo ou mono... Sim você pode colocar essa rotina dentro da outra...
Olá
ResponderExcluircomo faço para o modulo sintonizar automaticamente uma estacão de radio?
Boa noite amigo,
ExcluirO módulo não sintoniza sozinho... A sintonia automática deve ser implementada via software, ou seja, seu controlador que deve fazer a varredura das estações e armazenar as frequências que possuem sinal !
Boa Noite Guilherme, então queria saber se consigo fazer esse rádio com qualquer pic, acoplando ele, a um circuito já existente? e se caso fizer ele independente, c consigo conectá-lo para um acionamento a partir de uma saida do pic....
Excluiragurado uma resposta, email: allanssantossp@gmail.com...
Sim amigo, sem problemas você pode usar qualquer pic !
ExcluirOlá Guilherme, no byte 5 de escrita o bit 6 teria que ficar em 1, ja que a pré-ênfase adotada para o Brasil é de 75us não seria isso?
ResponderExcluirBoa noite Mauricio,
ResponderExcluirEu não tenho certeza se no Brasil é realmente 75us para a pré-ênfase. Eu sei que na américa do norte eles adotam 75us mas para a maior parte do mundo a constante de tempo do circuito de pré-ênfase é de 50us. Ja pesquisei sobre o assunto para saber o padrão adotado para a faixa FM aqui no Brasil mais não achei nada ainda. Para outras bandas de frequência o Brasil acaba não especificando a pré-ênfase e adota 50 ou 75... Se você tive algum material que esclareça esse assunto envie para mim (eletronicaemcasa@gmail.com.br)
No trabalho desenvolvido acabei usando 50us para a pré-ênfase por esse motivo.
Obrigado pela contribuição ao blog !
Olá Guilherme, não abre o arquivo da programação.
ResponderExcluirA senha é o endereço do blog amigo !
ExcluirOlá Guilherme.
ResponderExcluirBom projeto. Parabens!
O link está quebrado.
Ass: Costa.
Obrigado Amigo, vou tentar corrigir!
ExcluirOlá Guilherme parabéns pelo projetos, gostaria de implementá-lo em outro que estou desenvolvendo mas o link da programação está quebrado. Obrigado
ResponderExcluirLink corrigido !
ExcluirBacana. Parabéns pelo blog!!!
ResponderExcluirOlá guilherme, sabe me dizer se é possível receber frequências VHF ?
ResponderExcluirBoa tarde Matheus,
ResponderExcluirNão é possível receber frequências VHF.
Obrigado pela visita !
E como posso fazer um receptor VHF digital, pode me dar alguma dica ?
ResponderExcluirOi Matheus,
ExcluirDesculpa-me pela demora !
Eu não fiz um receptor VHF, mas eu lhe recomendo dar uma olhada no site do Newton C. Braga. No site possui algumas dicas e soluções.
link: http://www.newtoncbraga.com.br/index.php/artigos/54-dicas/995-receptor-de-vhf-art141.pdf
OLA COMO POSSO ENCONTRAR O TEA 5767 NO PROTEUS 8.1?
ResponderExcluirOi Amigo,
ExcluirNão sei se o proteus possui o TEA5767 na biblioteca padrão. Eu quando fiz o projeto simulei o circuito utilizando a ferramenta de comunicação I2C. Com o bloco de comunicação I2C, basta conectar os pinos SDA e SCL com resistores de pullup ao pic. Com o terminal de comunicação aberto basta verificar se os bytes em hexadecimal são enviados corretamente.
ola Guilherme tudo bem tem com enviar o codigo HEX para gravar no pic.
ResponderExcluirBoa tarde Paulo,
ExcluirAtualizei a postagem e inseri o .hex em um link. Confira no post!