FM приёмник RDA5807

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: FM приёмник RDA5807FP+ATMega16

Сообщение koka5555 »

Поделитесь пожалуйста прошивкой для атмеги и какие фьюзы для неё.
Реклама
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: FM приёмник RDA5807FP+ATMega16

Сообщение Morroc »

Да лучше бы исходниками если не жалко :roll: Хочу на тиньке сделать или на чем нибудь таком мелком, купил ребенку конструктор электронный, там блок с FM радио простейший с кнопками туда/сюда и разумеется станцию он не помнит если питание снять, искать станцию вслепую в москве можно упариться, есть мысль туда запихнуть rda- модуль с тинькой, можно без индикации даже.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Реклама
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: FM приёмник RDA5807FP+ATMega16

Сообщение koka5555 »

Подскажите ,пожалуйста, чем скомпилировать файл FM_RDA5807FP_ATMega16.mpas ? Взятый с архива выложенного ранее Уважаемым shtela.
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение vlad145 »

Доброго всем времени суток. Подскажите, пробовал ктонибудь прицепить RDA5807M? Если я правильно понял у них коды разные.
Владимир
Реклама
Эиком - электронные компоненты и радиодетали
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: FM приёмник RDA5807FP+ATMega16

Сообщение eduardo »

А какие значения(PLL13--PLL0) нужно отправить для настройки приёмника на нужную частоту?(при кварце 32768 Гц,HLSI=0)

Например у ТЕА 5767 число 9285 соответствует 76,4 МГц

а число 13141 соответствует 108,0 МГц.
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение WiseLord »

Здесь проще - число 0 соответствует минимальной частоте (например, 87.5МГц), числа 1, 2, 3 и т.д. - это шаги, например, по 50кГц.
И минимум-максимум (диапазон приёма), и величина этого шага задаются в других регистрах.
Реклама
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: FM приёмник RDA5807FP+ATMega16

Сообщение eduardo »

А адресность байтов надо соблюдать или надо все 14 байтов отправлять по порядку?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение WiseLord »

RDA5807M datasheet писал(а):The I²C interface has a fixed start register address (0x02h for write transfer and 0x0Ah for read transfer), and an internal incremental address counter. If register address meets the end of register file, 0x3Ah, register address will wrap back to 0x00h.)
И так далее по даташиту, п 2.5.

То есть, адрес начала передачи не задаётся. Любая новая запись всегда начинается с адреса 02H (нумерация по таблице в даташите), любое новое чтение - с адреса 0AH.
Можно передать не все, а только несколько байт, остальные регистры сохранят своё значение.
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: FM приёмник RDA5807FP+ATMega16

Сообщение eduardo »

Спасибо,буду пробовать,осталось модулей дождаться...... :beer:
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

Re: FM приёмник RDA5807FP+ATMega16

Сообщение eduardo »

Дождался модулей,но до железа пока не дошёл.Возник вопрос по отправке данных в модуль (уменя RDA 5807 M) для настройки частоты приёма. За это отвечает регистр 03H/L. С байтом 03Н вроде всё понятно:отправить эти 8 битов и всё,а вот как быть с байтом 03L??? Ведь за настройку частоты здесь отвечают только два старших бита:7й и 6й, и как я понял,эти 2 бита в процессе настройки должны изменяться,а остальные с 5го по 0й должны быть постоянными.Подскажите пожалуйста,как это сделать на Си? :dont_know:
Спасибо...
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение WiseLord »

Вот как у меня сделано - описание регистров и код.

Вся будущая посылка лежит в массиве wrBuf[8]. Функция rda5807Init() вызывается один раз на старте, забивая нужные регистры нужными данными. Функция rda5807SetFreq() собственно устанавливает частоту, меняя только нужные биты в этом массиве, не трогая остальные. Потом в её конце уже идёт посылка уже всех 8 байтов.

Код: Выделить всё

wrBuf[2] = chan >> 2;                            // в chan 10 бит, в wrBuf[2] посылаем старшие 8 бит
wrBuf[3] &= 0x3F;                                // старшие 2 бита wrBuf[3] сначала обнуляем
wrBuf[3] |= RDA5807_TUNE | ((chan & 0x03) << 6); // а потом записываем младшие 3 бита chan в них
KyJek
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Вт апр 07, 2015 19:19:29
Откуда: г. Москва

Re: FM приёмник RDA5807FP+ATMega16

Сообщение KyJek »

Добрый день, тоже заинтересовался приемником. Можете посоветовать на какой микросхеме лучше делать? Если не на RDA5807FP.
pcb432
Мудрый кот
Сообщения: 1808
Зарегистрирован: Пт мар 26, 2010 17:16:52
Откуда: Kazan

Re: FM приёмник RDA5807FP+ATMega16

Сообщение pcb432 »

Если не на RDA5807FP
Тогда на ТЕА 5767.
AonMaster
Опытный кот
Сообщения: 817
Зарегистрирован: Пн дек 29, 2014 11:48:22

Re: FM приёмник RDA5807FP+ATMega16

Сообщение AonMaster »

Здравствуйте!

Помогите, пожалуйста, понять, в МК я слаб)
Собираю радио на основе китайской платы, там Atmega16 + 1602 + модуль на TEA5767. Т.к. мне нужно от 50 МГц, а TEA не позволяет, поменял модуль на RDA5807M.

Подключил для отладки модуль на RDA5807M к Raspberry PI по i2c, запустил i2cdetect -y 1 - и он показал, что RDA у меня сидит на 0x60, т.е. как и TEA5767.
Посылая команды туда, настраиваюсь на станции, т.к. всё ОК.
А почему же по адресам, специфичным для 5807M, не видно её?
Читаю в инете вот что:
Интерфейс с адресами 0x20/0x21 - это интерфейс rda5800, а НЕ rda5807! Для того, чтобы не мучиться с последовательными чтением/записью регистров, надо использовать другой интерфейс, с адресами 0x22/0x23 - он специально для rda5807 был добавлен! Всего в RDA5807 три интерфейса:
a) Address 0x60<<1 (TEA5767 compatible mode)
b) Address 0x10<<1 (sequential access / RDA5800 mode)
c) Address 0x11<<1 (random access / RDA5807 mode)
В начале вроде про 0x22/0x23 говорится, а в пункте c) - про 0x11. Всё запуталось у меня(
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение WiseLord »

В пункте c) говорится как раз про 0x22 (0x11 << 1).

Некоторое разночтение возникает из-за того, что это можно представить в виде:
Запись: шлём в шину 0x11 и потом шлём бит 0 (функия вроде write(addr);
Чтение: шлём в шину 0x11 и потом шлём бит 1 (функция вроде read(addr);
а можно в виде:
Запись: пишем в шину 0x22 (функция вроде send(addr):
Чтение: пишем в шину 0x23 (функция вроде send(addr + 1).
Второй вариант адресации чаще применяется в случае "чистого C", первый почему-то приняли ардуинщики.
AonMaster
Опытный кот
Сообщения: 817
Зарегистрирован: Пн дек 29, 2014 11:48:22

Re: FM приёмник RDA5807FP+ATMega16

Сообщение AonMaster »

Спасибо!

не подскажете ли, почему на моей шине i2c она по адресу 0x60 определяется, а не по этому же 0x22?
Ведь если я ей, сидящей на 0x60, пошлю байт на 0x22, она же не ответит, видимо...
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение WiseLord »

Я у себя использовал адрес 0х20, это родной для RDA5807M, именно он описан в даташите. Также она работает с 0xC0 - в режиме TEA5767. Откуда Вы взяли 0x22 - без понятия.
AonMaster
Опытный кот
Сообщения: 817
Зарегистрирован: Пн дек 29, 2014 11:48:22

Re: FM приёмник RDA5807FP+ATMega16

Сообщение AonMaster »

WiseLord писал(а):Я у себя использовал адрес 0х20, это родной для RDA5807M, именно он описан в даташите. Также она работает с 0xC0 - в режиме TEA5767. Откуда Вы взяли 0x22 - без понятия.
Так из цитаты в первом вопросе, из варианта c)
там же "address 0x11" (а Вы объяснили, что это аналогично 0x22)
вот я и понимаю, что 0x22 это адрес (address) на шине i2c, в который нужно посылать данные. В отличие от 0x60, по которому сейчас у меня RDA5807M работает в режиме совместимости.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: FM приёмник RDA5807FP+ATMega16

Сообщение WiseLord »

Из цитаты - это понятно. Вопрос в происхождении цитаты.

Коль скоро у Вас работает по 0x60 адресу, значит, Вы используете в "ардуиновское" представление адресации, в котором бит чтения/записи не входит в сам адрес. Это тот же 0xC0 адрес в нормальном представлении.

Вы бы лучше выдержки из кода привели, как у Вас работает, а как нет. Там ведь мало поменять адрес, там и данные совершенно другие посылать надо.
AonMaster
Опытный кот
Сообщения: 817
Зарегистрирован: Пн дек 29, 2014 11:48:22

Re: FM приёмник RDA5807FP+ATMega16

Сообщение AonMaster »

WiseLord писал(а):Из цитаты - это понятно. Вопрос в происхождении цитаты.

Коль скоро у Вас работает по 0x60 адресу, значит, Вы используете в "ардуиновское" представление адресации, в котором бит чтения/записи не входит в сам адрес. Это тот же 0xC0 адрес в нормальном представлении.

Вы бы лучше выдержки из кода привели, как у Вас работает, а как нет. Там ведь мало поменять адрес, там и данные совершенно другие посылать надо.
Куска кода у меня пока нет, я пытаюсь переделать программу, написанную для Atmega16 для TEA5767 в поставке платы из Китая. http://ru.aliexpress.com/item/ATmega16- ... 51914.html Готового кода для связки RDA+1602+Mega16 пока не удалось найти.
А адрес 0x60 у меня всплыл потому, что я подключил модуль к Raspberry Pi, и хотел увидеть, что плата найдётся не только по 0x60, но и по 0x20 (или 0x22) - т.е. что в программе ic2detect я увижу все 3 её интерфейса. Но, скорее всего,что-то не понимаю и делаю не так.
Ответить

Вернуться в «Периферия»