Форум РадиоКот https://radiokot.ru/forum/ |
|
Управление RDA1846S (Рации) https://radiokot.ru/forum/viewtopic.php?f=28&t=173149 |
Страница 1 из 3 |
Автор: | forfrends [ Вт окт 06, 2020 12:45:29 ] |
Заголовок сообщения: | Управление RDA1846S (Рации) |
Всем привет! Хочу сделать рации с SA818-U на базе RDA1846S. https://aliexpress.ru/item/32224669738.html Все необходимые детали уже есть в наличии. Решил сделать управление радиомодулем при помощи Atmega328 + OLED дисплей (на котором будет отображаться текущая частота). Подключал все по этой схеме: ![]() Стал искать документацию на радиомодуль RDA1846S, и что-то ничего не могу найти. Точнее есть много файлов с каким-то общим описанием, но как управлять этим радиомодулем - не понятно. Нигде не нашел ни примера передаваемых данных, ни даже настроек битрейта для UART... Может вы мне поможете? На какой скорости должен работать UART? Какие команды нужно передавать, и что должен возвращать радиомодуль? |
Автор: | Wladimir_TS [ Вт окт 06, 2020 13:38:02 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Хммм до сего момента думал, что гуглить не умею от слова никак... но не один я такой видать на свете белом, да ультрафиолетовом... https://www.qsl.net/ta2ei/devreler/sa81 ... manual.pdf |
Автор: | roman.com [ Вт окт 06, 2020 13:40:10 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Набираем в гугле / яндекс... SA818... качаем даташит... Получаем - https://docviewer.yandex.ru/view/0/?pag ... J9&lang=en forfrends писал(а): Нигде не нашел ни примера передаваемых данных, ни даже настроек битрейта для UART... Вложение: Инструкции... на АТ командах)) Вложение: И т.д.... |
Автор: | forfrends [ Пт окт 09, 2020 18:34:00 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Спасибо! "А ларчик просто открывался"... надо было поискать для SA818 а я искал для RDA1846S... Начал смотреть по SA818 - информации много, даже есть готовые библиотеки для Ардуино! Вот на пример: https://github.com/darkbyte-ru/SA818 Я прошу помощи в том чтобы правильно написать скетч. Я недавно перенес несколько микроинсультов и мне крайне сложно сосредоточиться и разобраться в том что и как ![]() Читаю текст, изучаю примеры, но никак не могу это все понять и удержать в памяти... Хотя раньше без проблем читал даташиты и по ним писал код... Вот схема моего проекта, его я создал давненько, уже на руках есть печатные платы: ![]() ![]() ![]() Проект я создавал в EasyEDA: https://easyeda.com/igor.silenock/rda1846s "Мозги" - 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 я так понимаю это уровень шумоподавления? |
Автор: | roman.com [ Пт окт 09, 2020 19:17:35 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
forfrends писал(а): На что влияет BW (Band width 12.5/25KHz)? Какая разница между 12.5 и 25KHz? Шаг сетки частот. Не знаю как на Украине (давно там не был), а в России разрешены два диапазона частот (только для личной связи, без регистрации): 1- LPD433 - 69 каналов. Шаг сетки частот 25 кГц. - https://ru.wikipedia.org/wiki/LPD433#Канальная_сетка 2- PMR446 - 8 каналов. Шаг сетки частот 12.5 КГц. - https://ru.wikipedia.org/wiki/PMR446#Частотный_ресурс В зависимости от того, в каком диапазоне работаете, такой шаг сетки частот и устанавливайте. ![]() CTCSS и CDCSS - шумодав: тональной и цифровой. ![]() P.S. С Ардуино не работаю. Тем более с готовыми библиотеками. Только свои ! )) |
Автор: | Garryadmin [ Пт окт 09, 2020 23:30:22 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
С Ардуино не работаю. Тем более с готовыми библиотеками. Только свои ! )) Очень правильный поход, поддерживаю! Хотя для начинающих Ардуино дает возможность быстрого "вкуривания" принципов работы и программирования МК, и при этом позволяет "не отбить охоту" этим заниматься ![]() А вот даташиты в любом случае нужно внимательно изучать, может даже не только те которые продавец предоставляет, а еще и покопаться в том из чего подобные модули состоят. К чему я это всё? А к тому, что очень желательно проверить (поэкспериментировать) вот с этим: 2- PMR446 - 8 каналов. Шаг сетки частот 12.5 КГц. Не смотря на то, что канальный шаг на PMR - 12,5кГц, тем не менее, каналы сдвинуты относительно общей сетки на 6,25кГц (т.е. первый канал это 446006,25кГц) и если синтезатор имеет минимальный шаг 12,5кГц, то он в эти частоты просто не попадет ![]() ![]() |
Автор: | forfrends [ Вс окт 11, 2020 15:36:48 ] | ||
Заголовок сообщения: | Re: Управление RDA1846S (Рации) | ||
Спасибо. Немного понятнее стало. Нашел вот такую информацию: https://radiostancii.com.ua/razreshenny ... 0%BE%D0%B9. Вот настройки для 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 Переводчик выдал набор буков ![]() Страница 7: 3.7) Read RSSI Я так понимаю это определение уровня сигнала? Можно ли это на практике применить для определения качества связи между рациями? Написал столько... Надеюсь поможете мне разобраться
|
Автор: | Morroc [ Пт окт 16, 2020 11:15:04 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
3.7 наверное можно 3.6 походу да 3.5 по идее фвч нужен чтобы ctcss не пролазил на выход, фнч чтобы меньше шипело на высоких частотах, вполне может быть полезно SQ это в чистом виде шумоподавление (нет сигнала - запираем выход), а CTCSS и прочее - свой-чужой (точнее чтобы не слышать чужих), могут работать и параллельнло |
Автор: | forfrends [ Вт окт 27, 2020 18:52:21 ] | |||
Заголовок сообщения: | Re: Управление RDA1846S (Рации) | |||
Спасибо всем за помощь! Работа постепенно идет. Столкнулся с небольшим непонятным моментом для меня. Исходя из таблицы: 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 разряда. А то у меня ошибку выдает, и я не могу понять почему. Отправляю команду:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ответ от модуля: AT+DMOCONNECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +DMOCONNECT:0 AT+DMOSETGROUP=1,433.35000,433.35000,0000,2,0000 . . . . . +DMOSETGROUP:1 AT+DMOSETGROUP=1,433.35000,433.35000,0000,2,0000 . . . . . +DMOERROR AT+DMOSETVOLUME=4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <0>:+DMOSETVOLUME:0 AT+SETFILTER=0,0,0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +DMOSETFILTER:0 AT+SETTAIL=1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .+DMOSETTAIL:0 Исходя из логики 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; sprintf(buffer, "AT+DMOSETGROUP=%d,%s,%s,%04d,%d,%04d\r\n", _CONF_bandwidth, _CONF_TXfreq, _CONF_RXfreq, _CONF_TXCTCSS, _CONF_squeltch, _CONF_RXCTCSS); Serial.print(buffer); Serial.flush(); 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 i++; buff[i] = Serial.read(); if(buff[i] != verif[i]) { return false; } if(i >= cmdsize) { return true; } } } return (start + SA818_CONTACT_TIMEOUT) < millis(); } Добавлено 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-х символов после запятой.
|
Автор: | Garryadmin [ Вт окт 27, 2020 23:53:20 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Вопрос в том, как быть с PMR частотами, где есть 5й знак после запятой? Это скорее всего как раз то о чем я вам писал ранее :Не смотря на то, что канальный шаг на PMR - 12,5кГц, тем не менее, каналы сдвинуты относительно общей сетки на 6,25кГц (т.е. первый канал это 446006,25кГц) и если синтезатор имеет минимальный шаг 12,5кГц, то он в эти частоты просто не попадет Так что скорее всего каналы PMR для вас закрыты ![]() |
Автор: | forfrends [ Чт окт 29, 2020 22:27:41 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Ясно. Попробую сделать две рации и буду пробовать. Пока что собрал одну. Начал ее тестировать. Столкнулся с двумя проблемами: 1) по непонятным причинам МК АТМЕГА328 иногда "зависает", причем не просто зависает, а еще и отключает дисплей. Обычно при зависании МК изображение на OLED дисплее не стирается а остается. При этом он может даже не реагировать на кнопку сброса (Ресет) или переподключение питания... Какой-то странный глюк... 2) При нажатии на кнопку "PTT" радиомодуль переходит в режим передачи, а МК напрочь зависает.... Как можно с этим бороться? |
Автор: | Morroc [ Чт окт 29, 2020 23:18:44 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
При этом он может даже не реагировать на кнопку сброса (Ресет) или переподключение питания... Какой-то странный глюк... Да уж. Я бы на самом старте программы помигал чем нибудь вроде светодиода потому как вероятнее, что реагировать то он реагирует, но виснет на полдороге не доходя даже до очистки экрана, но в этом следует убедиться. 2) При нажатии на кнопку "PTT" радиомодуль переходит в режим передачи, а МК напрочь зависает.... Как можно с этим бороться? Развязка по питанию фильтрами, какая то правильная разводка (вплоть до отдельной платы), экранировка, watchdog. |
Автор: | roman.com [ Пт окт 30, 2020 00:54:42 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
forfrends писал(а): При нажатии на кнопку "PTT" радиомодуль переходит в режим передачи, а МК напрочь зависает.... Как можно с этим бороться? Во первых необходимо выяснить точно причину. Скорее всего это из-за влияния излучения антенны на МК. По научному это называется "Электромагнитная совместимость" - https://ru.wikipedia.org/wiki/Электрома ... местимость Чтобы точно это выяснить надо переключить рацию с начала на минимальную мощность передатчика, а потом на максимальную мощность передатчика. Если при минимальной мощности передатчика МК работает исправно, а при максимальной зависает, то это однозначно плохая "Электромагнитная совместимость". Как перевести на минимальную мощность ? Рация построена на модуле SA818-U. А сам модуль SA818-U построен на чипе RDA1846S, который в свою очередь имеет на выходе регулируемый усилитель мощности. Вложение: Выходная мощность RDA1846S регулируется в диапазоне от -2 до +8 dBm. В ваттах это от 0,000.631 до 0,006.310 Ватт. Вложение: Для получения на выходе 1 Ватт используется внешний усилитель Вложение: Внешний усилитель находится в модуле SA818-U - https://aliexpress.ru/item/32224669738.html Как пишут на сайте максимальная мощность модуля SA818-U "Высокая/низкая мощность опционально (500 МВт)-1 Вт" Вложение: Короче... Должна быть инструкция для регулятора выходной мощности рации... Типа такой... AT+DMOSETPOWER=1,2,3,4,... Или похожей... )) Если при минимальной мощности рация работает исправно, то дальше переходим к плану "Б"... )) |
Автор: | forfrends [ Пт окт 30, 2020 17:26:03 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Morroc писал(а): Я бы на самом старте программы помигал чем нибудь вроде светодиода потому как вероятнее, что реагировать то он реагирует, но виснет на полдороге не доходя даже до очистки экрана, но в этом следует убедиться. Это я делал. Изначально проверял с программой где есть все настройки для передатчика, менюшка, кнопки. Все работает, дисплей отображает, кнопки работают, настройки в модуль передаются и ответ от модуля передатчика принимается. Все работало до тех пор пока в код не добавил Включение Передачи и проверка RSSI (что-то вроде уровня сигнала). Стоит только радиомодулю начать передачу, то МК сразу зависает, даже на кнопку перезагрузки не реагирует. При этом сам радиомодуль находится в режиме передачи и не отключается так как МК завис, и все пины управления передатчиком остаются в неизменном состоянии. И на сброс не реагирует... Это не проблема в питании. По крайней мере я думаю что проблема не в этом, так как если бы МК "глючило" от скачков напряжения или помех, то на Reset от бы реагировал и перезагружался. Может что-то "забивает" тактирование? Жаль кварц нечем проверить. У меня есть мини осциллограф DSO150, но им не проверить, есть генерация на кварце или нет. Потыкал им... а толку, он все равно не показывает есть генерация или нет. Единственное что обнаружил: при нормальной работе на контактах XTAL1 и XTAL2 есть высокий уровень. Как только появляется проблема зависания то на XTAL1 есть высокий уровень, а на XTAL2 - ноль. roman.com писал(а): надо переключить рацию с начала на минимальную мощность передатчика Все тесты провожу именно на минимальной мощности. |
Автор: | Morroc [ Пт окт 30, 2020 18:05:57 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Ааа. Не реагирует на сброс только когда передатчик работает ? По питанию не скачки, а вч наводки. У вас это как смонтировано ? Если передачик отдельно, то питание к нему и сигнальные провода (отдельно) можно намотать, на ферритовые кольца в несколько витков, а может и 2-3 защелки с ферритом хватит. Хорошо бы в металлическую коробку засунуть чтобы антенна вся снаружи была (соединить с корпусом можно около антенного разьема), если глючить перестанет то более менее терпиио все. |
Автор: | roman.com [ Пт окт 30, 2020 18:20:30 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
А зачем в этой схеме кварц 16 МГц ? Вложение: Эта схема может спокойно работать от внутреннего RC-генератора 8 МГц. Morroc писал(а): По питанию не скачки, а вч наводки. Передатчик на минимальной мощности... На минимальной мощности наводок быть не может. А кака минимальная мощность кстати ? )) Можно отключить питание усилителя мощности для проверки... Опять ферритовые кольца )) Ещё с радиореле не разобрались)) ![]() В нормальных усилителях питание подаётся через дроссели и проходные конденсаторы. Добавлено after 2 minutes 1 second: RESET не помогает и watchdog не спасает... ууу... тяжёлый случай)) |
Автор: | Morroc [ Сб окт 31, 2020 19:53:43 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
Передатчик на минимальной мощности... На минимальной мощности наводок быть не может. Ну проверить, что зависон не софтовый совсем просто. Если не софтовый - значит так или иначе это. Опять ферритовые кольца )) Ещё с радиореле не разобрались)) ![]() В нормальных усилителях питание подаётся через дроссели и проходные конденсаторы. Да. А в любительских можно за 5 минут сделать другой, менее технологичный, но рабочий вариант. Спасает даже если антенну с высоким КСВ подключить к передатчику и от этого начинают USB мышки отваливаться, колонки гудеть, мониторы моргать... Но это, конечно, если при нормальном КСВ все работает нормально. Не панацея. |
Автор: | roman.com [ Вс ноя 01, 2020 16:58:31 ] |
Заголовок сообщения: | Re: Управление RDA1846S (Рации) |
вопрос спорный... при плохом КСВ много гармоник... а при хорошем КСВ больше мощность излучения. врубаешь "шарманку" ватт этак 20 и более... и всё в доме вырубается)) А если отключить П-контур и антенну прямо к аноду 1200 вольт... то всё вырубается ещё и у соседей... прикольно)) ![]() |
Автор: | forfrends [ Вс ноя 01, 2020 23:08:53 ] | ||
Заголовок сообщения: | Re: Управление RDA1846S (Рации) | ||
Передатчики, частоты, ВЧ помехи с этим связанные - все это для меня темный лес. Никогда прежде с передающей аппаратурой не работал. ![]() Да и переделывать/перепаивать печатку тоже как-то не хотелось. В общем, почесал я затылок, да и перевел на работу от внутренних 8 Мгц. roman.com правильное замечание сделал. Обвязку МК я использовал из Arduino Pro Mini, по этому и поставил кварц на 16, хотя уже и сам начал понимать что он ловит наводки. Вот небольшой видео отчет: https://youtu.be/MvJPRiZNPF4 осталось подправить "глюк" индикатора уровня аккумулятора и со звуком разобраться. А так же сделать индикацию если есть входящий вызов. Кому интересно, прикрепляю файлы проекта (скетч и библиотека)
|
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |