Лучшее из возможного!

Размер шрифта:  Aa Aa Aa Aa Aa



SDR приемник RSP1A от SDRplay

Часть 2. Валкодер для SDR.

Валкодер для SDR

В первой части статьи я сделал краткий обзор и описал некоторые особенности SDR приемника RSP1A от SDRplay. А сейчас расскажу о том, как сделать для него валкодер. Все-таки мышкой настраиваться на радиостанцию, особенно в режиме SSB не очень удобно. Для этого приемника я использую программное обеспечение SDRuno, которое можно скачать с сайта SDRplay: www.sdrplay.com/downloads/. SDRuno разработали программисты той же фирмы, что и сам приемник. Кому, как не им знать все тонкости и особенности аппаратной реализации своего детища.

Как обычно, вначале я решил выяснить, а может быть все уже давно придумано. Поиск в Интернет выдал несколько вариантов реализации валкодера (энкодера) для SDR приемника.

Первый вариант - валкодер с CAT интерфейсом. Работать должен, CAT интерфейс есть у всех SDR, в том числе поддерживает его и программа SDRuno. Однако протокол CAT относительно медленный, он не предназначен для валкодеров. В большинстве случаев период опроса аппаратуры по этому интерфейсу - не чаще нескольких раз в секунду. Да и CAT интерфейс может потребоваться для других целей, например, для связи с программой WSJTX при наблюдении за станциями, работающими FT8.

Знаю, что есть виртуальные разветвители COM порта, которые позволяют подключить к одному порту несколько программ. Только вот в описании этих разветвителей ничего не говорится о том, что будет, если все программы начнут слать данные в порт одновременно. А ничего хорошего не будет, это все равно, что несколько станций передают в режиме PSK на одной частоте.

Второй вариант - при вращении ручки валкодера происходит эмуляция нажатия горячих клавиш на дополнительной USB клавиатуре. CAT интерфейс свободен, но быстродействие под вопросом, нужно проверять. Серьезный недостаток заключается в том, что должно быть активным окно, в котором производится управление частотой. Если окно SDR программы свернуть или перевести фокус на другое окно, валкодер перестанет работать.

Третий вариант - вторая мышка, на колесо прокрутки которой каким-то образом насаживается ручка перестройки по частоте. Быстродействия должно хватить, но проблема с активным окном остается. Да и конструктивная реализация только кажется простой. Разве, что вместо штатного колеса подключить другой валкодер.

Дальнейшие поиски привели к фирменному продукту «TM-2 Concole for SDR Radio (TMATE2)» от итальянской фирмы ELAD: https://shop.elad-usa.com/.

Tmate2 от ELAD

На первый взгляд неплохая вещь. Кроме основного валкодера есть еще два дополнительных и несколько кнопок. Они служат для регулировки громкости, полосы пропускания, изменения шага перестройки и других целей. Есть встроенный LCD дисплей, на котором отображается частота настройки и несколько других параметров. Причем поддержка этого контроллера встроена в программу SDRuno. Подключается он к USB, установка дополнительных драйверов не требуется.

Однако при более детальном знакомстве с описанием обнаружились некоторые особенности, которые охладили мой восторг. Дисплей монохромный, малоконтрастный и очень миниатюрный (65x22 мм). Не секрет, что большая часть радиолюбителей отнюдь не молоды, а зрение к старости, увы, ухудшается. Основной валкодер имеет всего 32 шага на оборот, а это очень мало.

Но больше всего поразила цена от производителя - 272$. Для приемника стоимостью 109$ покупать простейшую "крутилку" с весьма посредственным основным органом управления за 272$ - это нонсенс. Неудивительно, что информации о Tmate2 очень мало, а на русском языке я вообще ничего не нашел. Но идея мне понравилась.

Так что, как обычно, пришлось делать все своими руками. Ну и иногда подключать голову. Я поставил задачу - сделать упрощенный функциональный аналог Tmate2, обеспечив совместимость с существующим программным обеспечением и драйверами. Если бы у меня был прототип, все решалось бы элементарно просто. Но его, разумеется, не было.

От встроенного дисплея я решил отказаться. Если уж делать дополнительный дисплей, то он должен быть большим, графическим, цветным. А это, во-первых, дорого, а во-вторых, пришлось бы долго разбираться с выводом информации на него. Да и все равно перед глазами оператора SDR находится экран монитора, на котором присутствует вся необходимая информация.

А вот на основном валкодере я решил не экономить. Благо, что на Aliexpress можно приобрести неплохой оптический энкодер за 10-15$. Число шагов на оборот можно выбрать от 100 до 1000. Ну, 1000 - это, наверное, слишком много, а вот 200 или 400 будет в самый раз. Задаем в поиске на Aliexpress «optical rotary encoder», выбираем приемлемый по цене, с питанием от 5 вольт и выходами NPN, т.е. с открытым коллектором, 200 или 400 ppr (импульсов на оборот). Я заказал на 400.

Там же заказываем простые механические энкодеры с кнопкой по цене примерно 1,5-2$ за 5 штук. Нужно 2 штуки, но пусть будут запасные. Ну и дешевые кнопки можно заказать, их потребуется 7 штук. Тут тоже лучше иметь несколько штук запасных на всякий случай.

Самое главное не упомянул - контроллер. Оптимальный выбор - STM32F103C8T6. Этот контроллер имеет полноскоростной интерфейс USB и 4 таймера-счетчика, которые могут работать с энкодерами. Так что заказываем «Development Board Module STM32F103C8T6». Это плата, на которой запаян контроллер со всей необходимой обвязкой. Стоит она всего 1,5-2$.

Опционально можно заказать еще микросхему защиты USB порта USBLC6-2SC6. 10 штук за 1$. Итого получается около 20$, даже если прибавить стоимость ручек, гнезда и кабеля USB получится в 10 раз дешевле фирменного устройства. Затраты своего времени и сил не считаем - они бесценны!

Вот такая получилась схема.

Схема валкодера для SDR

Дополнение 22.03.2021г.

Во второй версии прошивки (файл tm2_v2.hex) добавлена возможность изменять коэффициент деления шага основного валкодера. Это может потребоваться, если число шагов на оборот у используемого для перестройки по частоте энкодера будет более 400. Чтобы снизить остроту настройки, число шагов на оборот может быть программно уменьшено в 2, 4 или 8 раз установкой перемычек Jp1 (PA3) и Jp2 (PA4) на землю. Установка перемычки Jp1 (PA3) уменьшает число шагов на оборот в 2 раза, Jp2 (PA4) – в 4 раза. Установка обоих перемычек делит количество шагов на 8. Если не устанавливать ни одну из перемычек, количество шагов на оборот не изменится, т.е. все будет работать аналогично первой версии прошивки (файл tm2.hex).

На плате модуля с контроллером не предусмотрены места для его крепления в корпусе, поэтому пришлось припаять его к «материнской» плате, а ее, в свою очередь, закрепить в корпусе. В принципе, USB кабель можно подключить к разъему микро USB, установленному на плате модуля. В этом случае элементы R1, R2, DD1 не нужны. Однако, очень уж ненадежный этот микро USB, поэтому я установил стандартный большой разъем типа USB-B. Модуль закреплен на плате без сверления отверстий, я просто отогнул штырьки в сторону и припаял их к контактным площадкам. Провода от кнопок и валкодеров припаяны к штырькам на плате модуля.

Валкодер для SDR в корпусе

Готового корпуса подобрать не удалось, пришлось, как обычно, спаять из фольгированного гетинакса. Фольга играет роль экрана, к ней также припаяна плата с контроллером. Кнопки я расположил на верхней стенке корпуса, справа налево - F1, F2...F7. Их назначение для SDRuno ver.1.40.2 следующее:
F1 - «Step-» Уменьшение шага перестройки
F2 - «Step+» Увеличение шага перестройки
F3 - «LOCK» Блокировка перестройки частоты
F4 - «MUTE» Отключение выхода по НЧ
F5 - «RX Mode» Вид демодуляции AM, SAM, CW ...
F6 - «VRX Sel» Выбор виртуального приемника
F7 - «LO LOCK» Переключение LO LOCK

Энкодер 1 (левый), по умолчанию регулятор громкости, энкодер 2 - регулятор полосы пропускания фильтра по НЧ, 3-й энкодер (правый) – основная перестройка по частоте. Кнопки первого и второго энкодеров позволяют изменять назначение этих энкодеров. Функции всех кнопок и валкодеров определяются программой SDRuno. В новых ее версиях они могут быть другими.

Валкодер для SDR

Более подробно назначение органов управления описано в руководстве пользователя программы SDRuno, в разделе, описывающем Tmate2. Руководство пользователя можно скачать с сайта фирмы SDRplay: www.sdrplay.com/downloads/. Если направление вращения энкодеров не совпадет с желаемым, нужно просто поменять местами сигнальные провода от них. Оптический энкодер вращается очень легко, при малейшем разбалансе ручки управления он может самопроизвольно повернуться. Чтобы исключить это, между ручкой и передней стенкой корпуса можно проложить тонкую фрикционную прокладку, например, из фетра.

Кратко опишу, как запрограммировать контроллер. Это можно сделать двумя способами – с помощью конвертера USB-COM и программатором ST-Link. О первом способе я рассказал в описании «Аппаратного менеджера паролей», поэтому сейчас остановлюсь на втором.

Подключение ST-Link

Программатор ST-Link можно приобрести на Aliexpress, его стоимость сопоставима со стоимость конвертера USB-COM. Для подключения программатора на модуле контроллера STM32F103C8T6 есть специальный разъем. Во время программирования питание контроллера подается с программатора. Программное обеспечение можно скачать с сайта st.com.

Вместе с программой устанавливаем драйвер ST-Link, затем подключаем программатор к USB разъему компьютера, а соответствующие выводы программатора подключаем к выводам разъема на плате контроллера согласно маркировки. Запускаем программу STM32 ST-Link Utility, нажимаем кнопку «Connect». На кнопках есть всплывающие подсказки. После успешного соединения открываем файл прошивки tm2_v2.hex.

Программа ST-Link

Нажимаем кнопку «Programm verify». На открывшейся вкладке нажимаем «Start». После окончания прошивки закрываем программу и отсоединяем программатор.

При работе с программатором обнаружилась одна особенность. Если возникнет необходимость повторно загрузить прошивку tm2_v2.hex в контроллер, появляется сообщение о невозможности установить связь с контроллером. Это особенность конкретно данной прошивки tm2_v2.hex. После инициализации прерываний USB в программе, контроллер перестает выходить на связь с программатором.

В чем тут дело я так и не разобрался. Процедура программирования в данном случае будет такой. Выбираем пункт меню Target – Settings и ставим галочку «Connect under reset». Закрываем вкладку.

Установки программатора ST-Link

После этого, нажимаем и удерживаем кнопку «RESET» на плате контроллера, жмем на экранную кнопку «Connect», отпускаем кнопку «RESET». Не торопитесь, делайте эту процедуру с паузами примерно в полсекунды. Связь установлена, можно загружать прошивку, как было описано выше.

После загрузки прошивки валкодер готов к работе, подключаем его к USB порту компьютера. Если свободных портов недостаточно, можно подключить приемник RSP1A и валкодер через HUB. Только имейте в виду, что на предельных значениях частоты дискретизации в этом случае пропускной способности шины USB может не хватить. Если частота дискретизации не будет превышать 6 МГц, проблем не возникнет. Как выбрать USB HUB я уже писал здесь.

Включение сервера TM2

Дополнительных драйверов не требуется, в диспетчере устройств появилось новое HID устройство. Запускаем программу SDRuno, на главной панели нажимаем кнопку «Sett.» и в открывшемся окне устанавливаем галочки, как на рисунке. Должна появиться надпись «Tmate2 server running». Все, можно путешествовать по эфиру. Хорошего приема и 73!

Дополнение 01.05.2021г.

А это еще несколько альтернативных вариантов конструктивного исполнения корпуса от радиолюбителей, повторивших мою разработку. Очень продуманное и аккуратное изготовление! Еще несколько фотографий и независимый отзыв есть в присланном мне pdf файле. Ссылка в конце странички.

Вы можете также посмотреть видеоролик о работе приемника RSP1A с этим валкодером, ссылка в первой части статьи. Будет ли валкодер работать с другими SDR программами? Будет, если в них заложена поддержка Tmate2. Читайте описание программы SDR и фирменное описание Tmate2 от фирмы ELAD. Ссылки на скачивание двух версий прошивки контроллера, а также схемы и чертежа печатной платы в конце странички.

Worning!

Эта разработка является независимым упрощенным функциональным аналогом Tmate2, принципиальная схема и программа не имеют никакого отношения к оригиналу от фирмы ELAD. Всякое совпадение чисто случайно. Вся информация на этой страничке носит ознакомительный характер и предназначена для образовательных и исследовательских целей. Коммерческое использование запрещено. Автор не несет ответственности за любое противоправное применение и причиненный ущерб.

ra4nal@yandex.ru

© 2019-2021г.


PDF Независимый отзыв и альтернативный вариант конструктивного испонения.
ZIP Плата в Sprint Layout и схема в sPlan
ZIP Две версии прошивки STM32F103C8T6