Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

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

Ср окт 22, 2014 11:55:20

Поделитесь пожалуйста прошивкой для атмеги и какие фьюзы для неё.

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

Ср окт 22, 2014 12:59:53

Да лучше бы исходниками если не жалко :roll: Хочу на тиньке сделать или на чем нибудь таком мелком, купил ребенку конструктор электронный, там блок с FM радио простейший с кнопками туда/сюда и разумеется станцию он не помнит если питание снять, искать станцию вслепую в москве можно упариться, есть мысль туда запихнуть rda- модуль с тинькой, можно без индикации даже.

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

Сб окт 25, 2014 16:34:47

Подскажите ,пожалуйста, чем скомпилировать файл FM_RDA5807FP_ATMega16.mpas ? Взятый с архива выложенного ранее Уважаемым shtela.

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

Вт дек 02, 2014 16:44:36

Доброго всем времени суток. Подскажите, пробовал ктонибудь прицепить RDA5807M? Если я правильно понял у них коды разные.

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

Вс фев 08, 2015 21:52:18

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

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

а число 13141 соответствует 108,0 МГц.

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

Пн фев 09, 2015 15:32:12

Здесь проще - число 0 соответствует минимальной частоте (например, 87.5МГц), числа 1, 2, 3 и т.д. - это шаги, например, по 50кГц.
И минимум-максимум (диапазон приёма), и величина этого шага задаются в других регистрах.

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

Вт фев 10, 2015 00:21:22

А адресность байтов надо соблюдать или надо все 14 байтов отправлять по порядку?

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

Вт фев 10, 2015 07:43:09

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.
Можно передать не все, а только несколько байт, остальные регистры сохранят своё значение.

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

Вт фев 10, 2015 09:39:23

Спасибо,буду пробовать,осталось модулей дождаться...... :beer:

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

Чт фев 26, 2015 01:34:04

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

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

Чт фев 26, 2015 07:06:32

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

Вся будущая посылка лежит в массиве 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 в них

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

Ср апр 22, 2015 19:21:18

Добрый день, тоже заинтересовался приемником. Можете посоветовать на какой микросхеме лучше делать? Если не на RDA5807FP.

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

Чт апр 30, 2015 17:01:50

Если не на RDA5807FP

Тогда на ТЕА 5767.

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

Вт окт 06, 2015 07:02:21

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

Помогите, пожалуйста, понять, в МК я слаб)
Собираю радио на основе китайской платы, там 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. Всё запуталось у меня(

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

Вт окт 06, 2015 08:05:37

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

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

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

Вт окт 06, 2015 18:14:52

Спасибо!

не подскажете ли, почему на моей шине i2c она по адресу 0x60 определяется, а не по этому же 0x22?
Ведь если я ей, сидящей на 0x60, пошлю байт на 0x22, она же не ответит, видимо...

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

Вт окт 06, 2015 18:32:00

Я у себя использовал адрес 0х20, это родной для RDA5807M, именно он описан в даташите. Также она работает с 0xC0 - в режиме TEA5767. Откуда Вы взяли 0x22 - без понятия.

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

Ср окт 07, 2015 05:00:25

WiseLord писал(а):Я у себя использовал адрес 0х20, это родной для RDA5807M, именно он описан в даташите. Также она работает с 0xC0 - в режиме TEA5767. Откуда Вы взяли 0x22 - без понятия.


Так из цитаты в первом вопросе, из варианта c)
там же "address 0x11" (а Вы объяснили, что это аналогично 0x22)
вот я и понимаю, что 0x22 это адрес (address) на шине i2c, в который нужно посылать данные. В отличие от 0x60, по которому сейчас у меня RDA5807M работает в режиме совместимости.

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

Ср окт 07, 2015 05:22:57

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

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

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

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

Ср окт 07, 2015 05:32:56

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

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

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


Куска кода у меня пока нет, я пытаюсь переделать программу, написанную для Atmega16 для TEA5767 в поставке платы из Китая. http://ru.aliexpress.com/item/ATmega16-ATmeg-a32-TEA5767-TDA1308-ISP-5V-FM-Radio-AVR-Development-Board-MCU/2038551914.html Готового кода для связки RDA+1602+Mega16 пока не удалось найти.
А адрес 0x60 у меня всплыл потому, что я подключил модуль к Raspberry Pi, и хотел увидеть, что плата найдётся не только по 0x60, но и по 0x20 (или 0x22) - т.е. что в программе ic2detect я увижу все 3 её интерфейса. Но, скорее всего,что-то не понимаю и делаю не так.
Ответить