TEA5767 FM Stereo Radio Module for Arduino 76-108MHZ With Free Cable Antenna

  • RM32.00

  • Product Code: TEA5767 FM
  • Availability: In Stock

Description:

The TEA5767 is an FM stereo radio module commonly used in electronics projects to receive FM radio broadcasts. This module is designed to receive FM radio signals in the frequency range of 76 MHz to 108 MHz. It's a compact and versatile solution for adding FM radio functionality to your projects or building standalone FM radios.

 

Key features and components:

FM Radio Reception: The TEA5767 module is designed to receive FM radio signals in the frequency range of 76 MHz to 108 MHz, which is the standard FM radio broadcast band in many countries.

Stereo Audio Output: This module is capable of providing stereo audio output, allowing you to listen to FM radio broadcasts in stereo when connected to appropriate speakers or headphones.

Digital Tuning: The TEA5767 module uses digital tuning to select and lock onto specific FM radio frequencies. This provides precise tuning control and minimizes drift.

Automatic Frequency Control (AFC): The module typically includes AFC functionality to automatically adjust the frequency and reduce drift when the signal is weak or unstable.

I2C Interface: The module communicates with a microcontroller or other host device through an I2C (Inter-Integrated Circuit) interface. This allows for easy control of tuning and other settings.

Antenna Connection: The module often includes an antenna connection point where you can connect an external antenna to improve signal reception. The "Free Cable Antenna" likely refers to an included antenna or a separate cable antenna you can use.

Power Supply: The module requires a DC power supply voltage within its specified operating range, which is usually around 2.5V to 5.0V, depending on the specific version.

Audio Output: The module provides audio output pins that can be connected to speakers or headphones for audio playback.

 

How it Works:

Here's a simplified explanation of how the TEA5767 FM stereo radio module works:

Antenna Connection: Connect an external antenna to the module's antenna connection point to improve signal reception. The antenna can be a simple wire antenna or a more specialized FM antenna.

Power Supply: Provide the module with the required DC power supply voltage to power its internal circuitry.

Digital Tuning: Use the I2C interface to send tuning commands to the module. The TEA5767 will lock onto the desired FM radio frequency and start receiving the broadcast.

Stereo Audio Output: Connect the audio output pins of the module to speakers or headphones to listen to the received FM radio broadcasts in stereo.

AFC Control: The module's AFC function helps maintain stable reception by automatically adjusting the frequency when necessary.

 

Applications:

The TEA5767 FM stereo radio module can be used in various applications, including: Building standalone FM radios. Adding FM radio functionality to electronics projects. Creating DIY radios and radio-controlled devices. Enhancing educational electronics projects related to radio and communication.

 

Technical Details:

  • Model : TEA5767
  • Input Supply voltage (V): 5
  • Frequency Range (MHz) : 76 ~ 108
  • Communication interface : I2C

 

Features:

  • With reverse polarity protection diode.
  • With a power output filtering sensor.
  • Directly plug antenna interface.
  • I2C bus communication.
  • Multi-capacitor combined filter.
  • Blue LED power indicator.
  • FM chip module TEA5767.
  • Onboard 3.5mm audio interface.
  • If connects with a single, only connect the Power Ground and two I2C communication cables.
  • LC harmonic oscillator uses a low-cost fixed chip.
  • No need to adjust Intermediate frequency.
  • High sensitivity(low noise RF input amplifier).
  • High power auto gains control AGC circuit.
  • Soft Mute.3.5mm jack for external Antenna.

 

Physical Attributes:

  • Antenna Jack (mm) : 3.5
  • Antenna can extend (cm): 23
  • PCB L x W x H (mm): 41 x 30.5 x 8.5
  • Weight (gm) : 14

 

Integration with Raspberry Pi

                                                                                 

 

 

 

Sample Code

import smbus as smbus 
import subprocess
import curses
import curses.textpad
import time
i2c = smbus.SMBus(1) # newer version RASP (512 megabytes)
i2c_address = 0x60
def init_radio(address):
    """initialize hardware"""
    i2c.write_quick(address)
    time.sleep(0.1)
def set_freq(address, freq):
    """set Radio to specific frequency"""
    freq14bit = int (4 * (freq * 1000000 + 225000) / 32768) # Frequency distribution for two bytes (according to the data sheet)
    freqH = freq14bit>>8 #int (freq14bit / 256)
    freqL = freq14bit & 0xFF
    data = [0 for i in range(4)] # Descriptions of individual bits in a byte - viz.  catalog sheets
    init = freqH # freqH # 1.bajt (MUTE bit; Frequency H)  // MUTE is 0x80
    data[0] = freqL # 2.bajt (frequency L)
    data[1] = 0xB0 #0b10110000 # 3.bajt (SUD; SSL1, SSL2; HLSI, MS, MR, ML; SWP1)
    data[2] = 0x10 #0b00010000 # 4.bajt (SWP2; STBY, BL; XTAL; smut; HCC, SNC, SI)
    data[3] = 0x00 #0b00000000 # 5.bajt (PLREFF; DTC; 0; 0; 0; 0; 0; 0)
    try:
      i2c.write_i2c_block_data (address, init, data) # Setting a new frequency to the circuit
      print("Frequency set to: " + str(freq))
    except IOError:
      subprocess.call(['i2cdetect', '-y', '1'])
def mute(address):
    """"mute radio"""
    freq14bit = int(4 * (0 * 1000000 + 225000) / 32768)
    freqL = freq14bit & 0xFF
    data = [0 for i in range(4)]
    init = 0x80
    data[0] = freqL
    data[1] = 0xB0
    data[2] = 0x10
    data[3] = 0x00
    try:
        i2c.write_i2c_block_data(address, init, data)
        print("Radio Muted")
    except IOError:
        subprocess.call(['i2cdetect', '-y', '1'])
if __name__ == '__main__':
    init_radio(i2c_address)
    frequency = 101.1 # sample starting frequency
    # terminal user input infinite loop
    stdscr = curses.initscr()
    curses.noecho()
    try:
        while True:
            c = stdscr.getch()
            if c == ord('f'): # set to 101.1
                frequency = 101.1
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('v'): # set to 102.1
                frequency = 102.1
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('w'): # increment by 1
                frequency += 1
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('s'): # decrement by 1
                frequency -= 1
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('e'): # increment by 0.1
                frequency += 0.1
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('d'): # decrement by 0.1
                frequency -= 0.1
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('m'): # mute
                mute(i2c_address)
                time.sleep(1)
            elif c == ord('u'): # unmute
                set_freq(i2c_address, frequency)
                time.sleep(1)
            elif c == ord('q'): # exit script and cleanup
                mute(i2c_address)
                curses.endwin()
                break
    except KeyboardInterrupt:
        mute(i2c_address)
        curses.endwin() 

 

Documentation:

Write a review

Note: HTML is not translated!
    Bad           Good