Андрей Смирнов
Время чтения: ~16 мин.
Просмотров: 0

TEA5767 стерео FM радио модуль для Arduino 76 — 108 мГц с антенной. US $3.63 / шт. http://ali.pub/35d3s5

Содержание

Модуль TEA5767 (рис. 1) предназначен для сборки цифрового стерео радиоприемника FM диапазона. Подключение к микроконтроллеру по протоколу I2C. На модуле установлены гнезда для подключения антенны и наушников. Содержит звуковой усилитель TDA1308 для наушников. 

radio-modulya-tea5767-fm.jpg 

Рисунок 1. Модуль TEA5767.

Модуль TEA5767 может работать в режиме поиска радиостанций. Поиск останавливается при нахождении первой станции, имеющей уровень сигнала определенного значения, которое можно изменять. В случае слабого сигнала приемник автоматически переходит в режим моно.

  • Напряжение питания : 5 В;

  • Интерфейс: I2C;

  • Диапазон принимаемых частот : 76 – 108 МГц;

  • Функция поиска радиостанций.

Модуль TEA5767 подключается к плате Arduino по протоколу I2C. Для подключения по протоколу I2C используем 2 вывода Arduino.

Подключим модуль TEA5767 к плате Arduino Uno (по схеме рис. 2) и загрузим скетч I2C-сканера. В мониторе последовательного порта определяем I2C-адрес TEA5767, который равен 0x60.

podklyuchenie-tea5767-fm-k-plate-arduino.jpg

Рисунок 2. Подключение к плате Arduino.

opredelenie-i2c-adresa-tea5767.jpg

Рисунок 3. Определение I2C-адреса TEA5767 (скетч I2C-сканер).

Управление модулем осуществляется отправкой команд (5 байт) по протоколу I2C. Модуль так же позволяет читать из него информацию для реализации функции автопоиска и уровня сигнала. В листинге 1 показана настройка радио на определенную частоту.

Листинг 1


// Подключение библиотеки для I2C

#include

// частота воспроизведения

float f = 105.4;

// массив для отправки I2C

byte arr[5]={0,0,0xB0,0x10,0x00};

void setup() {

Wire.begin();

// запуск радио

unsigned int freqB = 4 * (f * 1000000 + 225000) / 32768;

byte freqH = freqB >> 8;

byte freqL = freqB & 0XFF;

arr[0]= freqH;

arr[1]= freqL;

Wire.beginTransmission(0x60);

for(int i=0;i<5;i++

     Wire.write(arr[i]);

}

Wire.endTransmission();

}

void loop() {;}

</pre>

На выходе УКВ приемника установлена микросхема TDA1308 – звуковой усилитель для наушников.  Чтобы подключить к данному разъему динамики и получить громкий звук необходимо использовать усилитель, например показанный на рис. 4.

Рисунок 4. УНЧ для подключения динамиков к модулю TEA5767.

Рисунок 5. Подключение динамиков к модулю TEA5767.

Рисунок 6. Подключение динамиков к модулю TEA5767.

Создадим на модуле TEA5767 радиоприемник с поиском доступных радиостанций. Данные о найденной радиостанции будем отображать на экране дисплея, а поиск радиостанций будем осуществлять по нажатии на кнопки (вниз или вверх по частоте).

Нам потребуются следующие компоненты:

  • Плата Arduino Uno или Nano – 1;

  • Кабель USB – 1;

  • Плата прототипирования – 1;

  • Модуль FM-радио TEA5767 – 1;

  • УНЧ стерео – 1;

  • LCD WH1602 I2C – 1;

  • Кнопка – 2;

  • Резистор 10 кОм– 2;

  • Провода.

Схема соединения элементов показана на рис. 7.

Рисунок 7. Схема соединений для радиостанции на Arduino и TEA5767.

Приступим к написанию скетча. Для более удобной работы с модулем создана Arduino-библиотека TEA5767. Данные о найденной радиостанции будем отображать на экране LCD WH1602, по нажатии на кнопок будем осуществлять поиск радиостанций вниз или вверх по частоте.

Содержимое скетча показано в листинге 2.

Листинг 2


// Подключение библиотек

#include <tea5767>#include </tea5767>

#include <liquidcrystal>

ие экземпляров

TEA5767 receiver;

LiquidCrystal_I2C displ(0x27,20,4);

// служебные переменные

double freq;

int flag = 0;

int dir;

unsigned char arr[5];

int mono;

int lvl;

void setup() {

Wire.begin();

// запуск радио

receiver.init();

// станция по умолчанию

receiver.set_frequency(105.4);

// запуск дисплея

displ.init();

// подсветка дисплея

displ.backlight();

}

