Страница 3 из 9
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Ср окт 07, 2015 05:42:43
WiseLord
AonMaster писал(а):хотел увидеть, что плата найдётся не только по 0x60, но и по 0x20 (или 0x22)
Тогда уж следовало ожидать 0x10 (или 0x11), если i2cdetect использует 7-битный адрес. Почему не нашлось... а кто его знает, как он работает. Наверное, просто посылает в цикле start - адрес - стоп, перебирая все 127 вариантов адреса. Должно бы находить и 0x10 в этом случае.
По поводу кода - можете мой посмотреть. В проекте
тюнера или
спектроанализатора.Там почти одно и то же, кроме наличия поддержки RDS во втором случае.
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Ср окт 07, 2015 06:03:05
AonMaster
WiseLord писал(а):AonMaster писал(а):хотел увидеть, что плата найдётся не только по 0x60, но и по 0x20 (или 0x22)
Тогда уж следовало ожидать 0x10 (или 0x11), если i2cdetect использует 7-битный адрес. Почему не нашлось... а кто его знает, как он работает. Наверное, просто посылает в цикле start - адрес - стоп, перебирая все 127 вариантов адреса. Должно бы находить и 0x10 в этом случае.
По поводу кода - можете мой посмотреть. В проекте
тюнера или
спектроанализатора. Там почти одно и то же, кроме использования в одном случае программной реализации I²C (на любых ножках МК), либо аппаратной в другом случае.
Спасибо, если разберусь, конечно... У меня идея была отладить программу на Pi, т.к. там лучше, чем на символьном дисплее, выводить ошибки и переменные. I2C хочу на аппаратных ногах задействовать для простоты.
Вот здесь:
Запись: шлём в шину 0x11 и потом шлём бит 0 (функия вроде write(addr);
Чтение: шлём в шину 0x11 и потом шлём бит 1 (функция вроде read(addr);
получается, что для записи шлём (в двоичном коде) 0b10001 и затем бит 0, т.е. выходит шлём 0b100010 и получается 0x22,
а для чтения 0b10001 и затем бит 1, т.е. выходит шлём 0b100011 и получается 0x23?
тогда почему Вы говорите, что определиться должна на 0x10, а не на 0x11... Простите за глупые вопросы, наверное, у меня одного такие)
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Ср окт 07, 2015 06:13:42
WiseLord
AonMaster писал(а):почему Вы говорите, что определиться должна на 0x10, а не на 0x11
По даташиту. Там чётко указан адрес 0x20 (в терминологии raspberry это 0x10). Про 0x22 (0x11) - это уже не я, это Вы говорите. И откуда это выкопали - без понятия.
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Ср окт 07, 2015 06:35:37
AonMaster
WiseLord писал(а):AonMaster писал(а):почему Вы говорите, что определиться должна на 0x10, а не на 0x11
По даташиту. Там чётко указан адрес 0x20 (в терминологии raspberry это 0x10). Про 0x22 (0x11) - это уже не я, это Вы говорите. И откуда это выкопали - без понятия.
Из "Запись: шлём в шину 0x11 и потом шлём бит 0 " и выкопал...
Для меня "шлём в шину 0x11" означает, что "шлём адрес устройства 0x11", а получается, видимо, "шлём по адресу 0x10 байт 0b100010" ?
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Ср окт 07, 2015 07:17:42
WiseLord
Если Вы глянете внимательно, поймёте, что я это писал не как применение для RDA5807, а просто для сравнения двух видов адресации. Просто этот байт взят для анализа, мог быть абсолютно другой.
А так - да, верно понимаете. В терминологии arduiono/raspberry выбор адреса 0bXXXXXXX фактически означает посылку байта 0bXXXXXXX0 (запись) или 0bXXXXXXX1 (чтение).
Поэтому "шлём в шину 0x11" означает посылку именно 7 бит, после чего бита 0/1. Оно же - посылка байта 0x22 + 0(1)
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Вс июн 05, 2016 17:16:45
just_andrew2013
Доброго всем времени суток, уважаемые коты. Очень понравился и заинтересовал проект уважаемого shtela. Но к сожалению в программировании я тупее буратины, больше дружу с хлорным железом и паяльником. Огромная просьба, может кто сжалится и скомпилирует в hexы этот проект для ОК и ОА индикаторов. Заранее огромное спасибо всем откликнувшимся (если таковые найдутся).
Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Пт окт 14, 2016 00:15:29
dadigor
Morroc писал(а):про этот режим только у rda5807P в ДШ есть, у rda5807M и rda5807FP (она вроде больше похожа на rda5807M) в ДШ не встречается про два режима ничего
есть еще на конце SS, SP, HP, NN, NP... они это специально чтобы запутать что ли ?

Попробуем слегка распутать
RDA5807FP - SOP16
RDA5807M - MSOP10
RDA5807P - QFN24
RDA5807SS - SSOP16
Ну в общем вы поняли...
Несколько вопросов по приёмнику на RDA5807M
Добавлено: Вс янв 15, 2017 13:50:32
Denis82
Доброго времени суток уважаемые коты !
Собрал приёмник на RDA5807M по стандартной схеме

сделал для него антенну, коаксиальный кабель, 80см цент, 80см оплётка спущенная вниз, всё это примотано к деревянной штанге установленной вертикально на высоте метра 3-4
вроде работает, но есть несколько недостатков которые хотелось-бы исправить
1 - настройка плавает даже если руку близко поднести, точнее помехи исчезают если руку поднести

+ положение в пространстве, "тут ловит а тут не очень" пока не придумал ничего лучше чем засунуть в фанерный корпус обклеенный изнутри алюминиевой фольгой, теперь от положения в пространстве настройка не зависит но помехи не ушли
2 - собственно помехи, как от них избавиться ? на некоторых станциях не особо ощущаться а некоторые наоборот ...
3 - далеко не все станции ловятся из тех что есть, как быть ?
4 - "плавает" настройка, т.е. станция работает-работает, потом на 2-3-5 сек уплывает в сторону маяка, потом возвращается на исходную станцию
всё вышепиричесленное это по сравнению с промышленным приёмником, т.е. на промышленном станция работает чисто и без помех, тут наоборот, на промышленном станция нормально ловится а тут шипение и т.д.
заранее благодарен за советы !
Re: FM приёмник RDA5807
Добавлено: Вт янв 17, 2017 23:52:52
Morroc
От батареек питать пробовали ? Усилитель случаем не D класса ? Процессорную часть отключать пробовали во время приема ? Промышленный приемник подключался к той же антенне ?
Re: FM приёмник RDA5807
Добавлено: Ср янв 18, 2017 13:10:39
Denis82
Morroc
благодарю за ответ, с основными проблемами справился, установил колебательный контур на антенный вход ... странно почему в ДШ на микросхему он есть а в схеме подключения готового модуля его нет ...
осталась другая проблема, в условиях квартиры приёмник работает на ура, громко чисто и басы радуют, это при антенне в виде обрезка провода длинной ~20см. А вот в гараже где он собственно и будет жить даже на внешнюю антенну ловит с помехами, хоть и еле заметными но всёравно не то, думаю дело всё-же в антенне ...
Re: FM приёмник RDA5807
Добавлено: Вт янв 31, 2017 19:26:32
dadigor
А гараж случаем не цельнометаллический? Тогда антенну вон из гаража.
Re: FM приёмник RDA5807
Добавлено: Вт янв 31, 2017 19:58:55
Morroc
Denis82 писал(а): думаю дело всё-же в антенне ...
причем дело может быть не в конструкции, а просто в месте и достаточно ее передвинуть на полметра - поищите где получше, у меня на одном краю стола хорошо принимается радио, а на другом с "песочком"
(ну и конечно она должна быть на крыше по хорошему)
RDA5807 и Arduino - уходит частота
Добавлено: Вс июн 10, 2018 12:02:14
AonMaster
Сделал радиоприёмник на RDA5807M.
Использовал библиотеки
#include <radio.h>
#include <RDA5807M.h>
Использовал код из примера TestRDA5807M:
#define FIX_BAND RADIO_BAND_FM ///< The band that will be tuned by this sketch is FM.
#define FIX_STATION 10460 ///< The station that will be tuned by this sketch is 89.30 MHz.
#define FIX_VOLUME 8 ///< The volume that will be set by this sketch is level 4.
RDA5807M radio; // Create an instance of Class for RDA5807M Chip
Приём идёт где-то через 3 секунды после вызова кода
// Initialize the Radio
radio.init();
// Set all radio setting to the fixed values.
radio.setBandFrequency(FIX_BAND, FIX_STATION);
radio.setVolume(FIX_VOLUME);
radio.setMono(false);
radio.setMute(false);
Сначала использовал этот код один раз только в setup() - радио играло довольно чисто, антенну подрегулировал на слух. Оставил работать, часа через два в наушниках шумы вместо станции. Так повторялось раза два, потом решил в loop() вставить код, чтоб каждые 50 минут "инициализировал" радио. Но это же не дело(
Кто-нибудь сталкивался с подобным? Почему уходит настройка у неё?

Re: RDA5807 и Arduino - уходит частота
Добавлено: Вс июн 10, 2018 12:28:00
AVR_hobby
А вы не могли-бы выложить эти библиотеки?
Re: RDA5807 и Arduino - уходит частота
Добавлено: Вс июн 10, 2018 13:09:33
AonMaster
[uquote="AVR_hobby",url="/forum/viewtopic.php?p=3396820#p3396820"]А вы не могли-бы выложить эти библиотеки?[/uquote]
Вот скетч:
Код: Выделить всё
///
/// \file TestRDA5807M.ino
/// \brief An Arduino sketch to operate a SI4705 chip based radio using the Radio library.
///
/// \author Matthias Hertel, http://www.mathertel.de
/// \copyright Copyright (c) 2014 by Matthias Hertel.\n
/// This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx
///
/// \details
/// This sketch implements a "as simple as possible" radio without any possibility to modify the settings after initializing the chip.\n
/// The radio chip is initialized and setup to a fixed band and frequency. These settings can be changed by modifying the
/// FIX_BAND and FIX_STATION definitions.
///
/// Open the Serial console with 57600 baud to see the current radio information.
///
/// Wiring
/// ------
/// The RDA5807M board/chip has to be connected by using the following connections:
/// | Arduino UNO pin | Radio chip signal |
/// | -------------------| -------------------|
/// | 3.3V (red) | VCC |
/// | GND (black) | GND |
/// | A5 or SCL (yellow) | SCLK |
/// | A4 or SDA (blue) | SDIO |
/// The locations of the pins on the UNO board are written on the PCB.
/// The locations of the signals on the RDA5807M side depend on the board you use.
///
/// More documentation and source code is available at http://www.mathertel.de/Arduino
///
/// ChangeLog:
/// ----------
/// * 05.12.2014 created.
/// * 19.05.2015 extended.
#include <Arduino.h>
#include <Wire.h>
#include <radio.h>
#include <RDA5807M.h>
// ----- Fixed settings here. -----
#define FIX_BAND RADIO_BAND_FM ///< The band that will be tuned by this sketch is FM.
#define FIX_STATION 8930 ///< The station that will be tuned by this sketch is 89.30 MHz.
#define FIX_VOLUME 4 ///< The volume that will be set by this sketch is level 4.
RDA5807M radio; // Create an instance of Class for RDA5807M Chip
/// Setup a FM only radio configuration
/// with some debugging on the Serial port
void setup() {
// open the Serial port
Serial.begin(57600);
Serial.println("Radio...");
delay(200);
// Initialize the Radio
radio.init();
// Enable information to the Serial port
radio.debugEnable();
// Set all radio setting to the fixed values.
radio.setBandFrequency(FIX_BAND, FIX_STATION);
radio.setVolume(FIX_VOLUME);
radio.setMono(false);
radio.setMute(false);
} // setup
/// show the current chip data every 3 seconds.
void loop() {
char s[12];
radio.formatFrequency(s, sizeof(s));
Serial.print("Station:");
Serial.println(s);
Serial.print("Radio:");
radio.debugRadioInfo();
Serial.print("Audio:");
radio.debugAudioInfo();
delay(3000);
} // loop
// End.
Вот библиотека Radio-master
Добавлено after 6 minutes 52 seconds:
Re: FM приёмник RDA5807
[uquote="Denis82",url="/forum/viewtopic.php?p=2984429#p2984429"]с основными проблемами справился, установил колебательный контур на антенный вход ... странно почему в ДШ на микросхему он есть а в схеме подключения готового модуля его нет ...[/uquote]
Расскажите поподробнее, что за контур такой, где его взять, везде вход антенны нарисован сразу в гнездо антенны безо всяких контуров.
Re: FM приёмник RDA5807
Добавлено: Пн июн 11, 2018 15:53:14
AonMaster
Ещё заметил - к выходу у меня разъём для наушников подключен, так вот вытаскивая их из гнезда - настройка сбивается, надо заново инициировать модуль.
Кто-то эти вещи победил уже?
Re: FM приёмник RDA5807
Добавлено: Вт июн 12, 2018 03:34:11
AonMaster
Кстати, если близко (у нас 400 кГц) находится более сильная станция, то модуль перескакивает на неё почти сразу же. Хотя ему задана другая частота. А в мобилке старой хоть с шипением, но нужная станция ловится, и не уходит. Почему так получается

Re: FM приёмник RDA5807
Добавлено: Ср янв 09, 2019 10:36:29
veso74
Я не нашел более близкую тему, поэтому спрашиваю здесь:
Есть ли способ устранить затухание/постепенное увеличение звука при смене станций (не в автоматический режим, а при предварительно сохранени Fстанции)?
Я бы хотел приемник звучать как "аналоговой"

и "мягкое" затухание и постепенное увеличение вообще не нравится
Китайской FM модуль на RDA5807М, I2C адрес 0x11, управление на Arduino, без изп. вн. библиотек, а по регистрам.
Вопрос принципиальный.
начальные значения:
uint16_t reg_02 = 0b1100000000001101;
uint16_t reg_03 = 0b0000000000000000;
uint16_t reg_04 = 0b0000000000000000;
uint16_t reg_05 = 0b1000100010001111;
Первая функция, которая мне пришла в голову попробовать:
рег. 4, бит 9: SOFTMUTE_EN - If 1, softmute enable - функция "тушения звука" при отсутствии станции - работает сама за себя,
но не контролирует ето затухание/увеличение.
Re: FM приёмник RDA5807
Добавлено: Ср янв 09, 2019 10:41:58
WiseLord
Судя по всему, отключить такое приглушение нельзя. Уже обсуждали в параллельной теме.
Re: FM приёмник RDA5807
Добавлено: Ср янв 09, 2019 10:57:17
veso74
WiseLord, и я пришел к такому выводу.
Я в течение двух или более лет, например, три раза возвращался к этим RDA

. Каждый раз вижу другое решение, но рекация по затухании/увеличении осталось нерешенное.
Есьт у меня модули на TEA5767, RDA5807, AR1010 и Si4702 и каждый "хорош для себя".
Так, что буду использовать их для нашей цели в хобби

.