FM-радио на RDA5807. Часть 1
Вставка
- Опубліковано 20 гру 2024
- Поддержать канал на Boosty: boosty.to/elec...
Поддержать канал на Patreon: / electronics_in_focus
Мой telegram: t.me/electroni...
Мой instagram: / electronics_in_focus
Исходник проекта для AVR (IAR): bitbucket.org/...
Исходник проекта для STM32 (IAR): bitbucket.org/...
Плата переходника (KiCAD): yadi.sk/d/FY1n...
Обзор светодиодных матриц на MAX7219: • Светодиодные матрицы н...
Обзор матричных клавиатур 4x4: • Матричные клавиатуры
Стерео FM-тюнер с цифровым управлением на RDA5807M: www.aliexpress...
Клавиатура 4х4 плёночная: www.aliexpress...
Светодиодные матрицы 8х8 на MAX7219: www.aliexpress...
когда будите заниматься RDS наличие хорошей антенны обязательно, иначе идет масса ошибок
и еще качество приема RDS помогает катушка и емкость на входе антенны, согласно даташиту
спасибо за канал, все очень здорово продолжайте в этом направлении
+Andrew Doynikov Спасибо, учту
С хорошей антенной нужен хороший фильтр на входе. Последний можно настроить только имея измеритель АЧХ.
Интересная микросхема. Мне захотелось сделать приёмник на ней, купил пару штук и начал искать, что да как. Наткнулся на широко известный скетч на испанском языке, тут многие его пользуют. Мне понравилось, что там маленький дисплей Nokia 5110. И всего три кнопки управления. Я минималист, поэтому понравилось.
И вот я стал изучать программу, хотелось понимать, как это работает. К сожалению, нормальный даташит на RDA5807 почему-то скрывается производителем, эти файлы с жёлтым маркером только и попадаются в сети. Поэтому некоторые моменты остались мною непоняты, в их числе, кстати, и отсутствие в таблице двух секретных битов, связанных с использованием антенны. Я тоже прописывал туда нули :) И вот здесь я случайно узнаю назначение этих битов! Очень понравилось, что в ваших программах много комментариев, этим мало кто заботится.
Но самое непонятное - это работа RDS. Пытался копаться в библиотеках Adafruit, но я ни разу не программист, языками не владею, а там сплошняком один язык. Нет, не один, а два: C++ и английский. Последний я "читаю и перевожу со словарём", поэтому трудно. Пока использую эту часть программы "как есть", но не люблю этого.
В общем, сейчас я сделал программу, которая может принимать как FM, так и УКВ диапазоны, с изменением шага сетки частот. Сначала сделал, что все 16 вариантов можно было переключать, но потом отказался от такого, потому что нет там никаких станций, слушать нечего. Кстати, странно, что минимальный шаг сетки 25 кГц, надо 10, если они хотят поддерживать УКВ, а то только ТВ каналы ловятся.
Спасибо, проект понравился. Только вместо матричной клавиатуры я бы подключил ИК приёмник , а кнопки нажимал бы на пульте ДУ.
Сам собрал уже два модуля на rda5807 (использую их для модернизации старых приёмников).Работают хорошо - с лета прошлого года проблем не замечено.
+Konst Nozdrya Спасибо за коммент
Стараюсь писать код модульно. В дальнейшем можно будет переделать управление и индикацию в этом проекте по своему вкусу
Молодчага, что реализуеш такие проэкты, жду не дождусь реализацию радиомодуля или wifi модуля которые обменивались между собой информацией на расстоянии.
Спасибо за интересный проект, но жаль , что заброшен. Интересно было бы перенести этот проект на ESP8266 или ESP32 с управлением через приложение для АНДРОИДА, и с возможностью записи в память фиксированных настроек частоты станции. Автосканирование нужно в автомобиле, а в квартире в этом нужды нет, разве, что при начальной настройке.
А когда будет продолжение
Когда уже вторая часть?
-Не уверен, что там была музыка. Я от смеха чай на себя пролил
воот
именно поэтому мой проект тюнера (на основе вч-блока от убитой магнитоллы) после завершения, оказался неиспользуемым. пока я его собирал, из эфира ушли пара станций, которые можно было слушать.
Спасибо огромное! Ваши наработки забрал к себе в проект, особенно понравилась работа с регистрации в виде структур) очень удобно!
да не за что)
Скинь пожалуйста схему платы переходника в pdf
Интересно! Палец вверх! Эта микросхема крута!
Идеальный вариант - сделать поддержку модуля на rda5807 в программе FLProg (в виде пользовательского блока).
А остальное - управление и индикация - там уже сделано.
Здравствуйте, подскажите когда вы планируете выпустить вторую часть видео посвещённого модулю RDA5807?!
Не планирую уже
@@rnadyrshin жаль, отличный модуль, можно использовать в системах умного дома мажордома или опенхабе, например в будильниках при отсутствии интернета
Слушай дружище, не знаю как тебя зовут... А можно приделать к этому приёмнику 2 энкодера. Один управление громкостью, а второй для поиска частоты? Пересмотрел 4 раза твой видос, нихрена не понял. Понял насколько ты глубоко изучил эту микруху и разбираешься в программировании. Мне вот еще интересно - говорят что все приборы на шине айтуси сидят на двух проводах. А вот почему тогда в моей магнитоле между приборами сопротивление порядка 1 килоом?! Если они все сидят на двух проводах?
Добрый день! Подскажите пожалуйста, на 29:23 ролика там где описывается функция Button и перечисления через if, можно было бы переписать данные перечисления через switch? Ролик понравился, супер)
В принципе можно, нужно будет сравнивать ButtonClick с битовой маской нажатой кнопки
Очень понравился Ваш проект, понравился отображением частоты на матричном ирдикаторе и без всяких дополнительных отвлекающих функций: часов, календаря, термометра.
Но никак не могу найти СХЕМУ. Ни в описании, ни в группе вк...только прошивка.
Как собирать то😐
Собрал такой приемник c управлением на Arduino. Проблема с шумом- принимает только сильные радиостанции. Может быть дело в цифровом шуме? Помогите дельным советом.
по ссылкам ничего нет, обновите плж.
где брали инфу о регистрах управления модулем ? з даташита что-то не очень то понятно.
+SergeyD Ну как..в родном даташите и брал инфу. В целом в нём нормально описаны регистры (если закрыть глаза на те неописанные биты, о которых я говорил в видео).
Если есть какие-то конкретные вопросы, пиши, постараюсь помочь;)
Пытаюсь в среде ардуино, ( мне так проще) запрограммировать и управлять радио через библиотеку Wire.h. цель управлять громкостью и басом но вот меняю биты в строке Wire.write(0xB8); ( 1011 1000 ) никаких изменений . как они включаются не соображу.
вот код
#include // I2C-Library
double f_ini=106.2; // Стартовая частота настройки приемника. (Изменяем на нужную).
void setup() // Инициализация.
{
Wire.begin(); // Инициализация двухпроводной шины I2C.
setFrequency(f_ini); // Вызываем фукнкцию загрузки частоты настройки в модуль EM5807M.
}
void loop() // Основной цикл программы
{
// Здесь можем написать программу
}
void setFrequency(double fmhz) // Функция загрузки частоты настройки в модуль EM5807M.
{
int frequencyB = 4 * (fmhz * 1000000 + 225000) / 32768;
char frequencyH = frequencyB >> 8; // Старший байт.
char frequencyL = frequencyB & 0XFF; // Накладываем маску 0xFF на младший байт.
Wire.beginTransmission(0x60); // Адрес чипа RDA5807M
Wire.write(frequencyH); // Старший байт.
Wire.write(frequencyL); // Младший байт.
Wire.write(0xB8); // 1011 1000
Wire.write(0x10); // 0001 0000
Wire.write(0x00); //
Wire.endTransmission(); // формируем I2C-Stop.
}
+SergeyD Насколько я помню, после подачи питания RDA5807 находится в выключенном состоянии (бит Enable = 0), попробуй его выставить в 1 перед тем как устанавливать частоту
+Электроника в объективе по адресу 0x11 ?
+SergeyD
Да, я не могу тебе подсказать как это сделать через 0x60 адрес, но могу - как через 0x11
Я посмотрел даташит, там дело может быть не только в бите Enable, ещё там есть биты DHIZ и DMONO, из-за которых твой rda5807 не работает. Благо все эти биты в одном регистре 0x02. Попробуй включить rda5807 следующим кодом:
Wire.beginTransmission(0x11); // Адрес RDA5807M для доступа к произвольному регистру
Wire.write(0x02); // Регистр
Wire.write(0xC0); // Старший байт
Wire.write(0x05); // Младший байт
Wire.endTransmission(); // Stop
После этого должно появиться шипение на аудиовыходе
Уважаемый автор, скажите пожалуйста, какими должны быть FUSE для AVR?
Нужно выставить тактирование от 8 МГц (от внутреннего RC-генератора или от внешнего кварца). Остальные fuse биты не принципиальны
Скажи а если закинуть дэмо с определённой частотой или установить нужную частоту можно ли откинуть ардуино,будет работать если питание не сбрасывать?
Только до сброса питания микросхемы приёмника. После подачи питания микросхему приёмника нужно будет заново инициализировать
@@rnadyrshin спасибо братуха за ответ,очень перспективно для моей задумки,типо блютуз гарнитуры замутить мини,скинул с ардуины частоту и на работу,только подзаряжай
RDA5807М этот индексом "М" есть просто RDA5807 он может и без микроконтроллера запускатся.
Хорошие антенны, полноразмерный диполь на три метра, или "волновой канал". Три - пять элементов.
Как все по полочкам разложено. Жаль я не умею программировать.
+infocentrist У тебя есть хотябы минимальный опыт с любым языком программирования?
+Электроника в объективе Бейсик. Делал 600 сек на компе)
+infocentrist
Вот и замечательно. Можно начинать изучать язык си)
Есть отличные книги по си (Керниган и Ричи, например). Просто читаешь по 1 главе каждые 2-3 дня, разбираешь примеры, ковыряешь какие-нибудь заведомо рабочие программы, экспериментируешь, постепенно применяя полученные знания. Недели через 2-4 будешь самостоятельно писать простые программы. А с первыми результатами появится мотивация на дальнейшее изучение.
Тут главное не лениться. Нужно определённое упорство.
Would you please help me with the coding?
Жалко что два и более лайков поставить нельзя...
А тв может?
молодец! Хорошо все сделал и расписал! Держи лайк.
FM антенну круче не встречал. Штатная автомобильная с фольцвагена 2000 года. Развязка по питанию внутри штатного магнитофона, просто через LC цепь. Уверенный приём до 70-90км.
Что-то я не пойму... Если рда5807 питается от3.3 вольта, значит и ардуино должно питаться от 3.3 вольт?... А разве ардуино про микро можно от 3.3 вольта питать?
Конечно можно, в даташите на микроконтроллер есть график зависимости максимальной рабочей частоты тактирования МК от питающего напряжения
Такс... ещё раз чтобы уточнить!... Я должен ардуино микро и рда5807 запитать от 3,3вольт. Так? Ты говоришь "зависимость максимальной рабочей частоты тактирования" Что это значит? это значит я кварц 16 МГц должен выпаять и прихренарить туда на 8 мегагерц, чтоб ардуино про микро работала без сбоев? Или как? Или перепрограммировать внутри чо надо?
Можно перепаять, а можно FUSE-биты переустановить так, чтобы микроконтроллер тактировался от внутреннего RC-генератора на 8МГц. Но на практике скорее всего заработает и на 16 МГц при 3.3В
... блин... буду пробовать... но во фьюзы не полезу!!!!!! я и так то боюсь программить. Раньше на синклере в бейсике программки писал и те позабыл чо и как
Бл... понапридумают 3.3вольт 5 вольт, а ты ипись как хочешь!!!!!! оказывается ардуино на 3.3 вольта не программится от компа. Нужен переходник какой-то.... заказал на алишке 3.3 вольтовую ардуино нанопро с приблудой программатором... еще 250 рублей в минус... бред...
собрал массу приемников на таком модуле
проблем с передачей по шине И2Ц с контроллером запитанным от 5В не было
и микры живые - работают уже больше года без проблем
Здорово, будем знать. Спасибо за коммент
+Электроника в объективе Мне вот больше интересно как ведёт себя адруина с питанием 3В. Нормально?
+vladi g Вполне нормально на частотах до ~10-12 МГц.
Burnout Detector должен быть настроен на 2.7В (на моей arduino так и было).
Ну и, естесственно, 3.3В надо подавать на VCC микроконтроллера (не через 5В стабилизатор, который стоит на платах arduino).
Электроника в объективе
Ясно. Получается, что ты ардуино плату без родного загрузчика используешь? Пишешь на чистом Си. И вот ещё. Смотрю у тебя код очень красивый. Нет в планах уроки программирования делать?
+vladi g Да, все проекты у меня на си.
Про уроки я думал и даже снимал, но пока мне не нравится формат, который получается. Возможно, позже.
Ну и есть идеи по проектам, связанным с обучением. Возможно скоро выкачу на канале
А разрезать вдоль бредбоард не судьба?! Самое простое решение. Давно так сделал.
а про интернет радио не думали?
Неа. Для этого скорее всего придётся подключать к esp внешний I2S-ЦАП, слишком сложно как по мне. Проще для интернет радио использовать микрокомпьютеры
Малогабаритная и максимально простая антенна это обычный диполь.Бывают весьма компактных размеров. Загугли, расчеты есть.
Спасибо!
Там же с антенным усилителем вроде антенна. Нафига она тут? Лучше GP(граунд плейн - плоская земля) сделать. Для ФМ вертикальный штырь 70 см и 3 противовеса такой же длины отходящие вниз под углом 140-145 градусов по отношению к штырю. Противовесы вместе спаять и к оплетке кабеля. Центральный к штырю. На плате оплетку на массу , центральный на вход. Такая антенна примерно 50 Ом , стандартный вход у таких приемников обычно тоже 50 Ом , так что можно без всяких согласующих устройств соединить 50-омным кабелем. У антенны круговая направленость.
Ага, нашёл ... оказывается тебя зовут Руслан. А где вторая часть видео?
Второй части нет
Как блин нет?!!!!!!!!!!! Давай вторую!!!!!!! Ты обещал!!!!!!!! Это тебе блин все просто, а я пока допру как чо делается, аналоговый эфир вымрет и эта канитель станет неактуальной.
Если дойдут руки до этого проекта, видео обязательно выйдет
@@rnadyrshin
Эммм...а схема? Может быть я отстал от современных тенденций и сейчас модно повторять конструкцию ставя ролик с ютуба на паузу?
Простая картинка, какой вывод с каким соединяется
диполь собери чего мудрить.
Забыли ассемблер где проблем с ошибками битов нет !
В приёмнике очень важна избирательность! А то будешь одно радио на всех частотах слушать. Капец.
Слушай, ну ты гений!!! Я хочу на этой микрухе сделать приемничек, но походу не светит... 16битные поля... Писец!..Хоть бы ты подсказал чо...
я конечно сторонник подобных вещей, но сверхрегенератор на лампе звучит несравнимо лучше.
только вот слушать в эфире нечго
Сколько раз можно говорить ардуинщикам всех мастей - проходные конденсаторы, это совсем не то, что вы думаете.
Не знаю. Объяснять не пробовали что имеете в виду?
Проходные конденсаторы, это конденсаторы с конструктивом приспособленным для монтажа в отверстиях в стенках ВЧ блоков и экранов. Либо впаиваются в стенки, либо прикручиваются в них с применением гаек. Проходные - они проходят сквозь стенки. Ставятся в цепи питания.
А конденсаторы между отдельными каскадами - разделительные или межкаскадные.
замени клаву на энкодер
mortalaso!!
Что сгорает при переполюсовке, случайно перепутал, модуль умер.
No code
да за такие деньги уже можно готовое радио купить
+Обо всём - Суть то не в готовом устройстве, а в изучении программирования и электроники.
vladi g ну вобщем да, но дорого блин
+Обо всём - купить каждый дурак может
+Обо всём - купить каждый дурак может
на биквадрате антену
САМАРА NRJ 102.5
Блин, задолбало!!!!!! мягко говоря,!!!!!!! Тыркнул ссылку "исходник проекта для АВР", скачал архив, а он не открывается программой "ардуино иде" Руслан чо за хрень?!!! Ты можешь нормальный скетч в формате ино или пде выложить чтоб ардуино иде смогла его открыть?!!!!! Сил нет ковырять эти мелочи!!! блуждение в трёх соснах
Я не делаю проекты под Arduino IDE. Для сборки демок с моего канала нужен IAR, всё скомпилируется сходу. Либо любая другая среда с си компилятором под соответствующую платформу (при условии что вы эту среду хорошо знаете и можете её настроить)
Руслан, Руслан... Что ж ты творишь!... ... Без ножа режешь! Выходит, я радио не послушаю... Ты хоть скажи... если я скачаю твой ИАР... внедрю в него какимто образом твои папки.... подсоединю ардуину к компу... отыщу и нажму в ИАРе кнопочку "запрограммировать". Ардуно запрограммируется твоим скетчем или нет? или она сгорит нафик? ТОлько ради Бога, не употребляй своих умных словей типа соответствующая платформа... среда...
Сколько арматуры и проводов чтобы послушать обычное FM радио? бред...