void loop() {

if (receiver.read_status(arr) == 1) {

    freq = floor(receiver.frequency_available(arr)/100000+0.5)/10;

    mono = receiver.stereo(arr);

    lvl = receiver.signal_level(arr);

    // вывод информации на дисплей

    displ.setCursor(0,0);

    displ.print(«FM: «); displ.print(freq);

    displ.setCursor(0,1);

    if (!mono)

       { displ.print(«STEREO «);}

    else

}

// поиск станции

if (flag == 1) {

      if (receiver.process_search (arr, direction) == 1) {

          flag = 0;

      }

}

// поиск вверх по частоте

if (digitalRead(2)==HIGH) {

    flag = 1;

    dir = TEA5767_SEARCH_DIR_UP;

    receiver.search_up(arr);

    delay(250);

}

// поиск вниз по частоте

if (digitalRead(3)==HIGH) {

    flag = 1;

    dir = TEA5767_SEARCH_DIR_DOWN;

    receiver.search_down(arr);

    delay(250);

}

delay(100);

}

</pre>

Загружаем скетч на плату Arduino и слушаем радиостанции, кнопками выбираем следующие.

Рисунок 8. Радиостанция в сборе.

1. Модуль не находит радиостанции

  • Проверьте правильность подключения модуля TEA5767 к плате Arduino.

  • Подключите антенну.

  • Переместите радиостанцию в зону уверенного приема

2. Недостаточная громкость

  • Для увеличения громкости используйте УНЧ.

  • Проверьте правильность подключения усилителя и динамиков к модулю TEA5767.

25.06.15   Discover   49 852   14   Приобрел я на пробу радио-модуль на базе микросхемы TEA5767.Модуль представляет собой практически законченный приемник. Сам по себе модуль ничего ловить не будет, если только совершенно случайно настройки модуля по умолчанию будут соответствовать какой-нибудь местной станции, но это вряд ли.Так вот, для того что бы модуль что-то начал ловить, нужно всего-ничего: подключить модуль в соответствии с распиновкой к усилителю и микроконтроллеру и написать прошивку управления модулем. Во как, раньше приемники паяли, а теперь пишем!

Содержание / Contents

Я не буду описывать TEA5767, я совсем «некопенгаген» во всяких приёмно-усилительных трактах, синтезаторах частоты и гетеродинах. Я даже не знаю, чем отличается гетерОДИН от гетерДВА! Ну и, как нередко случается у программистов, я подхожу к вопросу абстрактно, для меня модуль — это некий «чёрный ящик» с описанным интерфейсом взаимодействия. Вот о нём и поговорим.

↑ Типы и распиновка модулей на TEA5767

Я встречался с двумя типами модулей.

↑ 1. Наиболее удобный модуль с полной обвязкой:

А теперь по-русски: Этот модуль имеет полукруглые контактные площадки с торцов платы: 5+5 = 10 шт., шаг 2 мм. Я реализовывал управление по I2C шине. Для этого вывод «BUSMODE» подключаем к «земле», вывод «WR» можно не подключать.

↑ 2. Обрезанный модуль tt-502x — TEA5767 без кварца:

Часто нерадивые китайцы высылают этот вариант, вместо описанного выше. Вы сразу поймёте, что вас надули, распаковав бандерольку: на платах нет кварцевого резонатора. Радует то, что эти модули вполне рабочие, хоть и потребуют дополнительных телодвижений. Смотрите расширившуюся схему подключения, прикидывайте дополнительные элементы: часовой кварц, резисторы, конденсаторы. Этот модуль также имеет полукруглые контактные площадки с торцов платы: 4+6 = 10 шт., шаг 2 мм. Я с таким модулем не работал, но чипы одинаковые, так что моя библиотека должна подойти.

↑ Схема демо-платы для TEA5767

Наверное, это первое моё устройство и программа, которые создавались ради изучения. Поэтому схема очень простая, предназначенная только для того, чтобы запустить модуль FM-приёмника. Учебный проект!Основные компоненты схемы: • управляющий микроконтроллер ATmega16 • индикатор знакосинтезирующий 1602 на базе HD44780 • управление на энкодере с кнопкой

↑ Фото моей демо-платы в сборе

↑ Управление TEA5767 по I2C шине. Описание регистров на русском

Когда-то я уже пытался работать с этим модулем, но написать что-то сам я был ещё не в силах, а  найти что-то готовое оказалось достаточно сложно. Вот я и решил, набравшись опыта в C, восполнить этот пробел и написал собственную библиотеку для работы с модулем.Исключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только меценатам и полноправным членам сообщества. Читай условия доступа!Описание регистров, смысл которых я не понял, оставил без перевода. Так что, уважаемые коллеги, если кто-то более компетентен — пишите, вместе статью допилим.

↑ Функции датагорской библиотеки для TEA5767

Теперь пора рассказать про функции библиотеки, их всего пять.1) tea5767_write (); — функция записи параметров структуры TEA5767WriteRegister в модуль.2) tea5767_read (); — функция чтения параметров из модуля в структуру TEA5767ReadRegister.3) tea5767_calc_write_PLL (uint16_t Value); — функция вычисления значения PLL при частоте кварца 32768 Гц, входной параметр — частота в МГц * 100, пример: tea5767_calc_write_PLL (10300) — вычисление значения PLL для частоты 103,00 МГц.4) tea5767_init (); — начальная инициализация модуля. Можно и не инициализировать, но так как-то user-frendly, подаёшь питание, а там что-то уже играет. Я записываю следующие стартовые параметры:

tea5767_calc_write_PLL ( 10300 ); TEA5767WriteRegister.XTAL = 1; //выбор опорной частоты 32768 Гц TEA5767WriteRegister.SNC = 1;  //шумоподавитель ВКЛ

5) (uint16_t)tea5767_calc_read_PLL (); — вычисляет значение частоты из регистров PLL для чтения.В библиотеке значения регистров для записи и чтения хранятся в двух структурах, которые определены в заголовочном файле библиотеки.Структура данных для записи — TEA5767WriteRegisterИсключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только меценатам и полноправным членам сообщества. Читай условия доступа!Структура данных для чтения — TEA5767ReadRegister Показать / Скрыть текст

 // Структура данных для чтения из регистров TEA5767 struct { // REGISTER R1 uint8_t PLL_13_8 : 6;// PLL[13:8] setting of synthesizer programmable counter after search or preset uint8_t BLF : 1;// Band Limit Flag:if BLF = 1 then the band limit has been reached; if // BLF = 0 then the band limit has not been reached uint8_t RF : 1;// Ready Flag:if RF = 1 then a station has been found or the band limit // has been reached; if RF = 0 then no station has been found  // REGISTER R2 uint8_t PLL_7_0;// PLL[7:0] setting of synthesizer programmable counter after search or preset  // REGISTER R3 uint8_t PLL_IF : 7;// PLL[13:8] IF counter result uint8_t STEREO : 1;// Stereo indication:if STEREO = 1 then stereo reception; // if STEREO = 0 then mono reception  // REGISTER R4 uint8_t Dummy : 1;// this bit is internally set to logic 0 uint8_t CI : 3;// CI[3:1] Chip Identification:these bits have to be set to logic 0 uint8_t LEV : 4;// LEV[3:0] level ADC output  // REGISTER R5 uint8_t R5Data; // Reserved for future extensions; these bits are internally set to logic 0 } TEA5767ReadRegister; 

Структуры имеют битовые поля. Сделано это для удобства пользования библиотекой, мне не требуется применять операции сдвига или какие либо маски для установки/сброса конкретного бита. Например, включение режима «MUTE» осуществляется следующим образом: TEA5767WriteRegister.MUTE = 1. После того, как необходимые параметры установлены, нужно вызвать функцию tea5767_write (), которая запишет всю структуру в модуль.Также легко можно считать уровень сигнала из модуля: вызываем функцию tea5767_read (), SignalLevel = TEA5767ReadRegister.LEVТаким же образом доступны почти все параметры. Исключение составляют значение PLL, которые занимают больше одного байта в структуре. Но нам и не нужно что-либо записывать или считывать из них вручную. Для управления модулем проще будет задавать частоту. Для этого в библиотеке есть специальная функция, которая вычисляет значение PLL для заданной частоты. Также есть функция, которая производит обратное вычисление частоты из значения PLL, считанного из модуля.Функции для вычисления PLL используют опорную частоту 32768Гц, такой кварц стоит на модуле. Других я не встречал, поэтому в библиотеке я не предусматривал возможности использования другого кварца.К небольшому сожалению, я не смог реализовать автопоиск станций — не вкурил, как. Поэтому функция автопоиска в библиотеке пока отсутствует. Сожаление небольшое потому, что я живу в зоне неуверенного приема, и даже промышленные образцы приемников не могут поймать все станции, которые у нас вещают. Приходится настраивать вручную.

↑ Видео

Демо-плата под управлением описанного софта в работе

↑ Файлы

Библиотеки soft-i2c и TEA5767libs.7z 🕗 19/01/15 ⚖️ 3,14 Kb ⇣ 93Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.Уже более 10 лет наш журнал существует только на мои средства. Хорош! Халява кончилась. Хочешь файлы и полезные статьи — помоги мне!Пожертвовать на журнал Датагор и др. способы получения доступа. — Спасибо за внимание! Игорь Котов, учредитель журнала «Датагор» Даташит TEA5767.pdf — стерео FM приёмник с МК управлением

↑ Итого

В качестве транспорта я использовал стороннюю библиотеку I2C шины. Шина реализована программным образом, мне это удобно потому, что можно подключаться на любые выходы микроконтроллера.Вот и всё, что я хотел рассказать про мою TEA5767-библиотеку. Думаю, перечисленных функций вполне достаточно для управления FM-модулем. Приглашаю желающих повторить наш учебный проект.Спасибо за внимание!

Камрад, смотри полезняхи!

Иван Гаврилов (Discover)Вологодская обл. Череповецкий р-н, п.ТоншаловоСписок всех статейПрофиль Discover

Читательское голосование

Статью одобрили 103 читателя.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.

Поделись с друзьями!

Связанные материалы

TEA5767.pdf — стерео FM приёмник с МК управлением… TEA5767 — стерео FM приёмник с МК управлением Даташит TEA5767.pdf :… Вторая жизнь лампового радиоприемника Philips 592LN (Голландия, 1947). Часть 5… В этой части статьи речь пойдет: — о предварительном усилителе и его питании, — о питании модуля ФМ… Отечественные приемно-усилительные лампы и их зарубежные аналоги… Отечественные приемно-усилительные лампы и их зарубежные аналоги, Кацнельсон Б.В. Ларионов А.С…. SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2… Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,… Вторая жизнь лампового радиоприемника Philips 592LN (Голландия, 1947). Часть 4. Модуль BlueTooth OVC3860… Привет, датагорцы! В этой части моего повествования речь пойдёт о модуле BlueTooth OVC3860 (далее… Анонс: доступен новый кит Project-6 «Power Filter»… С 25-08-2012 доступен датагорский кит на базе рассмотренного в статье прототипа! Забирайте на нашей… Доработка модуля китайского вольтметра… ПрелюдияИзучая как-то бескрайние просторы Интернета на предмет китайских полезностей, наткнулся я… Предварительный усилитель на аудиопроцессоре TDA7318 (TDA7313) и Arduino. Часть 1… Благодарим Тимофея Носова за идею проекта на TDA7318. При построении усилителя звуковой частоты,… Двухполярный блок питания из готовых китайских модулей dc-dc step down LM2596… Нынче стали доступны готовые модули импульсных преобразователей напряжения на микросхеме LM2596…. Вторая жизнь лампового радиоприемника Philips 592LN (Голландия, 1947). Часть 3… В этой части разберемся с инсталляцией китайского ФМ-радиомодуля в древний Philips 592LN , с… Визуализация для микроконтроллера. Часть 4. Android… Вообще то я планировал рассказать сегодня про дисплей на базе ILI9481. Однако, он настолько похож… Часы с GPS-синхронизацией времени и винтажными индикаторами ИН-12. Наш вариант Nixie Tube Clock… Не думал, что спустя много лет я вернусь к часам на газоразрядных индикаторах. В конце 70-х я…

Общаемся по статье 💬

«Рулим китайским FM-радиомодулем на TEA5767. Датагорская библиотека на C»

Комментарии, вопросы, ответы, дополнения, отзывы

aad3fa97-d0a6-44cd-9f01-9df60dad2b34.jpeg

  • Цена: $13.36

Всем доброго времени суток! Предлагаю на Ваш суд обзор на Kit набор для сборки FM — радиоприемника на модуле TEA5767. Набор приехал в простом пакете.5eb420.jpg Внутри еще кучка пакетиков поменьше.00b74f.jpg Один из пакетов — это будущий корпус, вырезанный из акрила.e63dd4.jpg А вот так это все будет выглядеть после сборки, отверстие по центру предполагает установку в него динамика. Мне почему-то такой подход к формированию корпуса не очень понравился, еще до сборки стал думать, как бы облагородить это отверстие для защиты динамика.f87b5c.jpg Второй пакет — это динамик, производитель накрыл диффузор пластиковой защитой так что при доставке ничего не поломалось.0ecc92.jpg Диаметр динамика 50 мм. на конце провода установлен разъем.

Ну и третий пакет содержит собственно печатную плату и набор деталей, которые нужно будет запаять на плату.43cf5e.jpg Плата сделана хорошо, металлизация на совесть припой при сборке лип легко.e22949.jpg Все номиналы элементов нанесены на плату так что сборка не вызывает никаких проблем, хотя инструкция на мой взгляд все равно лишней бы не была, но увы ее нет.938b7f.jpg За прием сигнала и его начальную обработку отвечает FM-радио модуль TEA5767 a1a51f.jpg Роль конечного аудио усилителя производитель отдал микросхеме LM386 на ее основе собран выходной усилитель приемника. Причем производитель не поскупился и положил в комплект сразу две микросхемы, хотя в конструкции используется только одна.5c5923.jpg Отображение частоты, на которую настроен приемник реализовано на сборке из семисегментных индикаторов.3fe4db.jpg В конструкции использована динамическая индикация так что для управления потребовались транзисторные ключи, в данной случае это четыре транзистора S9012. Ну и наконец за общее руководство отвечает микроконтроллер STC89C52RC с заранее прошитой программой. Для запуска контроллера конечно же нужен кварц. Ну и небольшая кучка, резисторов и конденсаторов. А еще антенна, пара кроваток для микросхем, кнопки и разъем питания. Как обычно первым делом распаял все резисторы, оказалось. Почти все резисторы на 10кОм, но есть пара с другим номиналом так что без мультиметра или таблицы определения номинала по цветовому коду не обойтись. Следующей проблемой стало размещение части деталей под контроллером. С кварцем и керамическими конденсаторами проблем нет, а вот электролит пришлось класть на бок.
Далее транзисторы и оставшаяся керамика. Потом дисплей и единственный светодиод который почему-то на плате помечен как D13 Ну и собственно вся плата в сборе, разъем от динамика пришлось откусить потому как производитель забыл положить в набор его ответную часть. Это, кстати, был первый, но не единственный косяк этого набора. Вторым так сказать косяком стала антенна, а если быть точнее, то ее крепление, ну или полное отсутствие этого самого крепления, как я не искал, так и не нашел в наборе нужного винта, Пришлось найти вот такую штучку из старых запасов, резьба подошла идеально. Также решил озаботиться защитой динамика. Там, где нашел винтик для антенны обнаружилась вот такая решетка для кулера. Немного доработав её напильником и краской из баллончика. Получил вот такую защитную решетку для динамика. Немного не ровно, но DIY он такой 🙂 Ну и собственно вся конструкция в сборе.
И моя решеточка Внутри корпуса еще достаточно места вполне можно будет добавить аккумулятор и зарядку, тем более что напряжения питания от 4.5 до 5 вольт. Первое включение. За которым сразу последовало небольшое разочарование, о котором стоит рассказать подробнее. Отображение частоты на индикаторе временное, она показывается около 2-х минут после последнего нажатия на кнопку или после включения радиоприемника и все то время пока светиться индикатор из приемника идет очень и очень сильный фон, который практически полностью заглушает звук самого радио. Как только индикатор гаснет фон сразу превращается и можно вполне наслаждаться музыкой. Пару слов об управлении, тут все просто красная кнопка это вкл/выкл с фиксацией так что, когда радио выключено оно на самом деле выключено, а это еще один плюс при добавлении к нему аккумулятора. На настройки частоты радиостанции используются две кнопки, частота меняется с точностью десятых долей мегагерца и с шагом в одну десятую. Автоматического поиска увы нет. За регулировку громкости отвечает переменный резистор на боку приемника. Видео сборки и тест работы: Небольшой вывод: если, одним словом, то прикольно. Набор не сложный его реально собрать, не торопясь за пару часов или даже быстрее. Очень понравилось, что сразу в наборе идет корпус, получаешь удовольствие не только от самого процесса сборки, но и от результата получив готовое изделие. Есть и минусы первый из них это опять-таки корпус, с одной стороны хорошо, что пришлось еще немного и напильником поработать, а с другой что мешало сделать вместо того огромного отверстия сразу решетку непонятно, ну и нехватка винтика для антенны, вот вроде бы мелочи, а общую картину портят. Думаю, можно закинуть в корпус 18650 банку, плату зарядки и DC-повышайку и будет нормальный приемник не только для дома. Тем более что прием на улице гораздо лучше, чем в квартире, вот только с фоном нужно разобраться. Заранее приношу свои извинения за орфографию и грамматику текста, все допущенные ошибки сделаны не специально, а только по незнанию и в связи с несовершенством программ автоматической проверки текстов. Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта. Используемые источники:

  • https://3d-diy.ru/wiki/arduino-moduli/radio-modul-tea5767-fm/
  • https://datagor.ru/microcontrollers/microcontrollers-code-library/2695-modul-na-baze-tea5767-biblioteka.html
  • https://mysku.ru/blog/china-stores/71064.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации