ATtiny85 RDA5807 Rádio FM com RDS display

ATtiny85 RDA5807 Rádio FM com RDS display oled digital

Rádio FM com RDS, Amplificador de Áudio, Codificador Rotativo e Display OLED. O TinyFMRadio é um rádio FM controlado por ATtiny45/85 com RDS (RDA5807) e um amplificador de áudio integrado (XPT8871 ou TC8871), um display OLED (SSD1306) e um codificador rotativo. Você pode conectar diretamente uma bateria de íon de lítio protegida, um alto-falante de 3W / 4 Ω e uma antena de FM.

Hardware
O RDA5807MP de baixo custo é um sintonizador de rádio FM estéreo de transmissão de um único chip com sintetizador totalmente integrado, seletividade IF, RDS/RBDS e decodificador MPX. O sintonizador utiliza o processo CMOS, suporta múltiplas interfaces e requer o menor número de componentes externos. Tudo isso o torna muito adequado para dispositivos portáteis.

Esquema ATtiny85 RDA5807 TinyFMradio FM Rádio com RDS

Esquema Attiny85 Rda5807 Rádio Fm Com Rds Display Oled

Software
O firmware é apenas um esboço de demonstração que implementa funcionalidades básicas. Ao pressionar o botão do codificador rotativo, o RDA5807 busca a próxima estação de rádio. Girar o codificador rotativo aumenta/diminui o volume. A frequência selecionada e o volume são armazenados na EEPROM. O nome da estação, frequência, intensidade do sinal, volume e estado de carga da bateria são exibidos em um display OLED.

Implementação I²C
A implementação do protocolo I²C é baseada em um método rudimentar de bitbanging. Foi especificamente projetado para os recursos limitados do ATtiny10 e ATtiny13, mas deve funcionar com alguns outros AVRs também. Devido à baixa frequência de clock da CPU, não requer atrasos para o tempo correto. Para economizar recursos, apenas as funcionalidades básicas necessárias para esta aplicação são implementadas. Para obter informações detalhadas sobre o princípio de funcionamento da implementação I²C, visite TinyOLEDdemo.

Controlando o RDA5807
O circuito integrado sintonizador de FM RDA5807MP é controlado via I²C pelo ATtiny. Ele possui seis registradores de 16 bits graváveis (endereços 0×02 – 0×07) e seis registradores de 16 bits legíveis (endereços 0×0A – 0×0F). O RDA5807 possui dois métodos de acesso de escrita, um sequencial no qual os registradores são sempre escritos a partir do endereço 0×02 e um método indexado no qual o endereço do registrador é transferido primeiro e depois o conteúdo. Ambos os métodos são determinados por diferentes endereços I²C. Para transferir o conteúdo do registrador de 16 bits, o byte alto é enviado primeiro. O RDA5807 é controlado definindo ou limpando certos bits nos respectivos registradores. Os detalhes dos significados dos registradores individuais podem ser encontrados na ficha técnica. O conteúdo atual dos registradores é salvo nos arrays RDA_regs. A implementação RDA é baseada no trabalho de Maarten Janssen

Implementação do Codificador Rotativo
A implementação do codificador rotativo utiliza interrupções de mudança de pino apenas em um dos pinos escrita de forma que o efeito de bouncing seja automaticamente suprimido.

Attiny85 Rda5807 Rádio Fm Com Rds Display Oled Pcb

Veja também:

Compilando e Carregando o Software

Se estiver usando a IDE Arduino

  • certifique-se de ter instalado o ATtinyCore.
  • Vá em Tools ⇾ Board ⇾ ATtinyCore e selecione ATtiny25/45/85 (Sem bootloader).
  • Vá em Tools e escolha as seguintes opções de placa:
      • Chip: ATtiny45 ou ATtiny85
      • Clock: 1 MHz (interno)
    • B.O.D.: desabilitado
  • Deixe o restante nas configurações padrão
  • Conecte o programador ao seu PC e ao conector ICSP do dispositivo.
  • Vá em ToolsProgramador e selecione o seu programador ISP (por exemplo, USBasp).
  • Vá em ToolsBurn Bootloader para gravar os fuses.
  • Abra o sketch TinyFMRadio e clique em Carregar.

Se estiver usando o arquivo hex pré-compilado,

  • certifique-se de ter instalado o avrdude.
  • Conecte o programador ao seu PC e ao cabeçalho ICSP do dispositivo.
  • Abra um terminal.
  • Navegue até a pasta com o arquivo hex.
  • Execute o seguinte comando (se necessário, substitua “t85” pelo seu chip e “usbasp” pelo programador que você usa):
avrdude -c usbasp -p t85 -U lfuse:w:0x62:m -U hfuse:w:0xd7:m -U efuse:w:0xff:m -U flash:w:tinyfmradio.hex

Se estiver utilizando o makefile (Linux/Mac),

  • Certifique-se de ter instalado a cadeia de avr-gcc toolchain e avrdude.
  • Conecte o seu programador ao PC e ao cabeçalho ICSP do dispositivo.
  • Abra o makefile e altere o chip, caso não esteja utilizando o ATtiny85, e o programador, caso não esteja utilizando o usbasp.
  • Abra o terminal.
  • Navegue até a pasta com o makefile e o sketch do Arduino.
  • Execute “make install” para compilar, gravar os fusíveis e carregar o firmware.

Lista de material

Quantidade Valor Nome Descrição
Resistores 1/4W
4 10k (103) R1,R7,R8,R9 0603
3 1k (102) R2,R5,R6 0603
2 4k7 (472) R3,R4 0603
Capacitores
7 100n C1,C5,C6,C8,C14,C15,C16 0603 — Capacitor cerâmico
1 47u C2 1206 — Capacitor cerâmico
1 470uF C3 CAP-SMD_D10.0-L10.3 — Capacitor eletrolítico
2 10u C4,C7 0603 — Capacitor cerâmico
2 1u C9,C11 0603 — Capacitor cerâmico
1 1n C10 0603 — Capacitor cerâmico
2 390n C12,C13 0603 — Capacitor cerâmico
Semicondutores
1 LED-Blue LED1 LED-0603 — Led azul
1 RDA5807MP U2 SOP-8_150MIL — Receptor FM
1 XPT8871ES U3 HSOP-8 – Amplificador de áudio
1 XC6206P332PR U4 SOT-89 — 3.3V — Regulador de tensão
1 ATTINY85-20SU U1 SOIC-8_208MIL — Microcontrolador
Diversos
1 Slide Switch POWER SLIDE SWITCH DPDT 1P2T JB
2 Header SPK,VIN HDR-1 × 2/2.54
1 Rotary Encoder SW1 BOURNS_PEC11R-4XXXF-SXXXX
1 Header ANT HDR-1 × 1/2.54
1 I2C I2C HDR-4 × 1/2.54
1 ICSP-6 ICSP ICSP-6 – Conector de programação
1 32.768 khz Y1 XTAL-32KHZ — Cristal
Attiny85 Rda5807 Rádio Fm Com Rds Display Oled
Download Arquivos para esta montagem, PCB em PDF, Gerber

Download

Mirror

Firmware

Referências
  1. ATtiny25/45/85 Datasheet
  2. RDA5807MP Datasheet
  3. SSD1306 Datasheet
  4. TC8871 Datasheet

Fonte: https://oshwlab.com/wagiminator/attiny85-tinyfmradio

O que achou deste artigo?

Clique em uma estrela para avaliá-lo!

Classificação média 5 / 5. Total de votos 2

Sem votos até agora! Seja o primeiro a avaliar este post.

Sobre o Autor
Autor do blog Te1.com.br. Técnico em Eletrônica Industrial pela Escola Técnica de Brasília, Tecnólogo em Sistemas para Internet pela Unianhanguera. Interessado em eletrônica, montagens, pesquisas, informática e tecnologia em geral.
Compartilhe:
Comentar via Facebook

Deixe um comentário

Sair da versão mobile