Ардуино и RDA5807
- rw6hrm
- Открыл глаза
- Сообщения: 58
- Зарегистрирован: Вт фев 26, 2019 14:44:04
- Откуда: Ставрополь
- Контактная информация:
Ардуино и RDA5807
Тема радиоприёмника на RDA5807 вроде бы и обсосана в соседней ветке форума, однако там народ в основном пользует регистры напрямую. Посему задам вопрос тут, поскольку чтот не получается...
...а именно не получается с функцией настройки приёмника radio.setBandFrequency(FIX_BAND, newFreq);
Если newFreq опредляется дефайном, то всё отлично работает.
Если newFreq опредляется как переменная (int или, как требуется, uint16_t), то всё стопорится и далее код не исполняется, хотя компилятор не ругается (версия 1.6.13)...
Есть одно смущение, когда я определяю величину переменной. У меня используется 4-х разрядный семисегментник. Поэтому индикация частоты на нём высвечивается от 875 до 1080 (мне этого достаточно). Также это число (переменная number) запоминается в еепром, для последующего включения на этой частоте. Чтобы определить цифру, которую надо отправить в RDAшку, я умножаю его на 10, чтобы получилось от 8750 до 10800. Получается так:
newFreq = number;
newFreq *= 10;
radio.setBandFrequency(FIX_BAND, newFreq);
и всё стопорится...
Проект с либой цепляю. Схема вроде бы не нужна.
...а именно не получается с функцией настройки приёмника radio.setBandFrequency(FIX_BAND, newFreq);
Если newFreq опредляется дефайном, то всё отлично работает.
Если newFreq опредляется как переменная (int или, как требуется, uint16_t), то всё стопорится и далее код не исполняется, хотя компилятор не ругается (версия 1.6.13)...
Есть одно смущение, когда я определяю величину переменной. У меня используется 4-х разрядный семисегментник. Поэтому индикация частоты на нём высвечивается от 875 до 1080 (мне этого достаточно). Также это число (переменная number) запоминается в еепром, для последующего включения на этой частоте. Чтобы определить цифру, которую надо отправить в RDAшку, я умножаю его на 10, чтобы получилось от 8750 до 10800. Получается так:
newFreq = number;
newFreq *= 10;
radio.setBandFrequency(FIX_BAND, newFreq);
и всё стопорится...
Проект с либой цепляю. Схема вроде бы не нужна.
- Вложения
-
- sketch_my_rx.zip
- (168.9 КБ) 135 скачиваний
- Реклама
- JMC.Hard
- Мучитель микросхем
- Сообщения: 445
- Зарегистрирован: Ср сен 16, 2020 20:38:41
- Откуда: Краснодарский край, г.Абинск
Re: Ардуино и RDA5807
А попробуйте, rw6hrm, определить newFreq как word, ну или unsigned int.
Лучше сделать и жалеть, чем жалеть, что не сделал ...
Re: Ардуино и RDA5807
Лучше (правильней) объявлять тем типом, который используется функцией. Либо принудительно приводить к нему. Даже если изначально это тоже был uint16_t
Re: Ардуино и RDA5807
Прокрутил компиляцию вышеприложенного проекта от rw6hrm на ардуино IDE 1.8.9
для платформы arduino nano atmega328p (old bootloader) Версия платформы 1.8.3...
Никаких замечаний... Даже вармингов нету (хотя у меня установлено для сообщений компилятора опция ВСЕ)...
Правда у меня установлен вот этот вариант библиотек:

Как рекомендация - переустановить IDE (на версии 1.8.9 или 1.8.19 в прортабле режиме)

