Клавиатурный датчик кода Морзе
на микроконтроллере

Понадобился как то датчик кода Морзе, я не стал изобретать велосипед и повторил готовую конструкцию RK3DOV, заслуживающую внимания своей простотой и доступностью прошивки. С разрешения автора я и публикую этот материал.  Описание этой конструкции можно найти на сайте автора по адресу: http://www.qsl.net/rk3dov 


     Передавать телеграф с клавиатуры - красиво и удобно. И компактное устройство, позволяющее это делать, пригодится как на полевом дне, так и дома (если нет компьютера). Оно было создано на основе микроконтроллера AT90S2323 от фирмы Atmel. Конструкция была успешно повторена на AT90S2313 с минимальными изменениями исходных текстов программы. В обоих вариантах размер буфера составляет 112 знаков, размер энергонезависимой памяти под макросы - 128 байт, а также возможность автоматической передачи номера QSO.

    Схема этого девайса дана на Рис.1,2 отличаются лишь различными типами микроконтроллеров. 

Что паять

В контроллере AT90S2323 есть всего 3 ноги для сообщений с внешним миром. Две из них подключаются к клавиатуре (PB0-CLOCK, PB1-DATA), а третья (PB2) используется как выход для передачи телеграфа. У AT90S2313 ног побольше, но для совместимости используются также только PB0, PB1 и PB2. Схема предельно проста - необходимая обвеска контроллера, схема гальванической развязки и защита от дурака (VD1 и VD2):




Рис. 1

 


Рис.2

       Транзистор - любой кремниевый. Кварц можно использовать любой от 1 до 10 МГц, в оригинале 4 Мгц от его частоты будет зависеть скорость передачи, устанавливаемая при включении (при желании можно подкорректировать начальное значение переменной INITSPD в программе). Схема цепи развязки не принципиальна, необходимо лишь помнить, что максимальный ток выхода контроллера - 40 мА. Можно собрать менее универсальную схему без гальванической развязки, она есть в архиве, в файле README. Микросхему можно установить на панельку, чтобы иметь восможность обновлять "софт", но лучше впаять намертво и вывести разъемчик для внутрисхемного программирования (X2). Прграммировать можно Byte Blaster'ом или простейшим программатором из пяти проводков, идущих к LPT (номера ног приведены). При программировании нужно отсоединять клавиатуру, трансивер не обязательно :-).

Сигнал Нога DIN Нога PS/2
GND 4 3
+5V 5 4
DATA 2 1
CLOCK 1 5

Соответствие сигналов клавиатуры "нового образца" - PS/2 и "старого" - DIN

Нумерация контактов разъёма PS/2 (сторона компа):

     ^
     6   5
     4     3
     > 2 1 <

 

Как этим пользоваться

Работа похожа на N6TR, но есть возможность передавать русские буквы, переключение раскладки - CapsLock. Скорость изменяется клавишами PageUp и PageDown. Передачу можно прервать в любой момент клавишей Esc.

Всякие навороченные знаки:

Клавиша Описание Как звучит
< SK ...-.-
= знак раздела -...-
+ AR .-.-.
, запятая --..--
@ "собака" .--.-.

Память

Можно записывать 4 сообщения + свой позывной, который можно использовать в сообщениях:

F5 - собственный позывной
F6 - передает 'DE <СОБСТВЕННЫЙ ПОЗЫВНОЙ>'
F1..F4 - используйте на своё усмотрение

Запись происходит следующим образом:

1) Нажать '~'(она же 'Ё'). Услышите 'REC'.
2) Выбрать место для сообщения: F1(32), F2(32), F3(32), F4(16) или F5(16) - в скобках максимальная длина сообщения. Услышите 'R' (если всё нормально) или '?' (если нажали что-то не то) и запись прервется.
3) Далее набрать текст не болше указанной выше длины (если набрать больше, будет сообщение AR и запись закочится) и в конце нажать 'Enter' (при наборе нет самоконтроля). Как подтверждение услышите 'OK'.
4) Всё. Прослушать записанное можно нажав соответствующую Fn.

Например чтобы записать общий вызов на F1 нужно нажать:

~ 'REC'
F1 'R'
CQ CQ CQ DE {F5} {F5} {F5} CQ PSE K{ENTER} 'OK'


Номер QSO

Есть функция учета номера QSO. Для его воспроизведения служит клавиша F8. Можно вставлять в макросы F1 - F4, так же, как и позывной (F5). Для увеличения номера на 1 служит клавиша PrintScreen, её также можно использовать в макросах. Начальная установка номера - ScrollLock. На вопрос NR нужно ввести номер и нажать Enter.

Вот для примера возможная кофигурация:

F1(CQ) : CQ TEST DE {F5} {F5} {F5} TEST
F2(CQ Ex) : _DE UT2HI {F8}
F3(Tu) : TU{PrintScreen} {F5} TEST
F4(S&P Ex): TU 5NN {F8}{PrintScreen}
F5(Call) : RK3DOV

Файлы

Последняя версия прошивки. Подробная информация о версиях в файле README-*.txt. В архиве лежат:

1) Исходники (для двух вариантов - AT90S2323 и AT90S2313)
2) Скомпилированная программа в формате *.HEX (тоже для двух вариантов)
3) Файлы README-*.txt в форматах KOI-8, DOS и Windows с описанием и простейшей схемой (без гальванической развязки и защиты).

cwkbd v3.2 - 24 kB (21 февраля 2004)


Фото


авторский вариант


А это мой вариант. На фото видно с передней стороны два индикатора работы устройства, красный - нажатие РТТ, зеленый - включение питания, слева - гнездо для подключения клавиатуры, сзади гнезда  Мой вариант печатки здесь - схема немного видоизменена сделан выход CW манипуляции на электромагнитное реле.

 P.S.

О том как разрабатывать программы для AVR и вбивать их в контроллер можно почитать здесь. Там же есть и все необходимый софт. Есть отзывы от собравших эту штуку. Если кто-нибудь ещё сделает себе такую, убедительная просьба также сообщить автору данной конструкции о впечатлениях! Если кто не сможет прошить микроконтроллер я выложил требуемые файлы программатора в разделе "помощь" этого сайта.

 

Дата публикации: 01.07.2007г.  


radionet