FM стерео тюнер

Сделать миниатюрный FM стерео тюнер мне хотелось уже давненько, т.к. жене таскать стационарную магнитолу из комнат в кухню не очень удобно, а процесс приготовления пищи идёт гораздо приятней под звуки хорошей музыки. Поискав по интернету, готовых решений нашёл пару-тройку штук, весьма похожих друг на дружку.  Потом вспомнил, что когда-то в журнале «Радиоаматор» тоже видел что-то похожее. Перебрал номера и в номере 10 (октябрь) за 2006 год на странице 8 нашёл статью «FM тюнер» (автор В.Э. Старчевский, г. Луцк). Взял схему описанной там конструкции себе за основу. Изменил управление, настройку и индикацию, использовав ATtiny2313. В общем-то, определяющим фактором, почему я использовал эту конструкцию, стало то, что к ней придавался рисунок печатной платы (скачать его можно было с сайта издательства).
Схема тюнера представлена на рисунке: Более внимательное изучение показало, что автор применил схемы включения микросхем, рекомендуемые в их даташитах, что, в общем-то, правильно. Из отличий — для TEA5711 во входной цепи добавлен УВЧ для улучшения чувствительности. Как я уже говорил, без изменений я оставил радиочастотный тракт, синтезатор частот, блок питания и усилители. Полностью переработал узел управления, настройки и индикации. На схеме элементы этих узлов обведены красным маркером. Для того, чтобы не изменять рисунок печатной платы, была изготовлена мезонинная миниатюрная печатная плата, которая содержит микроконтроллер ATtiny2313 с потенциометром контрастности ЖКИ и резисторами ЦАП R-2R регулятора громкости. Плата вставляется на штатное место PIC контроллера безо всяких изменений в «родной» плате тюнера. С неё же выведены проводники для соединения с ЖКИ (индикация), энкодером и кнопкой (управление), т.к. применение пяти(!) кнопок я посчитал расточительством:)  в плане линейных размеров. Вообще, товарищи, приёмник получился в своём роде учебным пособием-макетом по нескольким направлениям: — работа синтезатора частот LM7001; — основы построения ИИП на ШИМ-контроллерах семейства TOP2xx; — применение законченного стереорадиотракта на микросхеме TEA5711; — УМЗЧ на микросхемах TDA; — ну, и конечно, программирование микроконтроллеров AVR фирмы ATMEL.
С LM7001 я раньше не сталкивался, поэтому сам изучал её работу вживую. Ничего там сложного нет. Рытьё помоек в интернете вынесло на свет немалую кучу информации по работе этого синтезатора, который, в общем-то, уже считается устаревшим. Особенно углубляться я не буду – кому интересно, можно самому изучить, например, здесь. В двух словах для управления синтезатором на него нужно подать 24-х разрядное управляющее слово по трёх проводному последовательному интерфейсу. Это слово содержит в себе все необходимые для работы синтезатора настройки и установки.
Источник импульсного питания сделан практически один к одному по аппноуту производителя TOP2xx. Его работа и наладка хорошо описана у товарища Medved. Из граблей, на которые я наступил, могу отметить процесс изготовления импульсного трансформатора. Обмотки я мотал, не отмечая начала/конца и не в одну сторону т.к. по опыту знал, что «вызвонить» их с помощью осциллографа не составит труда. После изготовления оного, я подал на первичку меандр, и осциллографом, сопоставляя фазы одновременно наблюдаемых сигналов на первичке и одной из вторичек, быстро промаркировал начала и концы обмоток. Впаял в блок… однако на выходе – болт. Симптом следующий: после включения сети напряжение на выходе очень плавно, в течении почти минуты поднималось до 4, 5 В без нагрузки. С нагрузкой оно не превышало доли вольта. Стократная проверка правильности монтажа, исправности деталей и отсутствия «залипух» ни к чему не привела. В итоге сделал ещё один трансформатор, но мотал обмотки в одну сторону. После установки его на плату, блок питания сразу заработал без проблем. В итоге я промучился с двумя трансами почти день, сердечники покупал на радиорынке по 12 грн. шт. , а оказалось, что ГОТОВЫЕ трансформаторы именно под серию TOP2xx можно свободно купить в любом интернет-магазине за небольшие деньги. В частности на «Космодроме» я нашёл нужный мне транс всего за 24 грн. Вывод напрашивается сам собой.
УМ и предварительный усилители ЗЧ также включены по типовым схемам. Их применение рассмотрено вдоль и поперек, что отображено в сотне статей радиолюбительской литературы и интернета.
Радиочастотный тракт на TEA5711 я принял «как есть в даташите», особенно не углубляясь в тонкости его работы.
Узел управления и индикации переделывался по той причине, что с PIC-ами я не дружу, а также для того, чтобы реализовать полностью свой алгоритм управления приёмником. Опять же, и я постоянно подчёркиваю это в своих статьях, алгоритм потом можно совершенствовать сколь душе угодно, подстраивая под свои нужды. Также мне не понравилась регулировка громкости потенциометром – это в век микроконтроллеров!!! Ног у ATtiny2313 вполне хватило для реализации простейшего 4-х разрядного ЦАП R-2R, хорошо описанного в этой статье. С 4-х разрядов ЦАП получается 16-ть градаций громкости – как по мне, так за глаза хватит! Индикацию сделал на ЖКИ HD44780 2 строки x 8 знакомест. Лучше, конечно, 2 х 16 — больше информации можно отобразить, но он в два раза габаритнее. Управление осуществляется энкодером и кнопкой. Сначала я, не подумав, ещё и под потенциометр дырку высверлил в передней панели, но потом, по вышеуказанным причинам, регулировку громкости переделал, а дырка осталась(((.
Схема мезонинной платы представлена ниже:

Выход регулировки громкости Volume припаивается на место вывода ползунка резистора R28 платы тюнера. Выходы DATA, CL, CE через посадочный разъём мезонинной платы подключаются на место выводов 3, 2, 1 DD2 , а +5V и GND на 14-й и 5-й выводы той же DD2 соответственно. Да, ещё… На схеме выводы 15 и 16 показаны как NC (не подключённые). На самом же деле это анод и катод светодиодов подсветки — просто в библиотеке EAGLE не нашлось нужного индикатора.
Монтажная плата непосредственно тюнера с расположением элементов показана на рисунке:Детали:
Резисторы и конденсаторы smd 0805, R24- любой малогабаритный выводный. Электролиты импортные С29 — 400 В, С38 — 25 В, остальные — 16 В. Конденсатор С27 — К73-17-400 В. Индуктивности бескаркасные, намотаны проводом 0,6 мм на оправке 4 мм L1, L2 — 3 витка, L3 — 8 витков, L4 — 4 витка. Дроссель L6 — 15 витков провода 0,6 мм на феррите диаметром 3 мм (я взял готовый похожий по размерам из платы негодного монитора). Фильтр L5 намотан на ферритовом кольце внешним диаметром 15 мм двойным проводом в изоляции — 8 витков (я его вообще не использовал, т.к. не было под рукой кольца). Дроссели L7, L8 — проводник, пропущенный через ферритовую трубочку. Фильтры Z1, Z2, Z3 — любые широкополосные с красной точкой. Транзисторы VT1, VT3 — в корпусе SOT-23. Варикапы VD1, VD2 в корпусе SOD-323. Трансформатор ИИП намотан на Ш-образном феррите с размерами ( это приблизительно, не заморачивайтесь до долей миллиметров ): высота сердечника 12 мм, высота окна 8 мм, ширина окна 5 мм, толщина пакета 6 мм, ширина язычка 6 мм. Первичка — 75 витков  0,2 мм, вторичка — 9 витков 0,6 мм, дополнительная (на оптрон) — 5 витков 0,2 мм. Первичку и вторичку хорошо заизолировать друг от друга. В сердечнике необходим зазор 0,2 мм — на каждую половинку приклеить по кусочку бумаги.
Упаковка платы деталями особых проблем вызвать не должна при некоторых навыках правильной пайки и качественно сделанной печатной плате (ЛУТ рулит). Резисторы R28, 20 и те smd-шные, которые находятся под DD2 (PIC — контроллером) можно не ставить. Я её собрал за полдня и накосячил только в одном — зеркально впаял VT2 (потом из-за этого полдня искал причину, почему не работает тюнер). Витки контуров даже не трогал, хотя в статье предлагается «… деформацией катушки L3 добиваются наиболее качественного приёма…» — качественный приём пошёл сразу.Как всегда программа написана в Си, под WinAVR и снабжена подробными комментариями, по которым разобраться в её работе не составит особого труда.
Программу я писал частями. Сначала написал фрагмент, реализующий посылку управляющего слова на синтезатор нажатием кнопки, погонял по диапазону, убедился, что все местные станции нормально принимаются. Потом отдельно сделал регулировку громкости, настроил её. Затем написал меню и связал всё в кучу. Благо, что готовые библиотеки работы с энкодером, кнопками, ЖКИ у меня есть свои, давно отработанные и проверенные.
Пару слов о работе тюнера. После включения он настраивается на частоту FM, громкость звука и яркость индикатора, которые были установлены перед его предыдущим выключением. При первом включении их значения в середине шкалы (своей для каждого из параметров). Кнопкой эти параметры перебираются «по кольцу», а энкодером выбранный параметр изменяется. После изменения параметра его значение спустя приблизительно 16 секунд записывается в EEPROM.
На фото показаны режимы настройки каждого из них.

Предвидя массу вопросов, сразу отвечаю, товарищи, эта прошивка самая что ни есть простейшая и сделана для того, чтобы исследовать и проверить работу тюнера, и недаром называется версия 1.1 (в версии 1.0 громкость регулировалась с помощью потенциометра). Представленный код не «вылизывался» и не оптимизировался. В ближайшем будущем я его отшлифую и дополню следующими функциями: — автопоиск станций по всему диапазону; — хранение в памяти 10 и более (если нужно) станций FM; — более полным меню. И ещё чем-нибудь, что в голову придёт. Кроме всего, я уже жалею, что сделал мезонинную плату. Нужно было плату управления сделать непосредственно на передней панели, тогда с основной платой её соединяло бы всего шесть проводников. Да ещё и принтер сломался – не на чем напечатать красивую фальшпанель. Но это всё в процессе, друзья.
Эксплуатация первых дней обнажила недоработки: — регулировка громкости — слушать нормально можно от 12 до 18 %, уже при 24-х в звуковых головках слышны хрипы (перегруз, однако); — ощутимо греется радиатор УМЗЧ — нужно повесить что-то помассивнее. Остальное — нормально: частота не «плавает», настройка чёткая, приём качественный —  и это радует!

В архиве папка с файлами проекта, печатная плата тюнера в P-CAD-е, печатная плата контроллера в SL5.

Всех читателей искренне поздравляю с ДНЁМ РАДИО!!!

P.S. может кто-то предложит свои варианты меню (хотя бы на пальцах) — я прислушаюсь к каждому совету.

 

Запись опубликована в рубрике Разное с метками , . Добавьте в закладки постоянную ссылку.

18 комментариев: FM стерео тюнер

  1. Александр говорит:

    А как контроллер определяет яркость? там же вроде фиксированная настройка резистором и на АЦП не заведена…. я чего-то не дочитал?
    А вообще сделано классно:)

  2. s_black говорит:

    Спасибо))) Яркость регулируется ШИМ-ом с таймера контроллера. Яркость в процентах — это коэффициент заполнения ШИМ. В исходнике комментарии. Удачи!

  3. Maxym говорит:

    Вариант меню, очень даже хороший:
    http://easyelectronics.ru/organizaciya-drevovidnogo-menyu.html#more-316

  4. Вадег говорит:

    Очень понравилась конструкция! Спасибо за материал!

  5. s_black говорит:

    Я рад, что Вам она оказалась полезной!

  6. Владимир говорит:

    Добрый день. Не могли бы Вы подсказать по исходнику. Как я понял отправка 24 байт происхоит вот тут:
    word_control = 0x800000 | division;
    write_control_word(word_control);

    Скажите пожауйста. Что такое 0x800000 подрбнеее. И что такое у Вас
    #define max_freq 1187
    #define min_freq 987

    К преимеру я хочу сделать синтезатор частоты для 27 мГц . Как там быть?
    Спасибо

  7. s_black говорит:

    По ссылке в статье можно почитать структуру управляющего слова.
    0х800000 — это 0b100000000000000000000000, где старшая единица означает диапазон (1 -FM, 0-AM).
    Операция word_control = 0×800000 | division; добавляет к основе управляющего слова коэффициент деления, который соответствует некой частоте.
    Функция write_control_word(word_control); отправляет управляющее слово непосредственно на синтезатор.
    Дефайнами
    #define max_freq 1187
    #define min_freq 987
    определяется диапазон перестройки (для данного случая 108-88 МГц.)
    Чтобы сделать синтезатор для 27 МГц нужно пересчитать коэффициент деления и определиться с параметрами.

  8. Михаил говорит:

    Как с наводками от импульсного БП, расположенного на общей плате

  9. s_black говорит:

    Таковые не наблюдаются. Перед стабилизатором хороший фабричный дроссель, выпаянный из старого «Сименса», а после — по шинам питания ферритовые бусинки.

  10. Гоша говорит:

    Не плохой проект. Но я немножко далёкий от чтения программ и уж тем более их написания, по-этому просьба к автору подсказать, каким-же НЕХ-файлом нужно прошивать МК. В проекте я насчитал их три. И по-поводу фьюзов не совсем понятно, что выставлять? Пользуюсь программатором CVAVR.

  11. s_black говорит:

    FM_receiver.hex
    Фьюзы на работу от встроенного RC 1 МГц

  12. Гоша говорит:

    И ещё раз спасибо автору.
    А новой прошивки с памятью станций, случайно, не появилось?
    Был-бы очень признателен.

  13. s_black говорит:

    В общем нет. Он сейчас не у меня в пользовании, а людей и так устраивает. Сложностей там никаких — запись/считывание внутреннего EEPROM.

  14. Гоша говорит:

    Всем привет.
    Собрал данную схему (без БП и оконечного усилителя)
    Но… Приёмник не работает. То есть работает, но не совсем. Индикация работает (изменяются показания частоты, громкости, яркости ), значит с МК и прошивкой всё ОК. Но в наушниках только шипение и ни каких изменений при вращении настройки. При деформации L3, тоже ничего не происходит. Питание использовал от трёх бат. по 1,5V. В авторской схеме использовано раздельное питание через фильтры (на МК , синтезатор отдельно от остальной схемы) , у меня питание от одного источника без фильтров, т.к. использую бат. думаю существенных изменений не произойдёт. Ещё, в схеме с PIC используется 6(sc) нога LMки, а в схеме с AVR- нет. Это нормально?
    Кто чего посоветует? Заранее спасибо откликнувшимся.

  15. Гоша говорит:

    P.S. Не много поразмыслив и проверив монтаж, нашёл маленькую ошибочку, точнее две. Варикапы впаял не правильно. перевернул их и всё заработало. Но, появились другие проблемы: в наушниках прослушивается генерация, может действительно разделить питание и пропустить провод через ферит? Ещё при регулировке громкости от 18% до 24% происходит очень большой скачок- 18%тихо, 24%ну очень громко. Это програмно или я чёто накосячил , как можно исправить на более плавную регулировку? Мерцание дисплея связанное всё с той же генерацией (ИХМО). Просьба не отказать в помощи.

  16. s_black говорит:

    Здравствуйте! Извините за неоперативный ответ — был в отъезде. Отвечаю на Ваши вопросы…
    Питание, конечно, разделяйте.
    Насчёт громкости я написАл в конце статьи — почитайте. Из положения я вышел установкой делителя после ЦАП-а R-2R, таким образом, чтобы при 100 % громкости уровень сигнала не превышал 1 В. Удачи Вам.

  17. VN Луцьк говорит:

    Приємно бачити, що давні схеми допрацьовуються і вдосконалюються. Передам Вадимові, що про його FM приймач не забули. Плануєте встановити екран 16*2, і зробити запам»ятовування станцій з можливістю їх підписування?
    Доречі це був самий перший проект, розроблений для захисту дипломної роботи, виглядав дуже гарно. Був змонтований в корпусі з під модему, висота якого була рівною платі індикатора 16*1 і псував вигляд лише потенціометр регулювання звуку. На той час фізично не вистачало часу і можливості встановити цифровий регулятор гучності.
    Хороша доробка, респект!!!

  18. s_black говорит:

    Спасибі за комент! Екран 16х2 встановити можливо хоч зараз (протоколи обміну однакові), але не бачу в цьому сенсу. Станції запам’ятовуються під номерами. Всього найкращого!

Добавить комментарий

Ваш e-mail не будет опубликован.