для платформы arduino nano atmega328p (old bootloader) Версия платформы 1.8.3...
Никаких замечаний... Даже вармингов нету (хотя у меня установлено для сообщений компилятора опция ВСЕ)...
Код: Выделить всё
Скетч использует 10042 байт (32%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1014 байт (49%) динамической памяти, оставляя 1034 байт для локальных переменных. Максимум: 2048 байт.Как рекомендация - переустановить IDE (на версии 1.8.9 или 1.8.19 в прортабле режиме)
- rw6hrm
- Открыл глаза
- Сообщения: 58
- Зарегистрирован: Вт фев 26, 2019 14:44:04
- Откуда: Ставрополь
- Контактная информация:
Re: Ардуино и RDA5807
Спасибо за ответы. По порядку - использую 1.6.13 поскольку это максимум, что запускается на ВинХР
. Ну и нашёл свой косяк - не активировалась библиотека wire.h, которая, вроде как бы, прилеплена внутри Radio. Активировать удалось простым обращением проверки подключения платы с RDAшкой, для этого внутри сетапа добавил строки
if (!radio.initWire(Wire)) {
delay(1000);
}
ну и потом все обращения к чипу далее...
И, с*ка, всё пошло. А я, старый, забыл про это, разумеется всё висло, поскольку всё тупо кидалось в /dev/null...
...однако, почему срабатывал вариант с дефайном - мне неведомо...
Так что посыпаю голову пеплом, что занял время у уважаемых форумчан...
Черновик схемы (другого нет) и фото внешности и кишков прилагаю, мож кому интересно. Осталось добить скетч на работу с пару сотней ячеек памяти для преднастроенных станций (много, ибо по работе нужно).
if (!radio.initWire(Wire)) {
delay(1000);
}
ну и потом все обращения к чипу далее...
И, с*ка, всё пошло. А я, старый, забыл про это, разумеется всё висло, поскольку всё тупо кидалось в /dev/null...
...однако, почему срабатывал вариант с дефайном - мне неведомо...
Так что посыпаю голову пеплом, что занял время у уважаемых форумчан...
Черновик схемы (другого нет) и фото внешности и кишков прилагаю, мож кому интересно. Осталось добить скетч на работу с пару сотней ячеек памяти для преднастроенных станций (много, ибо по работе нужно).
- Вложения
-
- sketch_my_rx.zip
- окончательный проект.
- (168.96 КБ) 101 скачивание
-
- rNyuhcjb7QU.jpg
- внешность
- (75.03 КБ) 235 скачиваний
-
- hJRzlI0CRH0.jpg
- внутренность
- (71.55 КБ) 234 скачивания
-
- photo_2024-10-05_22-52-22.jpg
- черновик схемы
- (89.1 КБ) 97 скачиваний
Последний раз редактировалось rw6hrm Ср окт 09, 2024 19:18:08, всего редактировалось 1 раз.
- Реклама
Re: Ардуино и RDA5807
Под виндовс ХР х32 идет Портабле вариант ардуиноIDE 1.8.9.
Единственно - ни обновлять платформы ни обновлять библиотеки из под ХР в ней НЕЛЬЗЯ.
Сразу должен быть выключен флажек "файл -> настройки -> проверять обновления при запуске" (устанавливаем и первый раз запускаем ТОЛЬКО ПРИ ОТКЛЮЧЕННОМ ИНТЕРНЕТЕ!!!). Далее НЕЛЬЗЯ будет запускать менеджер платформ и менеджер библиотек - в остальном ограничений нет.
А для обновления и подгрузки новых платформ использовать портабле копию на флешке, которая запускается на ПК с виндовс 7/10 и затем копируется в каталоги на ПК с ХР.
Штука довольно нудная, но отлично работает.

Единственно - ни обновлять платформы ни обновлять библиотеки из под ХР в ней НЕЛЬЗЯ.
Сразу должен быть выключен флажек "файл -> настройки -> проверять обновления при запуске" (устанавливаем и первый раз запускаем ТОЛЬКО ПРИ ОТКЛЮЧЕННОМ ИНТЕРНЕТЕ!!!). Далее НЕЛЬЗЯ будет запускать менеджер платформ и менеджер библиотек - в остальном ограничений нет.
А для обновления и подгрузки новых платформ использовать портабле копию на флешке, которая запускается на ПК с виндовс 7/10 и затем копируется в каталоги на ПК с ХР.
Штука довольно нудная, но отлично работает.
Re: Ардуино и RDA5807
Аж любопытно стало, что это за работа такая, где нужно помнить частоты пары сотен вещательных станций.rw6hrm писал(а):Осталось добить скетч на работу с пару сотней ячеек памяти для преднастроенных станций (много, ибо по работе нужно).
(Их по стране вообще столько наберётся хоть?)
- rw6hrm
- Открыл глаза
- Сообщения: 58
- Зарегистрирован: Вт фев 26, 2019 14:44:04
- Откуда: Ставрополь
- Контактная информация:
Re: Ардуино и RDA5807
Радиовещанием работа называется.
Ну всю пару сотен это так, шоб було
, а вообще у меня под контролем только своих станций в двадцати пунктах региона порядка тридцати (да, в паре мест частоты совпадают). А ещё ж и конкурентов послушивать надо xD
Ну всю пару сотен это так, шоб було
- rw6hrm
- Открыл глаза
- Сообщения: 58
- Зарегистрирован: Вт фев 26, 2019 14:44:04
- Откуда: Ставрополь
- Контактная информация:
RDA5807 и SCA
Дабы не плодить новую тему спрошу тут оффтопом, а то мало ли, - как я понимаю, вытащить из RDAшки аудиоподнесущие SCA1/SCA2 (76/92 кГц) физиологически невозможно?
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1907
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Ардуино и RDA5807
Документация:
Никто не задокументировал и не раскрыл скрытые возможности.REG 06H [7:4] - I2S_SW_CNT[4:0]
4'b1000: WS_STEP_48;
4'b0111: WS_STEP=44.1kbps;
4'b0110: WS_STEP=32kbps;
4'b0101: WS_STEP=24kbps;
4'b0100: WS_STEP=22.05kbps;
4'b0011: WS_STEP=16kbps;
4'b0010: WS_STEP=12kbps;
4'b0001: WS_STEP=11.025kbps;
4'b0000: WS_STEP=8kbps;
- rw6hrm
- Открыл глаза
- Сообщения: 58
- Зарегистрирован: Вт фев 26, 2019 14:44:04
- Откуда: Ставрополь
- Контактная информация:
Re: Ардуино и RDA5807
Как бы это немножечко не то, kbps тут вообще не при делах... SCA - это ЧМ-модулированные аудиоподнесущие внутри излучаемого спектра УКВ-станций. RDS - это тоже на поднесущей, 57 кГц, но DSB-модулированное. По сути говоря, аудиовещание на поднесущих - это почти то же самое, что и проводная трёхпрограммка...


