Выручайте RDA5807M

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Максим B, 20 июл 2016.

  1. Все переделал, в скетче который идет как пример - не меняется частота. Выкладываю фото как есть сейчас у меня. Кондексатор использую 100мкФ, 16V. - Подключен плюсом на вход, минус на наушники 35,5 Ом
     

    Вложения:

  2. 9xA59kK

    9xA59kK Гик

    В каком скетче?? где этот скетч, вставь как код в сообщение.
    В разработке схемы придерживайся даташита на микросхему.
    Не заметил на фото подтяжки шины I2С через делитель на резисторах.!!!
    Мне понравилось описание вот такого примера. и такого и вот такого.
     
    Последнее редактирование: 29 июл 2016
  3. Например такой код:
    Код (Text):

    // Programm: fm_radio_module_em5807m_rev100.ino
    // Language: Arduinio C++
    // Hardware: Arduino Nano 3.0 + EM5807M module with RDA5807M Chip.
    // Version:  1.00
    // Autor:    www.5v.ru
    // Link:     www.5v.ru/start/em5807m-arduino-nano-30.htm

    #include <Wire.h>               // 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((byte)0x00);                //
      Wire.endTransmission();                // формируем I2C-Stop.
    }

     
     
  4. I2C сделаю, не нашел резисторов нужных. А наушники 32 Ома у меня правильно с кондером подключены ???
    Нашуники: джек 3,5 - 1 и 2 вывод это каналы, последний 3 GND. Т.е. подключаю так: один вывод от кондесатора, другой от GND. Может еще что-то надо???
     
  5. 9xA59kK

    9xA59kK Гик

    Подключи шину i2c, просканируй сканером определишь адрес заодно убедишься в работоспособности шины.
     
  6. А ведь выше i2c сканер код я выкладывал и он выдает устройства по адреса 0x10, 0x11, 0x60
     
  7. 9xA59kK

    9xA59kK Гик

    Повторяешься, смотри ответ ранее. НЕ МОЖЕТ БЫТЬ ТРИ АДРЕСА НА ОДНО УСТРОЙСТВо!! в данном случае.
     
  8. Andrey12

    Andrey12 Нерд

    Затихла что то тема. Так что в итоге? Заработало радио?
     
  9. К сожалению нет. Надо новый заказывать модуль. С тем походу - не заработает, т.к. убитый. ((
     
    Andrey12 нравится это.
  10. Andrey12

    Andrey12 Нерд

    Я заказал сразу 3. К стати с преобразователем уровней и ардуино UNO не заработал, зато без преобразователя работает.
    И к стати может быть у одного устройства 3 адреса. Думаю может быть и больше. Просто адреса предназначены для различных действий. В даташите это все описано.
     
  11. Получилось запустить ? Схемой сможете поделиться и какие динамики подключали??? Спасибо
     
  12. Andrey12

    Andrey12 Нерд

    У меня все дома, все пока на макетке. Подключал к усилителю который тоже на макетке на TDA собран. Просто что странно с преобразователем уровней не заработал. Я смотрел логическим анализатором сигнал до и после преобразователя, и осциллографом, все отлично. А напрямую с UNO работает.
     
  13. Я и через усилитель PAM пытался сделать - не запело, пытался напрямую - только адреса считал (((
     
  14. Andrey12

    Andrey12 Нерд

    1431204146_rda5807_pc.jpg
    Я подключал по такой схеме.
    Библиотеку брал отсюда - https://github.com/mathertel/Radio
    Только еще sda и scl подтянуты к + через резисторы 10к
    Просто в чем схему нарисовать не знаю, модуля rda5807m нигде нет а добавлять его лень.
    В принципе в интернете схем полно, могу сфотографировать макетку как есть.

    Если сканирует это уже хорошо.
    Адрес 0x60 служит для управления модулем подобно как для микросхем tea5767, масса возможностей теряется, нельзя регулировать громкость, нет RDS, а так как управление tea5767 какоето странное я эту возможность не использую.
    Адресами 0x10, 0x11 можно управлять всеми возможностями модуля, отличается тем что используя адрес 10 можно переписать все 6 регистров, но только подряд. а используя адрес 11 можно писать в отдельно выбранный регистр, например чтобы громкость изменить и не переписывать все 6 регистров rda5807m.
     
    Максим B и Igor68 нравится это.
  15. Я перепробовал много различных библиотек- если есть возможность сфоткать макетку- буду благодарен. Тогда еще раз сам все попробую пересобрать и так же выложить.
     
    Andrey12 нравится это.
  16. Andrey12

    Andrey12 Нерд

    Сфотографировал, не знаю на сколько хорошо будет видно
    2017-05-25 21-03-47.JPG
    тут покрупнее соединения ардуино и модулей, у меня по I2C подключены OLED экран и RDA5807m.
    2017-05-25 21-03-58.JPG 2017-05-25 21-04-20.JPG
    Ну и сам усилитель на TDA2003. Собирал на скорую руку.
    2017-05-25 21-04-10.JPG

    В принципе если сканер ищет адреса то значит модуль работает. Как соберете и сканер покажет адреса 10 11 и 60 сфоткайте как собрали. Я попробую написать простой код инициализации и настройки на указанную частоту.