хотел увидеть, что плата найдётся не только по 0x60, но и по 0x20 (или 0x22)
Тогда уж следовало ожидать 0x10 (или 0x11), если i2cdetect использует 7-битный адрес. Почему не нашлось... а кто его знает, как он работает. Наверное, просто посылает в цикле start - адрес - стоп, перебирая все 127 вариантов адреса. Должно бы находить и 0x10 в этом случае.
По поводу кода - можете мой посмотреть. В проекте тюнера или спектроанализатора.Там почти одно и то же, кроме наличия поддержки RDS во втором случае.
хотел увидеть, что плата найдётся не только по 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... Простите за глупые вопросы, наверное, у меня одного такие)
почему Вы говорите, что определиться должна на 0x10, а не на 0x11
По даташиту. Там чётко указан адрес 0x20 (в терминологии raspberry это 0x10). Про 0x22 (0x11) - это уже не я, это Вы говорите. И откуда это выкопали - без понятия.
почему Вы говорите, что определиться должна на 0x10, а не на 0x11
По даташиту. Там чётко указан адрес 0x20 (в терминологии raspberry это 0x10). Про 0x22 (0x11) - это уже не я, это Вы говорите. И откуда это выкопали - без понятия.
Из "Запись: шлём в шину 0x11 и потом шлём бит 0 " и выкопал...
Для меня "шлём в шину 0x11" означает, что "шлём адрес устройства 0x11", а получается, видимо, "шлём по адресу 0x10 байт 0b100010" ?
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Если Вы глянете внимательно, поймёте, что я это писал не как применение для RDA5807, а просто для сравнения двух видов адресации. Просто этот байт взят для анализа, мог быть абсолютно другой.
А так - да, верно понимаете. В терминологии arduiono/raspberry выбор адреса 0bXXXXXXX фактически означает посылку байта 0bXXXXXXX0 (запись) или 0bXXXXXXX1 (чтение).
Поэтому "шлём в шину 0x11" означает посылку именно 7 бит, после чего бита 0/1. Оно же - посылка байта 0x22 + 0(1)
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Заголовок сообщения: Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Вс июн 05, 2016 17:16:45
Родился
Зарегистрирован: Вс мар 03, 2013 16:20:42 Сообщений: 10
Рейтинг сообщения:0
Доброго всем времени суток, уважаемые коты. Очень понравился и заинтересовал проект уважаемого shtela. Но к сожалению в программировании я тупее буратины, больше дружу с хлорным железом и паяльником. Огромная просьба, может кто сжалится и скомпилирует в hexы этот проект для ОК и ОА индикаторов. Заранее огромное спасибо всем откликнувшимся (если таковые найдутся).
Заголовок сообщения: Re: FM приёмник RDA5807FP+ATMega16
Добавлено: Пт окт 14, 2016 00:15:29
Вымогатель припоя
Карма: 10
Рейтинг сообщений: 127
Зарегистрирован: Пт дек 26, 2014 20:33:38 Сообщений: 593 Откуда: Самая большая деревня. (По мнению Габриэля Гарсиа Маркеса)
Рейтинг сообщения:0
Morroc писал(а):
про этот режим только у rda5807P в ДШ есть, у rda5807M и rda5807FP (она вроде больше похожа на rda5807M) в ДШ не встречается про два режима ничего есть еще на конце SS, SP, HP, NN, NP... они это специально чтобы запутать что ли ?
Собрал приёмник на RDA5807M по стандартной схеме сделал для него антенну, коаксиальный кабель, 80см цент, 80см оплётка спущенная вниз, всё это примотано к деревянной штанге установленной вертикально на высоте метра 3-4
вроде работает, но есть несколько недостатков которые хотелось-бы исправить
1 - настройка плавает даже если руку близко поднести, точнее помехи исчезают если руку поднести + положение в пространстве, "тут ловит а тут не очень" пока не придумал ничего лучше чем засунуть в фанерный корпус обклеенный изнутри алюминиевой фольгой, теперь от положения в пространстве настройка не зависит но помехи не ушли 2 - собственно помехи, как от них избавиться ? на некоторых станциях не особо ощущаться а некоторые наоборот ... 3 - далеко не все станции ловятся из тех что есть, как быть ? 4 - "плавает" настройка, т.е. станция работает-работает, потом на 2-3-5 сек уплывает в сторону маяка, потом возвращается на исходную станцию
всё вышепиричесленное это по сравнению с промышленным приёмником, т.е. на промышленном станция работает чисто и без помех, тут наоборот, на промышленном станция нормально ловится а тут шипение и т.д.
От батареек питать пробовали ? Усилитель случаем не D класса ? Процессорную часть отключать пробовали во время приема ? Промышленный приемник подключался к той же антенне ?
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
благодарю за ответ, с основными проблемами справился, установил колебательный контур на антенный вход ... странно почему в ДШ на микросхему он есть а в схеме подключения готового модуля его нет ...
осталась другая проблема, в условиях квартиры приёмник работает на ура, громко чисто и басы радуют, это при антенне в виде обрезка провода длинной ~20см. А вот в гараже где он собственно и будет жить даже на внешнюю антенну ловит с помехами, хоть и еле заметными но всёравно не то, думаю дело всё-же в антенне ...
причем дело может быть не в конструкции, а просто в месте и достаточно ее передвинуть на полметра - поищите где получше, у меня на одном краю стола хорошо принимается радио, а на другом с "песочком" (ну и конечно она должна быть на крыше по хорошему)
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Использовал библиотеки #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 минут "инициализировал" радио. Но это же не дело(
Кто-нибудь сталкивался с подобным? Почему уходит настройка у неё?
/// /// \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.
#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
с основными проблемами справился, установил колебательный контур на антенный вход ... странно почему в ДШ на микросхему он есть а в схеме подключения готового модуля его нет ...
Расскажите поподробнее, что за контур такой, где его взять, везде вход антенны нарисован сразу в гнездо антенны безо всяких контуров.
Кстати, если близко (у нас 400 кГц) находится более сильная станция, то модуль перескакивает на неё почти сразу же. Хотя ему задана другая частота. А в мобилке старой хоть с шипением, но нужная станция ловится, и не уходит. Почему так получается
Я не нашел более близкую тему, поэтому спрашиваю здесь: Есть ли способ устранить затухание/постепенное увеличение звука при смене станций (не в автоматический режим, а при предварительно сохранени Fстанции)?
Я бы хотел приемник звучать как "аналоговой" и "мягкое" затухание и постепенное увеличение вообще не нравится
Китайской FM модуль на RDA5807М, I2C адрес 0x11, управление на Arduino, без изп. вн. библиотек, а по регистрам. Вопрос принципиальный.
Первая функция, которая мне пришла в голову попробовать: рег. 4, бит 9: SOFTMUTE_EN - If 1, softmute enable - функция "тушения звука" при отсутствии станции - работает сама за себя, но не контролирует ето затухание/увеличение.
WiseLord, и я пришел к такому выводу. Я в течение двух или более лет, например, три раза возвращался к этим RDA . Каждый раз вижу другое решение, но рекация по затухании/увеличении осталось нерешенное.
Есьт у меня модули на TEA5767, RDA5807, AR1010 и Si4702 и каждый "хорош для себя". Так, что буду использовать их для нашей цели в хобби .
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения