Здравствуйте, уважаемые! Возникла острая необходимость замутить FM тюнер для дома с управлением на AVR микроконтроллере. Пошарил по интернету - похожие схемы только на PIC-ах. А я вот с ними не дружу. Кто бы посоветовал схемку на AVR (любом)? Или может кто займется? Здесь есть статьи по FM тюнерам, только подходящей нет...
Значит, как говорил наш уважаемый Ги де Мопассан "Ближе к телу...",
- перестройка частоты (88-108 МГц)
- цифровой синтезатор частоты
- управление перестройкой частоты с помощью AVR МК
- память каналов (частот) - до 12 ячеек
- возможность занесения в память названия радиостанции
- LCD 4х16 (можно 2х16, но нежелательно)
- электронная регулировка уровня сигнала на выходе
- отображение на LCD частоты, номера канала, времени, названия радиостанции
- пульт ДУ (RC-5 или RC-6), но необязательно
Вот такой хочу тюнер! Купить могу, но не хочу - хочу собрать сам!
У кого какие мысли на этот счет?
Зарегистрирован: Пт май 23, 2008 23:59:37 Сообщений: 115 Откуда: Москва
Рейтинг сообщения:0
У меня тоже недавно появилось желание собрать нечто подобно...
И поэтому в плане изучения микропроцессоров неспешно делаю примерно следующее:
FM тюнер + часы + будильник + календарь.
C FM я долго не парился и взял ТВ/ФМ модуль из платы для компьютерного ТВтюнера(железная коробочка на плате). Опять же можно взять от магнитол. Удобней будет если модуль не требует обвеса и с интерфейсом I2C. Я брал Филипс FM1256PH3 от ТВтюнера от Авермедии.
Если бы еще были датащиты на него - был бы вообще рай. Но на конкретно мой датащитов не нашел и поэтому парился с поиском и изучением исходников драйверов под Линкса, т.к. конкретно этот модуль оказался не совсем стандартным по отношению к распространенным моделям. Но в итоге работать я с ним научился.
Сейчас пока все на уровне макеток и эмуляции.
Сейчас это примерно выглядит так:
-Микропроцессор MEGA32
-ФМ - FM1256
-Экран 128x64 от MELT MT–12864A
-Часы на ds1307
-Датчик температуры ds18s20
Программа уже умеет:
- Отображать время/дату, температуру, состояния будильников
- Есть настройки будильников
- Есть календарь с отображением на месяц и с возможностью листать по месяцам
- Написаны функции для быстрой отрисовки графики и различных шрифтов
- Сделаны шрифты и битмапы для отображения нужной информации
- Примитивное управление ФМ модулем
Осталось сделать:
- Нормальное управление ФМ
- Разобраться и сделать автопоиск радиостанций
- Сохранение радиостанций и доп. режимов для конкретной радиостанции(типа моно/стерео, режим чувствительности тюнера и др...)
- прикинуть и сделать некий простенький усилитель для выходного сигнала с ТВ тюнера
Так как в Меге пока еще остается дофига места(пока потрачено 30% флешки), планирую на более дальнюю перспективу еще сделать графики температуры ну и какойнить тетрис - какой же будильник без тетриса?
Про ИК пульт думал, но пока отложил на более поздний срок, т.к. с приемниками ИК еще не разбирался... делал(даже лучше сказать повторял опятьже в целях изучения МК) только ИК передатчик(правда программу переписывал сам).
Собственно вот такие мысли на эту тему. Я в электронике не силен - не очень давно открыл для себя такое хобби... поэтому делается все не быстро.
Поиск там идёт по сигналу опознавания (выход на модуле с детектора), даташитов на модуль не найдёте, проще на ИС синтезатора ориентироваться. Буржуи выпускают прекрасный приёмник в корпусе под стандартный подрозетник, насколько я помню, там кнопки перебора станций в "+" и "-" (они же и настроечные), кнопка памяти (запоминания), она же при длительном нажатии и вход в настройку, выход из режима автоматически, если не трогать кнопки более 2 минут. И две кнопки громкости, внутренний УНЧ на 5 ватт. Очень удобная штука, дисплей.. а зачем?
_________________ Ничто так не укрепляет взаимное доверие, как 100% предоплата! Дмитрий, ex-RK3AOR.
Зачем дисплей, спрашиваете??? Тюнер планируется, как часть аудио-видео комплекса, который будет стоять в одной стойке с усилком и DVDюшником (под телевизором). И поэтому нужен дисплей, чтобы с дивана было видно, какая частота и какая станция. А насчет "тетриса" - по-моему это лишнее. Какой то несерьёзный комплекс получается (это же не "Денди"). Ну и как насчет более конструктивных предложений?
Думаю, за основу (с разрешения мявтора, конечно) можно взять проект уважаемого А. Дойникова aka dt_andrew: "Предварительный усилитель с МК управлением". Только валкодер убрать, а прикошачить FM тюнер с синтезатором частоты. Не хватит 32 меги - возьмем 64-ю или 128-ю, ИМХО!
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Зачем дисплей, спрашиваете??? Тюнер планируется, как часть аудио-видео комплекса, который будет стоять в одной стойке с усилком и DVDюшником (под телевизором).
Практически во всех усилках есть тюнер, дисплей и часы. Я что-то сомневаюсь в возможности дома изготовить корпус, который бы достойно смотрелся рядом с промышленным DVD и стоил бы дешевле 200 $ (цена среднего усилка с тюнером). Но, впрочем, если это так, в рамках освоить мегу то почему-бы и нет? А тем временем такие "тетрисы" мы покупаем по 500-600 евро .... Почему-то людям на кухне очень хочется просто приёмник FM и колонку под потолком, без дисплеев и прочей многофункциональной мути.
_________________ Ничто так не укрепляет взаимное доверие, как 100% предоплата! Дмитрий, ex-RK3AOR.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Ну, сколько людей-столько и мнений. Спорить не буду, каждому своё. Кого-то устраивает колонка под потолком, а кого-то качественный стереозвук... Кстати, похожий проект задумывался давно товарищем Андреем Дойниковым aka dt_andrew. Называется он "Предварительный усилитель с МК управлением" в версии МАКСИ. Но она еще не закончена, к сожалению. А по поводу красивости корпуса - это вы зря. У нас на барахолке можно купить любой нерабочий усилок или DVD-плеер с приличным корпусом. Я же не писал в топиках выше, что мне надо всё - вплоть до печатных плат. Это я всё сам сваяю. Мне бы схему и какой-никакой исходничек, дабы разобраться в принципе, а если прошивку, то это ваще гуд!
там на 17 странице написано про AFC(насколько я понял это АПЧ). И на сколько я понял, единственный способ автопоиска это проверка флага работы AFC при последовательном переборе частот, и если AFC включается, то уже по смещению AFC искать нужное значение. По крайней мере других полезных выводов я не нашел в тюнере.
ФМ тюнер TEA5767, чип с обвязкой на платке 1х1 см имеется практически в каждом старом дешевом МП3 плейере. управляется по I2C, в даташите команды есть.
что-бы было понятней по моему обмену с фм вот примерный датащит на примерно тот модуль с которым я обмениваюсь... разница в основном в ПЧ(в датащите 10.7 у моего модуля 33.3) из этого идет другой расчет передаваемых значений...
http://hituner.info/modules/mydownloads ... _18_01.pdf
Код по мере возможностей комментировал. Библиотеки для работы с экраном брал из обучалки/лаборатории + правил косяки и переделал для работы с буфером экрана(т.е. рисуется все в буфере, потом одним махом буфер сливается на экран).
Библиотеки для I2C тоже брал откуда-то и потом дорабатывал.
Код не причесан, и с экспериментальными вставками(например, вниз по диапазону перебор идет по 0.1МГц за нажатие, а вверх автопоиск)
выглядит все так(экран радио):
ЗЫ. Кнопки в модели "-", "+","Set","Радио"
Некоторые менюхи не работают. Будильники настраиваются - но не "звонят".
Последний раз редактировалось Telek Пн май 25, 2009 21:07:44, всего редактировалось 2 раз(а).
Я тут вчера в барахле покопался у себя и отыскал старенький FM тюнер, который в комп на шину ISA ещё. Там микруха стоит TEA5757H. По даташиту на нее посмотрел, какая нога за что отвечает, поснимал лишние элементы с платы, дабы ток не кушала, подключил - заработало! Поймал переменником все станции, которые у нас есть в регионе. Но здесь такая фиговина: эта микра предназначена как раз для электронного управления перестройкой частоты. Имеется три сигнала: BUS CLOCK, DATA (IN/OUT), WRITE ENABLE. Вроде всё понятно, только данные там передаются пачками по 24 бита в каждой. Так вот, у меня вопрос: Как мне организовать передачу данных в TEA5757 из МК AVR (Mega 16 или Mega 32)? Подскажите, плиз, а то вчера весь вечер голову ломал, но безуспешно. Если можно, кусочек кода скиньте пжалста, лучше на ВАСИКе или АСМе.
Привожу диаграмму процесса записи/чтения из ДШ:
И ещё несколько нужных вещей из ДШ: таблицы и тайминги.
Двухбайтное слово, передаваемое в адресах F14-F0 описывает частоту, принимаемого сигнала. Считается она по таблице 6. Как мне организовать перебор частот кнопками "+" и "-" хотя бы через 0,1МГц?
Ясно, что в какой то подпрограмме надо высчитывать код. А как выбирать нужные частоты из таблицы, которые надо последовательно отнимать от искомой, получая необходимый код, который и переписывается в какой-то регистр для его последующей передачи в TEA5757?
Зарегистрирован: Пт май 23, 2008 23:59:37 Сообщений: 115 Откуда: Москва
Рейтинг сообщения:0
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 ... }
вот бы на асме кто показал , как передавать к примееру 24 битное слово, с предварительным копированием в него данных с регистра , которому инкремент и декремент кнопками устраивают....
я вот начал самостоятельно....но чтото идет тяжело..
Спасибо, Telek! Но код СИшный, а с СИ я не очень-то в ладах. Вот правда, хорошо бы на АСМе или ВАСИКе! Но принцип ясен! THANKS!!!
Цитата:
вот бы на асме кто показал , как передавать к примееру 24 битное слово, с предварительным копированием в него данных с регистра , которому инкремент и декремент кнопками устраивают....
Мне бы тоже хотелось это узнать...
ИМХО, надо использовать регистровые пары и инструкции для работы со словами, типа MOVW. Передавать (копировать) можно в порт каждую регистровую пару отдельно, одну за другой. Никаких старт/стоп битов там нет и 24х битное слово заносится в TEA5757 пока на линии WRITE ENABLE высокий лог. уровень. Всё это дело тактируется сигналом BUS CLOCK, кстати, узнать бы поподробнее, как это всё реализовать программно...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения