Página principal

Radio-Reloj-Despertador con TEA5767 y Arduino.

Este montaje es un radio-reloj-despertador realizado con TEA5767 y un arduino.
Para manejar todas la funciones se utiliza dos pulsadores para los menús.
Hubiese sido mucho mas fácil utilizar mas botones pero lo he hecho de esta forma para minimizar al máximo el interface.
Para cambiar la frecuencia en modo DIAL se utiliza un potenciómetro.
Como amplificador de audio he utilizado unos altavoces de PC auto-alimentados.
Dispone de 20 memorias, se almacenan en la EEPROM de microcontrolador, por lo cual no desaparecen cuando se desconecta la radio.
El reloj se basa en interrupciones internas de microprocesador, cuando se quita la corriente se va la hora.
En próximos montajes utilizare un DS1302 como reloj, es más preciso y no se va la hora.
Todo se ven en un LCD de 2x16 caracteres.

El TEA5767 es un integrado que tiene todo lo necesario para realizar una radio FM. Se necesitan unos pocos componentes añadidos para su funcionamiento, de tal forma que se pueden comprar todo el conjunto montado por 3,5€.
Toda la programación del TEA5767 se realiza mediante el I2C-bus.
Las características del TEA5767 son las siguientes:
* High sensitivity due to integrated low-noise RF input amplifier
* FM mixer for conversion to IF of the US/Europe (87.5 MHz to 108 MHz) and Japanese
  (76 MHz to 91 MHz) FM band
* Preset tuning to receive Japanese TV audio up to 108 MHz
* RF Automatic Gain Control (AGC) circuit
* LC tuner oscillator operating with low cost fixed chip inductors
* FM IF selectivity performed internally
* No external discriminator needed due to fully integrated FM demodulator
* Crystal reference frequency oscillator; the oscillator operates with a 32.768 kHz clock
  crystal or with a 13 MHz crystal and with an externally applied 6.5 MHz reference
  frequency
* Phase-locked loop (PLL) synthesizer tuning system
* I2C-bus and 3-wire bus, selectable via pin BUSMODE
* 7-bit IF counter output via the bus
* 4-bit level information output via the bus
* Soft mute
* Signal dependent mono to stereo blend [Stereo Noise Cancelling (SNC)]
* Signal dependent High Cut Control (HCC)
* Soft mute, SNC and HCC can be switched off via the bus
* Adjustment-free stereo decoder
* Autonomous search tuning function
* Standby mode
* Two software programmable ports
* Bus enable line to switch the bus input and output lines into 3-state mode
Recomiendo encarecidamente ver product data sheet el TEA5767 y APPLICATION NOTE, para ver todas sus características y modos de programación.

Esquema de TEA5767


TEA5767 con todos los componentes.


Descripción de la patillas.


TEA5767 montado sobre un circuito impreso.


Arduino controlando el TEA5767 mediante el bus I2C.


Esquema

Para encender la radio, pulsar Button1->Button2->Button1 , y la radio estará encendida 60 minutos.
También se encenderá la radio al llegar a la hora de la alarma, siempre y cuando este activa la alarma, esta alarma es diaria.
Se sabe que la alarma está activa cuando aparece una "A" colocada a la izquierda de la hora.
Alternativamente se muestra el nivel de señal y si la señal es mono o stereo.


Imagen del LCD

Programa del arduino

MENÚS
(Cambiar con Button1 y seleccionar con Button2)

SLEEP
Button2 decrementa desde 60 min. en 10 min. hasta llegar
a 10 minutos, despues decrementa en 1min. hasta llegar a 0.
Salir con  Button1.
MODE MEMO
En el modo memo se cambian las emisoras memorizadas mediante Button2.
Cada pulsación aumenta el numero de memoria.
Cuando llega a 20 se vuelve a cero.
MODE SCAN
Escanea emisoras desde la posición actual de frecuencia pulsando Button2.
Llegado a 108MHz vuelve a buscar desde 87.5MHz.
MODE DIAL
Sintoniza la frecuencia mediante el potenciometro.
ALARM
Se selecciona entre (ON/OFF-Horas-Minutos) con Button1.
Se cambia el valor con Button2.
MEMORY
Se selecciona la memoria con Button2. Se memoriza con Button1.
LEVEL-SCAN
Se cambia el valor (1-2-3) con Button2. Se selecciona con Button1.
TIME
Se selecciona entre (Horas-Minutos) con Button1.
Se cambia el valor con Button2.

Debido a que la frecuencia intermedia es de 225KHz, puede ocurrir de ciertas ocasiones cuando la señal de dos emisoras sean muy fuerte y este muy cerca la una de la otra que se interfieran.
Para estos casos deberiamos utilizar el bit :
    4 HLSI HIGH/LOW Side Injection: if HLSI = 1 then HIGH side LO injection; if HLSI = 0 then   LOW side LO injection
Además deberiamos cambiar el modo de que se calcula la frecuencia, mirar APPLICATION NOTE.
En mi ciudad existen bastantes emisoras, pero no me a ocurrido el problema, por lo cual no he tenido en cuenta el problema.

Vídeo de la radio funcionando


Saludos.
JUAN GALAZ



Bibliografía:
http://www.doctormonk.com/2012/03/tea5767-fm-radio-breakout-board-for.html
http://www.electronicsblog.net/arduino-fm-receiver-with-tea5767/
http://kalum.posterous.com/arduino-with-tea5767-single-chip-radio-and-no