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

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

Ср окт 07, 2015 05:42:43

AonMaster писал(а):хотел увидеть, что плата найдётся не только по 0x60, но и по 0x20 (или 0x22)
Тогда уж следовало ожидать 0x10 (или 0x11), если i2cdetect использует 7-битный адрес. Почему не нашлось... а кто его знает, как он работает. Наверное, просто посылает в цикле start - адрес - стоп, перебирая все 127 вариантов адреса. Должно бы находить и 0x10 в этом случае.

По поводу кода - можете мой посмотреть. В проекте тюнера или спектроанализатора.Там почти одно и то же, кроме наличия поддержки RDS во втором случае.

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

Ср окт 07, 2015 06:03:05

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

AonMaster писал(а):почему Вы говорите, что определиться должна на 0x10, а не на 0x11
По даташиту. Там чётко указан адрес 0x20 (в терминологии raspberry это 0x10). Про 0x22 (0x11) - это уже не я, это Вы говорите. И откуда это выкопали - без понятия.

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

Ср окт 07, 2015 06:35:37

WiseLord писал(а):
AonMaster писал(а):почему Вы говорите, что определиться должна на 0x10, а не на 0x11
По даташиту. Там чётко указан адрес 0x20 (в терминологии raspberry это 0x10). Про 0x22 (0x11) - это уже не я, это Вы говорите. И откуда это выкопали - без понятия.


Из "Запись: шлём в шину 0x11 и потом шлём бит 0 " и выкопал...

Для меня "шлём в шину 0x11" означает, что "шлём адрес устройства 0x11", а получается, видимо, "шлём по адресу 0x10 байт 0b100010" ?

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

Ср окт 07, 2015 07:17:42

Если Вы глянете внимательно, поймёте, что я это писал не как применение для RDA5807, а просто для сравнения двух видов адресации. Просто этот байт взят для анализа, мог быть абсолютно другой.

А так - да, верно понимаете. В терминологии arduiono/raspberry выбор адреса 0bXXXXXXX фактически означает посылку байта 0bXXXXXXX0 (запись) или 0bXXXXXXX1 (чтение).

Поэтому "шлём в шину 0x11" означает посылку именно 7 бит, после чего бита 0/1. Оно же - посылка байта 0x22 + 0(1)

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

Вс июн 05, 2016 17:16:45

Доброго всем времени суток, уважаемые коты. Очень понравился и заинтересовал проект уважаемого shtela. Но к сожалению в программировании я тупее буратины, больше дружу с хлорным железом и паяльником. Огромная просьба, может кто сжалится и скомпилирует в hexы этот проект для ОК и ОА индикаторов. Заранее огромное спасибо всем откликнувшимся (если таковые найдутся).

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

Пт окт 14, 2016 00:15:29

Morroc писал(а):про этот режим только у rda5807P в ДШ есть, у rda5807M и rda5807FP (она вроде больше похожа на rda5807M) в ДШ не встречается про два режима ничего
есть еще на конце SS, SP, HP, NN, NP... они это специально чтобы запутать что ли ? :)

Попробуем слегка распутать

RDA5807FP - SOP16
RDA5807M - MSOP10
RDA5807P - QFN24
RDA5807SS - SSOP16

Ну в общем вы поняли...

Несколько вопросов по приёмнику на RDA5807M

Вс янв 15, 2017 13:50:32

Доброго времени суток уважаемые коты !

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

вроде работает, но есть несколько недостатков которые хотелось-бы исправить

1 - настройка плавает даже если руку близко поднести, точнее помехи исчезают если руку поднести :) + положение в пространстве, "тут ловит а тут не очень" пока не придумал ничего лучше чем засунуть в фанерный корпус обклеенный изнутри алюминиевой фольгой, теперь от положения в пространстве настройка не зависит но помехи не ушли
2 - собственно помехи, как от них избавиться ? на некоторых станциях не особо ощущаться а некоторые наоборот ...
3 - далеко не все станции ловятся из тех что есть, как быть ?
4 - "плавает" настройка, т.е. станция работает-работает, потом на 2-3-5 сек уплывает в сторону маяка, потом возвращается на исходную станцию

всё вышепиричесленное это по сравнению с промышленным приёмником, т.е. на промышленном станция работает чисто и без помех, тут наоборот, на промышленном станция нормально ловится а тут шипение и т.д.

заранее благодарен за советы !

Re: FM приёмник RDA5807

Вт янв 17, 2017 23:52:52

От батареек питать пробовали ? Усилитель случаем не D класса ? Процессорную часть отключать пробовали во время приема ? Промышленный приемник подключался к той же антенне ?

Re: FM приёмник RDA5807

Ср янв 18, 2017 13:10:39

Morroc

благодарю за ответ, с основными проблемами справился, установил колебательный контур на антенный вход ... странно почему в ДШ на микросхему он есть а в схеме подключения готового модуля его нет ...

осталась другая проблема, в условиях квартиры приёмник работает на ура, громко чисто и басы радуют, это при антенне в виде обрезка провода длинной ~20см. А вот в гараже где он собственно и будет жить даже на внешнюю антенну ловит с помехами, хоть и еле заметными но всёравно не то, думаю дело всё-же в антенне ...

Re: FM приёмник RDA5807

Вт янв 31, 2017 19:26:32

А гараж случаем не цельнометаллический? Тогда антенну вон из гаража.

Re: FM приёмник RDA5807

Вт янв 31, 2017 19:58:55

Denis82 писал(а): думаю дело всё-же в антенне ...

причем дело может быть не в конструкции, а просто в месте и достаточно ее передвинуть на полметра - поищите где получше, у меня на одном краю стола хорошо принимается радио, а на другом с "песочком"
(ну и конечно она должна быть на крыше по хорошему)

RDA5807 и Arduino - уходит частота

Вс июн 10, 2018 12:02:14

Сделал радиоприёмник на 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

А вы не могли-бы выложить эти библиотеки?

Re: RDA5807 и Arduino - уходит частота

Вс июн 10, 2018 13:09:33

А вы не могли-бы выложить эти библиотеки?

Вот скетч:

Код:
///
/// \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
с основными проблемами справился, установил колебательный контур на антенный вход ... странно почему в ДШ на микросхему он есть а в схеме подключения готового модуля его нет ...


Расскажите поподробнее, что за контур такой, где его взять, везде вход антенны нарисован сразу в гнездо антенны безо всяких контуров.
Вложения
Radio-master.zip
(116.74 KiB) Скачиваний: 153

Re: FM приёмник RDA5807

Пн июн 11, 2018 15:53:14

Ещё заметил - к выходу у меня разъём для наушников подключен, так вот вытаскивая их из гнезда - настройка сбивается, надо заново инициировать модуль.

Кто-то эти вещи победил уже?

Re: FM приёмник RDA5807

Вт июн 12, 2018 03:34:11

Кстати, если близко (у нас 400 кГц) находится более сильная станция, то модуль перескакивает на неё почти сразу же. Хотя ему задана другая частота. А в мобилке старой хоть с шипением, но нужная станция ловится, и не уходит. Почему так получается :-(

Re: FM приёмник RDA5807

Ср янв 09, 2019 10:36:29

Я не нашел более близкую тему, поэтому спрашиваю здесь:
Есть ли способ устранить затухание/постепенное увеличение звука при смене станций (не в автоматический режим, а при предварительно сохранени 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

Судя по всему, отключить такое приглушение нельзя. Уже обсуждали в параллельной теме.

Re: FM приёмник RDA5807

Ср янв 09, 2019 10:57:17

WiseLord, и я пришел к такому выводу.
Я в течение двух или более лет, например, три раза возвращался к этим RDA :). Каждый раз вижу другое решение, но рекация по затухании/увеличении осталось нерешенное.

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