Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06 Сообщений: 545 Откуда: Николаев / Украина
Рейтинг сообщения:0
Всем привет! Хочу сделать рации с SA818-U на базе RDA1846S. https://aliexpress.ru/item/32224669738.html Все необходимые детали уже есть в наличии. Решил сделать управление радиомодулем при помощи Atmega328 + OLED дисплей (на котором будет отображаться текущая частота). Подключал все по этой схеме: Стал искать документацию на радиомодуль RDA1846S, и что-то ничего не могу найти. Точнее есть много файлов с каким-то общим описанием, но как управлять этим радиомодулем - не понятно. Нигде не нашел ни примера передаваемых данных, ни даже настроек битрейта для UART... Может вы мне поможете? На какой скорости должен работать UART? Какие команды нужно передавать, и что должен возвращать радиомодуль?
_________________ Сделать своими руками всегда интересней чем просто купить и пользоваться
Заголовок сообщения: Re: Управление RDA1846S (Рации)
Добавлено: Пт окт 09, 2020 18:34:00
Вымогатель припоя
Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06 Сообщений: 545 Откуда: Николаев / Украина
Рейтинг сообщения:0
Спасибо! "А ларчик просто открывался"... надо было поискать для SA818 а я искал для RDA1846S... Начал смотреть по SA818 - информации много, даже есть готовые библиотеки для Ардуино! Вот на пример: https://github.com/darkbyte-ru/SA818
Я прошу помощи в том чтобы правильно написать скетч. Я недавно перенес несколько микроинсультов и мне крайне сложно сосредоточиться и разобраться в том что и как Читаю текст, изучаю примеры, но никак не могу это все понять и удержать в памяти... Хотя раньше без проблем читал даташиты и по ним писал код...
Вот схема моего проекта, его я создал давненько, уже на руках есть печатные платы:
"Мозги" - Atmega328P. + OLED дисплей для отображения работы, настроек и заряда аккумулятора. Питаться все будет от Li-ion аккумулятора на прямую так как и Атмега и SA818 спокойно будут работать от аккумулятора вплоть до 3.3 вольт и ниже. Дисплей подключается по I2C. SA818 подключается по UART (пины PD0 и PD1). Один из моих косяков - я не предусмотрел вывода отладочной информации. Ну либо как-то на прямую подключаться к микроконтроллеру и организовывать программный Serial. Но это вряд ли буду делать, так как МК распаян под дисплеем, к нему не подлезть, только снимать дисплей. Управление SA818: PTT (включение передачи) - PD3 PD (Power Down) - PB0 H/L (переключение мощности) - PB2 В принципе больше ничего особенного. Зарядное устройство на TP4056, аудиоусилитель на HXJ8002, 3 кнопки управления, подключенные к пинам PD5, PD6 PD7, и одна кнопка "Передача" - PD4. Так же для измерения напряжения на аккумуляторе установлен резисторный делитель и опорное напряжение на TL431. Хотя, если подумать, большой точности не нужно, ножно было бы использовать внутреннее опорное напряжение в 1,1 вольт. Ну, так или иначе TL431 установлен, и имеем опорное напряжение в 2.5 вольт.
Немного позже выложу наброски моего скетча. У меня есть несколько вопросов по настройке SA818. 1) можно ли как-то получить текущие настройки модуля? Что-то в даташите я этого не нашел. 2) есть пример установки:
Format :AT+DMOSETGROUP=BW,TX_F,RX_F,Tx_subaudio,SQ,Rx_subaudio Sample:AT+DMOSETGROUP=0,415.1250,415.1250,0012,4, 0013
вопрос: На что влияет BW (Band width 12.5/25KHz)? Какая разница между 12.5 и 25KHz? TX_F,RX_F - это понятно, частота передачи и приема. Формат: 415.1250 Tx_SubAudio(Tx_CTCSS/Tx-CDCSS), Rx_SubAudio (Rx_CTCSS/Rx-CDCSS), что это за значения и на что они влияют? Точнее, я примерно понимаю что означает CTCSS и CDCSS, но не понимаю что означает запись Rx_CTCSS/Rx-CDCSS и почему в примере для Tx_SubAudio и Rx_SubAudio указаны разные значения: 0012 и 0013? SQ я так понимаю это уровень шумоподавления?
_________________ Сделать своими руками всегда интересней чем просто купить и пользоваться
С Ардуино не работаю. Тем более с готовыми библиотеками. Только свои ! ))
Очень правильный поход, поддерживаю! Хотя для начинающих Ардуино дает возможность быстрого "вкуривания" принципов работы и программирования МК, и при этом позволяет "не отбить охоту" этим заниматься А вот даташиты в любом случае нужно внимательно изучать, может даже не только те которые продавец предоставляет, а еще и покопаться в том из чего подобные модули состоят. К чему я это всё? А к тому, что очень желательно проверить (поэкспериментировать) вот с этим:
Не смотря на то, что канальный шаг на PMR - 12,5кГц, тем не менее, каналы сдвинуты относительно общей сетки на 6,25кГц (т.е. первый канал это 446006,25кГц) и если синтезатор имеет минимальный шаг 12,5кГц, то он в эти частоты просто не попадет Такая проблема есть, кстати, даже у вполне не дешевых станций, например Yaesu серии VX. Там это решено только в VX8R .
Вот настройки для LPD диапазона: а вот для PMR диапазона:
Кое-что для меня все еще остается не понятным: Для чего устанавливать значение BW (Band width 12.5/25KHz) если частота все равно прописывается в ручную? В примере AT+DMOSETGROUP=BW,TX_F,RX_F,Tx_subaudio,SQ,Rx_subaudio мы прописываем как шаг сетки (BW) так и частоту (TX_F,RX_F). Как-то не вижу в этом смысла, ведь все равно можно задать абсолютно любую частоту. А саму сетку с каналами и их частотами прописать статичными в коде.
Еще не совсем понятно по настройкам Tx_subaudio,SQ,Rx_subaudio. В чем разница между Tx_subaudio,SQ и Rx_subaudio? Какими значениями их нужно выставлять? Это же все вроде как шумоподавление? Или настройки нужно подбирать "интуитивно"?
Добавлено after 1 hour 42 minutes 30 seconds: Несколько вопросов по даташиту (прикреплен к сообщению). Простите если буду повторяться.
Страница 3: Tx_subaudio: Tx_CTCSS or TX_CDCSS Rx_subaudio: Rx_CTCSS or RX_CDCSS. If 0000 is set, that means subaudio function is disable. No CTCSS and no CDCSS. The range of Tx_CTCSS and Rx_ctcss is 1—38.
то есть для Tx_subaudio и для Rx_subaudio можно задавать одинаковые значения? Формат: 0000. Где 0000 - это отключение, а 0001-0038 уровень шумоподавления? Я все верно понимаю? Но если посмотреть дальше: Please find below table for Tx_CDCSS and Rx_CDCSS то можно найти таблицу кодов на страницах 9-16 для CDCSS ( в формате 445I)и этих кодов не 38 а 84! Что-то у меня не сходится. Написано же: The range of Tx_CTCSS and Rx_ctcss is 1—38 в то же время в таблице 84 значения...
Страница 4: SQ: 0 ~ 8 0: listen mode 1—8: Different SQ Level. SQ - означает "squelch", переводится как "шумоподавление". То есть три уровня шумоподавления: CTCSS, CDCSS и SQ? Хотя я где-то читал что CTCSS, CDCSS - это не только против "шума" но и для определения "свой-чужой".
Страница 4: 3.3) Scan frequency configuration Эта функция нужна для поиска другой рации (типа этого)? Если вторая рация настроена на заданную частоту, то в ответ получим "0", ели не нашло - "1"? Я все верно понял?
Страница 5: 3.5) Audio Filet Command Format: AT+SETFILTER=PRE/DE-EMPH, HIGHPASS, LOWPASS Я не понимаю назначение этой команды. Что она делает? HIGHPASS, LOWPASS (0 или 1) - включение/отключение каких-то звуковых фильтров. Больше я ничего не понял.
Страница 6: 3.6) Close Tail Tone Command Format: AT+SETTAIL=TAIL Переводчик выдал набор буков Я так понимаю это включение/отключение звукового сигнала при окончании передачи? То есть нажал кнопку PPT, поговорил, и после отпускания кнопки PPT передается "ПИЛИК" сигнализирующий что передача окончена? Я правильно понял?
Страница 7: 3.7) Read RSSI Я так понимаю это определение уровня сигнала? Можно ли это на практике применить для определения качества связи между рациями?
Написал столько... Надеюсь поможете мне разобраться
3.7 наверное можно 3.6 походу да 3.5 по идее фвч нужен чтобы ctcss не пролазил на выход, фнч чтобы меньше шипело на высоких частотах, вполне может быть полезно
SQ это в чистом виде шумоподавление (нет сигнала - запираем выход), а CTCSS и прочее - свой-чужой (точнее чтобы не слышать чужих), могут работать и параллельнло
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Заголовок сообщения: Re: Управление RDA1846S (Рации)
Добавлено: Вт окт 27, 2020 18:52:21
Вымогатель припоя
Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06 Сообщений: 545 Откуда: Николаев / Украина
Рейтинг сообщения:2
Спасибо всем за помощь! Работа постепенно идет. Столкнулся с небольшим непонятным моментом для меня. Исходя из таблицы: https://radiostancii.com.ua/razreshenny ... 0%BE%D0%B9. после запятой должно быть 5 символов. В то же время в даташитах на sa818 я не нашел какой-то конкретики на этот счет. Единственное - это примеры из SA818 programming manual.pdf:
3.2) Group parameters configuration Format:AT+DMOSETGROUP=BW,TX_F,RX_F,Tx_subaudio,SQ,Rx_subaudio Sample 1:AT+DMOSETGROUP=0,415.1250,415.1250,0012,4, 0013
после точки идет всего 4 разряда. Может вы мне подскажите как правильно, 4 разряда после запятой, или 5? Исходя из даташита на rda1846s переключение каналов возможно с шагом 12.5KHz и 25KHz, где 12.5K - это 5 разрядов после запятой.... А нет, 12.5K - это как раз 4 разряда. А то у меня ошибку выдает, и я не могу понять почему.
Исходя из логики SA818 programming manual.pdf: 0 - означает что команда принята, и ошибок нет, 1 - означает что есть ошибка. Получается +DMOSETGROUP:1 - ошибка? Вообще по команде DMOSETGROUP нет никакого описания относительно ошибок. Даже не знаю от чего отталкиваться. Причем если повторно отправить команду, то в ответ получаю "+DMOERROR" - этого ответа тоже нигде не могу найти... Может вы подскажите, почему модуль выдает ошибку?
Вот так выглядит функция отправки настроек:
Код:
bool SA818::applyConfig() { char buffer [50];
int cmdsize = 15; char verif[cmdsize+1] = {'+','D','M','O','S','E','T','G','R','O','U','P',':','0','\r','\n'}; char buff[cmdsize*2]; int i = 0;
long start = millis(); while((start + SA818_CONTACT_TIMEOUT) > millis()) { if(i == 0) { buff[i] = Serial.read(); } if(buff[i] == verif[0] || i>0) { delay((SA818_SERBPS / 1000) * 2 ); //Makes sure that the bit has time to come. Espetially that the implementation is wierd
Добавлено after 1 hour 4 minutes 19 seconds: Только что перепроверил. Попробовал отправить команду (4 знака после запятой): AT+DMOSETGROUP=1,433.3500,433.3500,0000,2,0000 в ответ получил: +DMOSETGROUP:0 Получается модулю частоту можно задать только с 4 знаками после запятой. Вопрос в том, как быть с PMR частотами, где есть 5й знак после запятой?
P.S. С переключением каналов с шагом 12.5KHz и 25KHz я напутал, 12.5KHz как раз входит в состав 4-х символов после запятой.
Не смотря на то, что канальный шаг на PMR - 12,5кГц, тем не менее, каналы сдвинуты относительно общей сетки на 6,25кГц (т.е. первый канал это 446006,25кГц) и если синтезатор имеет минимальный шаг 12,5кГц, то он в эти частоты просто не попадет
Заголовок сообщения: Re: Управление RDA1846S (Рации)
Добавлено: Чт окт 29, 2020 22:27:41
Вымогатель припоя
Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06 Сообщений: 545 Откуда: Николаев / Украина
Рейтинг сообщения:0
Ясно. Попробую сделать две рации и буду пробовать. Пока что собрал одну. Начал ее тестировать. Столкнулся с двумя проблемами: 1) по непонятным причинам МК АТМЕГА328 иногда "зависает", причем не просто зависает, а еще и отключает дисплей. Обычно при зависании МК изображение на OLED дисплее не стирается а остается. При этом он может даже не реагировать на кнопку сброса (Ресет) или переподключение питания... Какой-то странный глюк... 2) При нажатии на кнопку "PTT" радиомодуль переходит в режим передачи, а МК напрочь зависает.... Как можно с этим бороться?
_________________ Сделать своими руками всегда интересней чем просто купить и пользоваться
При этом он может даже не реагировать на кнопку сброса (Ресет) или переподключение питания... Какой-то странный глюк...
Да уж. Я бы на самом старте программы помигал чем нибудь вроде светодиода потому как вероятнее, что реагировать то он реагирует, но виснет на полдороге не доходя даже до очистки экрана, но в этом следует убедиться.
2) При нажатии на кнопку "PTT" радиомодуль переходит в режим передачи, а МК напрочь зависает.... Как можно с этим бороться?
Развязка по питанию фильтрами, какая то правильная разводка (вплоть до отдельной платы), экранировка, watchdog.
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
При нажатии на кнопку "PTT" радиомодуль переходит в режим передачи, а МК напрочь зависает.... Как можно с этим бороться?
Во первых необходимо выяснить точно причину. Скорее всего это из-за влияния излучения антенны на МК. По научному это называется "Электромагнитная совместимость" - https://ru.wikipedia.org/wiki/Электрома ... местимость
Чтобы точно это выяснить надо переключить рацию с начала на минимальную мощность передатчика, а потом на максимальную мощность передатчика. Если при минимальной мощности передатчика МК работает исправно, а при максимальной зависает, то это однозначно плохая "Электромагнитная совместимость".
Как перевести на минимальную мощность ? Рация построена на модуле SA818-U. А сам модуль SA818-U построен на чипе RDA1846S, который в свою очередь имеет на выходе регулируемый усилитель мощности.
Внешний усилитель находится в модуле SA818-U - https://aliexpress.ru/item/32224669738.html Как пишут на сайте максимальная мощность модуля SA818-U "Высокая/низкая мощность опционально (500 МВт)-1 Вт"
Заголовок сообщения: Re: Управление RDA1846S (Рации)
Добавлено: Пт окт 30, 2020 17:26:03
Вымогатель припоя
Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06 Сообщений: 545 Откуда: Николаев / Украина
Рейтинг сообщения:0
Morroc писал(а):
Я бы на самом старте программы помигал чем нибудь вроде светодиода потому как вероятнее, что реагировать то он реагирует, но виснет на полдороге не доходя даже до очистки экрана, но в этом следует убедиться.
Это я делал. Изначально проверял с программой где есть все настройки для передатчика, менюшка, кнопки. Все работает, дисплей отображает, кнопки работают, настройки в модуль передаются и ответ от модуля передатчика принимается. Все работало до тех пор пока в код не добавил Включение Передачи и проверка RSSI (что-то вроде уровня сигнала). Стоит только радиомодулю начать передачу, то МК сразу зависает, даже на кнопку перезагрузки не реагирует. При этом сам радиомодуль находится в режиме передачи и не отключается так как МК завис, и все пины управления передатчиком остаются в неизменном состоянии. И на сброс не реагирует... Это не проблема в питании. По крайней мере я думаю что проблема не в этом, так как если бы МК "глючило" от скачков напряжения или помех, то на Reset от бы реагировал и перезагружался. Может что-то "забивает" тактирование? Жаль кварц нечем проверить. У меня есть мини осциллограф DSO150, но им не проверить, есть генерация на кварце или нет. Потыкал им... а толку, он все равно не показывает есть генерация или нет. Единственное что обнаружил: при нормальной работе на контактах XTAL1 и XTAL2 есть высокий уровень. Как только появляется проблема зависания то на XTAL1 есть высокий уровень, а на XTAL2 - ноль.
roman.com писал(а):
надо переключить рацию с начала на минимальную мощность передатчика
Все тесты провожу именно на минимальной мощности.
_________________ Сделать своими руками всегда интересней чем просто купить и пользоваться
Ааа. Не реагирует на сброс только когда передатчик работает ? По питанию не скачки, а вч наводки. У вас это как смонтировано ? Если передачик отдельно, то питание к нему и сигнальные провода (отдельно) можно намотать, на ферритовые кольца в несколько витков, а может и 2-3 защелки с ферритом хватит. Хорошо бы в металлическую коробку засунуть чтобы антенна вся снаружи была (соединить с корпусом можно около антенного разьема), если глючить перестанет то более менее терпиио все.
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Эта схема может спокойно работать от внутреннего RC-генератора 8 МГц.
Morroc писал(а):
По питанию не скачки, а вч наводки.
Передатчик на минимальной мощности... На минимальной мощности наводок быть не может. А кака минимальная мощность кстати ? )) Можно отключить питание усилителя мощности для проверки...
Опять ферритовые кольца )) Ещё с радиореле не разобрались)) В нормальных усилителях питание подаётся через дроссели и проходные конденсаторы.
Добавлено after 2 minutes 1 second: RESET не помогает и watchdog не спасает... ууу... тяжёлый случай))
Еще не совсем понятно по настройкам Tx_subaudio,SQ,Rx_subaudio. В чем разница между Tx_subaudio,SQ и Rx_subaudio? Какими значениями их нужно выставлять? Это же все вроде как шумоподавление? Или настройки нужно подбирать "интуитивно"?
почитайте чо такое вообще в принципе CTCSS, CDCSS и Squelch - в мануале на чип подробности опущены, ибо это общая информация и предполагается, что пользователь уже в курсе.
forfrends писал(а):
Исходя из даташита на rda1846s переключение каналов возможно с шагом 12.5KHz и 25KHz, где 12.5K - это 5 разрядов после запятой.
я, честно говоря, не вижу в даташите вообще никаких ограничений на выставляемую частоту, кроме как границ рабочего диапазона чипа.
forfrends писал(а):
Вопрос в том, как быть с PMR частотами, где есть 5й знак после запятой?
имхо опускать последний знак, не сделают там погоды эти 50 герц. Если глянуть на водопад какойнить sdr-ки на диапазонах таких раций, то видно, что частоты китайских пластмассок немного гуляют туда-сюда, и ничо, все работает.
рекомендую таки попробовать завестись в PMR диапазоне, LPD обычно сильно засран. Для сравнения, LPD - куча устройств чего-то куда-то передают PMR - только рации тут кстати как раз видно, как слева передатчик плавает
Опять ферритовые кольца )) Ещё с радиореле не разобрались)) В нормальных усилителях питание подаётся через дроссели и проходные конденсаторы.
Да. А в любительских можно за 5 минут сделать другой, менее технологичный, но рабочий вариант. Спасает даже если антенну с высоким КСВ подключить к передатчику и от этого начинают USB мышки отваливаться, колонки гудеть, мониторы моргать... Но это, конечно, если при нормальном КСВ все работает нормально. Не панацея.
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
вопрос спорный... при плохом КСВ много гармоник... а при хорошем КСВ больше мощность излучения. врубаешь "шарманку" ватт этак 20 и более... и всё в доме вырубается)) А если отключить П-контур и антенну прямо к аноду 1200 вольт... то всё вырубается ещё и у соседей... прикольно))
Заголовок сообщения: Re: Управление RDA1846S (Рации)
Добавлено: Вс ноя 01, 2020 23:08:53
Вымогатель припоя
Карма: 1
Рейтинг сообщений: 10
Зарегистрирован: Вс дек 30, 2012 00:32:06 Сообщений: 545 Откуда: Николаев / Украина
Рейтинг сообщения:0
Передатчики, частоты, ВЧ помехи с этим связанные - все это для меня темный лес. Никогда прежде с передающей аппаратурой не работал. Да и переделывать/перепаивать печатку тоже как-то не хотелось. В общем, почесал я затылок, да и перевел на работу от внутренних 8 Мгц. roman.com правильное замечание сделал. Обвязку МК я использовал из Arduino Pro Mini, по этому и поставил кварц на 16, хотя уже и сам начал понимать что он ловит наводки. Вот небольшой видео отчет: https://youtu.be/MvJPRiZNPF4 осталось подправить "глюк" индикатора уровня аккумулятора и со звуком разобраться. А так же сделать индикацию если есть входящий вызов. Кому интересно, прикрепляю файлы проекта (скетч и библиотека)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения