Например TDA7294

Форум РадиоКот :: Просмотр темы - FM тюнер с МК управлением
Форум РадиоКот
https://radiokot.ru/forum/

FM тюнер с МК управлением
https://radiokot.ru/forum/viewtopic.php?f=3&t=16434
Страница 1 из 2

Автор:  Igor_67 [ Пт май 22, 2009 13:59:28 ]
Заголовок сообщения:  FM тюнер с МК управлением

Здравствуйте, уважаемые! Возникла острая необходимость замутить FM тюнер для дома с управлением на AVR микроконтроллере. Пошарил по интернету - похожие схемы только на PIC-ах. А я вот с ними не дружу. Кто бы посоветовал схемку на AVR (любом)? Или может кто займется? Здесь есть статьи по FM тюнерам, только подходящей нет...
Значит, как говорил наш уважаемый Ги де Мопассан "Ближе к телу...",
- перестройка частоты (88-108 МГц)
- цифровой синтезатор частоты
- управление перестройкой частоты с помощью AVR МК
- память каналов (частот) - до 12 ячеек
- возможность занесения в память названия радиостанции
- LCD 4х16 (можно 2х16, но нежелательно)
- электронная регулировка уровня сигнала на выходе
- отображение на LCD частоты, номера канала, времени, названия радиостанции
- пульт ДУ (RC-5 или RC-6), но необязательно

Вот такой хочу тюнер! Купить могу, но не хочу - хочу собрать сам!
У кого какие мысли на этот счет?

Автор:  Telek [ Пт май 22, 2009 16:55:23 ]
Заголовок сообщения: 

У меня тоже недавно появилось желание собрать нечто подобно...
И поэтому в плане изучения микропроцессоров неспешно делаю примерно следующее:
FM тюнер + часы + будильник + календарь.

C FM я долго не парился и взял ТВ/ФМ модуль из платы для компьютерного ТВтюнера(железная коробочка на плате). Опять же можно взять от магнитол. Удобней будет если модуль не требует обвеса и с интерфейсом I2C. Я брал Филипс FM1256PH3 от ТВтюнера от Авермедии.
Если бы еще были датащиты на него - был бы вообще рай. Но на конкретно мой датащитов не нашел и поэтому парился с поиском и изучением исходников драйверов под Линкса, т.к. конкретно этот модуль оказался не совсем стандартным по отношению к распространенным моделям. Но в итоге работать я с ним научился.

Сейчас пока все на уровне макеток и эмуляции.
Сейчас это примерно выглядит так:
-Микропроцессор MEGA32
-ФМ - FM1256
-Экран 128x64 от MELT MT–12864A
-Часы на ds1307
-Датчик температуры ds18s20
Программа уже умеет:
- Отображать время/дату, температуру, состояния будильников
- Есть настройки будильников
- Есть календарь с отображением на месяц и с возможностью листать по месяцам
- Написаны функции для быстрой отрисовки графики и различных шрифтов
- Сделаны шрифты и битмапы для отображения нужной информации
- Примитивное управление ФМ модулем

Осталось сделать:
- Нормальное управление ФМ
- Разобраться и сделать автопоиск радиостанций
- Сохранение радиостанций и доп. режимов для конкретной радиостанции(типа моно/стерео, режим чувствительности тюнера и др...)
- прикинуть и сделать некий простенький усилитель для выходного сигнала с ТВ тюнера

Так как в Меге пока еще остается дофига места(пока потрачено 30% флешки), планирую на более дальнюю перспективу еще сделать графики температуры ну и какойнить тетрис - какой же будильник без тетриса? :)))

Про ИК пульт думал, но пока отложил на более поздний срок, т.к. с приемниками ИК еще не разбирался... делал(даже лучше сказать повторял опятьже в целях изучения МК) только ИК передатчик(правда программу переписывал сам).
Собственно вот такие мысли на эту тему. Я в электронике не силен - не очень давно открыл для себя такое хобби... поэтому делается все не быстро.

Автор:  Дмитрий М [ Пт май 22, 2009 17:04:09 ]
Заголовок сообщения: 

Поиск там идёт по сигналу опознавания (выход на модуле с детектора), даташитов на модуль не найдёте, проще на ИС синтезатора ориентироваться. Буржуи выпускают прекрасный приёмник в корпусе под стандартный подрозетник, насколько я помню, там кнопки перебора станций в "+" и "-" (они же и настроечные), кнопка памяти (запоминания), она же при длительном нажатии и вход в настройку, выход из режима автоматически, если не трогать кнопки более 2 минут. И две кнопки громкости, внутренний УНЧ на 5 ватт. Очень удобная штука, дисплей.. а зачем?

Автор:  Igor_67 [ Пт май 22, 2009 17:15:20 ]
Заголовок сообщения: 

Зачем дисплей, спрашиваете??? Тюнер планируется, как часть аудио-видео комплекса, который будет стоять в одной стойке с усилком и DVDюшником (под телевизором). И поэтому нужен дисплей, чтобы с дивана :)) было видно, какая частота и какая станция. А насчет "тетриса" - по-моему это лишнее. Какой то несерьёзный комплекс получается (это же не "Денди"). Ну и как насчет более конструктивных предложений?
Думаю, за основу (с разрешения мявтора, конечно) можно взять проект уважаемого А. Дойникова aka dt_andrew: "Предварительный усилитель с МК управлением". Только валкодер убрать, а прикошачить FM тюнер с синтезатором частоты. Не хватит 32 меги - возьмем 64-ю или 128-ю, ИМХО!

Автор:  Дмитрий М [ Пт май 22, 2009 20:06:11 ]
Заголовок сообщения: 

Igor_67 писал(а):
Зачем дисплей, спрашиваете??? Тюнер планируется, как часть аудио-видео комплекса, который будет стоять в одной стойке с усилком и DVDюшником (под телевизором).

Практически во всех усилках есть тюнер, дисплей и часы. Я что-то сомневаюсь в возможности дома изготовить корпус, который бы достойно смотрелся рядом с промышленным DVD и стоил бы дешевле 200 $ (цена среднего усилка с тюнером). Но, впрочем, если это так, в рамках освоить мегу то почему-бы и нет? А тем временем такие "тетрисы" мы покупаем по 500-600 евро .... Почему-то людям на кухне очень хочется просто приёмник FM и колонку под потолком, без дисплеев и прочей многофункциональной мути.

Автор:  Igor_67 [ Пт май 22, 2009 20:21:05 ]
Заголовок сообщения: 

Ну, сколько людей-столько и мнений. Спорить не буду, каждому своё. Кого-то устраивает колонка под потолком, а кого-то качественный стереозвук... Кстати, похожий проект задумывался давно товарищем Андреем Дойниковым aka dt_andrew. Называется он "Предварительный усилитель с МК управлением" в версии МАКСИ. Но она еще не закончена, к сожалению. А по поводу красивости корпуса - это вы зря. У нас на барахолке можно купить любой нерабочий усилок или DVD-плеер с приличным корпусом. Я же не писал в топиках выше, что мне надо всё - вплоть до печатных плат. Это я всё сам сваяю. Мне бы схему и какой-никакой исходничек, дабы разобраться в принципе, а если прошивку, то это ваще гуд!

Автор:  SLvik [ Пт май 22, 2009 21:28:53 ]
Заголовок сообщения: 

В большинстве тюнеров используется синтезатор LC72131 с кварцем 7,2МГц (Раньше попадались с кварцем 4,5МГц)
Даташит найти не проблема. :wink:

Автор:  Telek [ Пт май 22, 2009 22:06:48 ]
Заголовок сообщения: 

Дмитрий М писал(а):
Поиск там идёт по сигналу опознавания (выход на модуле с детектора)


Не совсем понял(точнее вообще не понял). Вот примерный(наиболее близкий) датащит для моего тюнера. http://hituner.info/modules/mydownloads ... _18_01.pdf

там на 17 странице написано про AFC(насколько я понял это АПЧ). И на сколько я понял, единственный способ автопоиска это проверка флага работы AFC при последовательном переборе частот, и если AFC включается, то уже по смещению AFC искать нужное значение. По крайней мере других полезных выводов я не нашел в тюнере.

Автор:  __Alexander [ Пт май 22, 2009 23:27:33 ]
Заголовок сообщения: 

ФМ тюнер TEA5767, чип с обвязкой на платке 1х1 см имеется практически в каждом старом дешевом МП3 плейере. управляется по I2C, в даташите команды есть.

Автор:  Дмитрий М [ Сб май 23, 2009 20:37:23 ]
Заголовок сообщения: 

На первой странице пдф нет ног с аналоговым выходом вообще кроме данных.

Автор:  __Alexander [ Сб май 23, 2009 21:43:21 ]
Заголовок сообщения: 

Дмитрий М писал(а):
На первой странице пдф нет ног с аналоговым выходом вообще кроме данных.


Эт вы о чем?

Автор:  Igor_67 [ Пн май 25, 2009 16:02:09 ]
Заголовок сообщения: 

В общем, ближе к теме:

Имеется PCI TV-FM тюнер PIXEL VIEW BT878P+. Вроде как не нужный уже. Там стоит ВЧ блок LG TPI8PSB02P. Думаю его использовать, к тому же там и I2C шина присутствует. Вот я тут кое что нарыл при помощи Гугля.
http://xtrason.mylivepage.ru/file/2350/4764_%D0%A0%D0%B0%D0%B7%D0%BF%D0%B8%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D1%82%D1%8E%D0%BD%D0%B5%D1%80%D0%B0.xls
и ещё вот это:
http://xtrason.mylivepage.ru/file/2350/4765_%D0%B1%D0%B8%D1%82%D1%8B_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F2.xls
Там же есть проект в Протеусе и прошивка пробная, но вот опять для PIC-ов. Но раз есть биты управления, то можно, наверное и прогу накатать? Кто знает с чего начать, подскажите.

Автор:  Telek [ Пн май 25, 2009 18:32:55 ]
Заголовок сообщения: 

Вот тебе мои исходники и модель в протеусе:
http://odmax.ru/upload/fmradio.zip

что-бы было понятней по моему обмену с фм вот примерный датащит на примерно тот модуль с которым я обмениваюсь... разница в основном в ПЧ(в датащите 10.7 у моего модуля 33.3) из этого идет другой расчет передаваемых значений...
http://hituner.info/modules/mydownloads ... _18_01.pdf

Код по мере возможностей комментировал. Библиотеки для работы с экраном брал из обучалки/лаборатории + правил косяки и переделал для работы с буфером экрана(т.е. рисуется все в буфере, потом одним махом буфер сливается на экран).
Библиотеки для I2C тоже брал откуда-то и потом дорабатывал.

Код не причесан, и с экспериментальными вставками(например, вниз по диапазону перебор идет по 0.1МГц за нажатие, а вверх автопоиск)

выглядит все так(экран радио):
Изображение

ЗЫ. Кнопки в модели "-", "+","Set","Радио"
Некоторые менюхи не работают. Будильники настраиваются - но не "звонят".

Автор:  Igor_67 [ Пн май 25, 2009 18:50:53 ]
Заголовок сообщения: 

О, ну наконец-то! Большой респект, друх! Спасибо, хоть с чем-то мона начинать. :)))

Да, кстати, Протеус какой версии применялся? А то у меня не хочет открываться. :(

Автор:  Telek [ Пн май 25, 2009 21:03:33 ]
Заголовок сообщения: 

Igor_67 писал(а):
Да, кстати, Протеус какой версии применялся? А то у меня не хочет открываться. :(

7.5sp3

Автор:  Igor_67 [ Ср май 27, 2009 08:31:49 ]
Заголовок сообщения: 

Я тут вчера в барахле покопался у себя и отыскал старенький FM тюнер, который в комп на шину ISA ещё. Там микруха стоит TEA5757H. По даташиту на нее посмотрел, какая нога за что отвечает, поснимал лишние элементы с платы, дабы ток не кушала, подключил - заработало! Поймал переменником все станции, которые у нас есть в регионе. Но здесь такая фиговина: эта микра предназначена как раз для электронного управления перестройкой частоты. Имеется три сигнала: BUS CLOCK, DATA (IN/OUT), WRITE ENABLE. Вроде всё понятно, только данные там передаются пачками по 24 бита в каждой. Так вот, у меня вопрос: Как мне организовать передачу данных в TEA5757 из МК AVR (Mega 16 или Mega 32)? Подскажите, плиз, а то вчера весь вечер голову ломал, но безуспешно. Если можно, кусочек кода скиньте пжалста, лучше на ВАСИКе или АСМе.
Привожу диаграмму процесса записи/чтения из ДШ:

И ещё несколько нужных вещей из ДШ: таблицы и тайминги.

Автор:  Igor_67 [ Ср май 27, 2009 09:01:21 ]
Заголовок сообщения: 

Да, и ещё один непонятный момент:

Двухбайтное слово, передаваемое в адресах F14-F0 описывает частоту, принимаемого сигнала. Считается она по таблице 6. Как мне организовать перебор частот кнопками "+" и "-" хотя бы через 0,1МГц?
Ясно, что в какой то подпрограмме надо высчитывать код. А как выбирать нужные частоты из таблицы, которые надо последовательно отнимать от искомой, получая необходимый код, который и переписывается в какой-то регистр для его последующей передачи в TEA5757?

Автор:  Telek [ Ср май 27, 2009 12:26:19 ]
Заголовок сообщения: 

Igor_67 писал(а):
Да, и ещё один непонятный момент:
А как выбирать нужные частоты из таблицы, которые надо последовательно отнимать от искомой, получая необходимый код, который и переписывается в какой-то регистр для его последующей передачи в TEA5757?


Выкидываем нафиг первые три бита(Забываем пока проних и считаем что первый бит это четвертый). Четвертый бит равен 100кгц=0.1мгц, т.е. 1=0.1МГц, 2=0.2МГц, 3=0.3МГц и т.д.
Далее читаем в датащите, что число которое нужно записать = Частота станции+Промежуточная частота.
Берем интовую переменную(16 бит). Записываем туда нужное число помноженное на 10. Т.е., если нужно настроить например на 100.5МГц, то число равно:
1005 + 107(107 - это промежуточная 10.7МГц*10... или другию промежуточную, если она другая). Получаем 1112. Далее сдвигаем это число на 3 бита(<<3) влево или умножаем на 8, чтобы добить выкинутые 3 бита.
Иными словами, что-то типа:

Код:
#define IF 107 // ПЧ 10.7 * 10
...

unsigned int fmrf; // глобальная переменная - частота станции умноженная на 10
...

//в программе устанавливаем нужное значение частоты - переменную fmrf
//Увеличение ее на единицу(fmrf++) или уменьшение на единичу(fmrf--) будет изменять частоту на 0.1МГц

...

// Функция передачи значения в ТЕА
void set_rf(void)
{
   unsigned int fmvalue; // - то что нужно передать ТЕА5757
   
   fmvalue = (fmrf+IF)*8; // - вычисляем что нужно передать
   ...
   далее передаем в ТЕА fmvalue
   ...
}

Автор:  vistador [ Ср май 27, 2009 20:57:48 ]
Заголовок сообщения: 

вот бы на асме кто показал , как передавать к примееру 24 битное слово, с предварительным копированием в него данных с регистра , которому инкремент и декремент кнопками устраивают....
я вот начал самостоятельно....но чтото идет тяжело..

Автор:  Igor_67 [ Ср май 27, 2009 22:37:37 ]
Заголовок сообщения: 

Спасибо, Telek! Но код СИшный, а с СИ я не очень-то в ладах. Вот правда, хорошо бы на АСМе или ВАСИКе! :))) Но принцип ясен! THANKS!!!

Цитата:
вот бы на асме кто показал , как передавать к примееру 24 битное слово, с предварительным копированием в него данных с регистра , которому инкремент и декремент кнопками устраивают....

Мне бы тоже хотелось это узнать...
ИМХО, надо использовать регистровые пары и инструкции для работы со словами, типа MOVW. Передавать (копировать) можно в порт каждую регистровую пару отдельно, одну за другой. Никаких старт/стоп битов там нет и 24х битное слово заносится в TEA5757 пока на линии WRITE ENABLE высокий лог. уровень. Всё это дело тактируется сигналом BUS CLOCK, кстати, узнать бы поподробнее, как это всё реализовать программно...

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/