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

Размер шрифта:  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

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

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

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

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

Валкодер для 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.hex.

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

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

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

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

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

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

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

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

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

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

Worning!

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

ra4nal@yandex.ru

© 2019г


ZIP Плата в Sprint Layout и схема в sPlan
ZIP Прошивка STM32F103C8T6