Электронный ключ с богатыми возможностями от Steven T. Elliott - K1EL
 
 
В августе 1998 года Стивен выложил для всеобщего обозрения свою оригинальную конструкцию - электронный ключ на PIC-процессоре PIC12C509A в восьмивыводном корпусе DIL-8. Подкупающая простота реализации, довольно большие функциональные возможности заставили меня обратить внимание на эту конструкцию. С тех пор прошло немало времени, однако все встречающиеся конструкции электронных ключей являются лишь "перепевками" темы Стивена.
 

 

Ключ может работать с манипуляторами любых типов, однако все его возможности проявляются именно с двухлопастными манипуляторами (так называемые "ямбические"), с независимыми контактами точек и тире и возможностью одновременного их нажатия. Все управление ключем осуществляется при помощи единственной кнопки.

Ток потребления ключа настолько мал, что в принципе возможно отказаться от применения выключателя питания. У меня лично он работает без выключения уже второй год. В качестве источника питания применена литиевая батарейка от компьютера старого (ХТ) типа на напряжение 3 вольта.


Самое интересное то, что у меня есть программы, позволяющие прекрасно обходиться и без отдельного электронного ключа. MixW, CWType, N6TR - вот далеко неполный перечень подобных программ. Огромное количество макросов - предварительно созданных типовых шаблонов-QSO на все возможные и невозможные случаи, вызываемые одним нажатием на кнопочку , допускающие разнообразные их комбинации.. Роботизация, словом. Кнопку нажал - спина вспотела. Но, видимо, не убита во мне еще тоска по тем дальним временам, когда слово "компьютер" было чем-то невообразимо далеким, фантастическим, как произведения Айзека Азимова... Опять-таки не знаю как кому, а мне гораздо приятнее принимать "живую" передачу, пускай со сбоями и ошибками, перебоями и исправлениями, чем слушать "трансмиттерную" трескотню морзянки и лишь догадываться, есть ли в этот момент мой корреспондент возле передатчика, или все это "разговор с роботом". Большое количество цифровых видов связи привело к тому, что любительский народец лихо жмет на кнопки с надписями "послать 73" или куда еще, а вот "вживую" с клавиатуры поработать - тут уж наступают проблемы. Поиск буковок на клаве занимает очень и очень много времени. Из выходного каскада дымком попахивает, принимающий уже пошел кофе заваривать, а второе слово фразы еще только начато.. Куда как проще "одолжить" у коллеги уже готовые макросы, подставить свое имя и город - и пошла писать губерния.

Вот приблизительно те аргументы, которые я привожу всем своим вопросителям: "А зачем тебе еще и `Электроник`, если компьютер рядом?" Вот и затем.. Поработать на нем..

Ведь есть люди, понимающие меня? Для них я и пишу это маленькое обозрение, они меня не осудят.

Далее я приведу принципиальную схему и краткое описание команд, выполняемых программой ключа. Желающие могут скачать и Акробат-Ридером прочитать "родной" документ руки самого Стивена "K8 Manual".

 
 
 
Вот так выглядит схема ключа, нарисованная рукой самого автора. Честное слово, я ничего не добавлял. Тут просто некуда уже добавлять, выводов свободных нет...
Бывают случаи, что в трансивере "плюс на массе". В таких случаях нужно применить иную схему ключевания. Снова видна рука автора ключа... Он же и предупреждает, что эта схема не может ключевать ток более 20 мА. За схемой для бОльших токов автор рекомендует обратиться прямо к нему.
Для защиты входов микроконтроллера от поражения статикой, от снижения воздействия высокочастотных полей Стивен рекомендует по каждому из контактов манипуляторов применить подобную схему развязки-защиты.
 

Теперь немножко о программе, зашиваемой в микросхему. Сразу хочу предупредить, микросхема эта не терпит ошибок - одноразовая! Любая неточность в подготовке файла для прошивки приведет к прогулке в сторону мусорного ведра. С микросхемой туда и без нее оттуда... Поэтому особенно внимательны будьте при установке так называемых фьюзов - флагов, указывающих в каком режиме работать контроллеру после зашивки в него программы. В данном случае применен так называемый внутренний генератор тактовой частоты, начисто отсутствует вход сброса (внутренний сброс имеется, зачем же ножку тратить на это..)

Как подготовить программу? Прежде всего скачайте все необходимое отсюда. В архиве есть два файла "call.inc" и "num.inc". Это так называемые "включаемые" файлы. В архив я также положил собственно ассемблер для контроллера и файл определений для микроконтроллера этого типа, без него не сработает.. Исходный текст программы находится в файле "Key8.asm". Самый главный (:-)) файл: "_make.bat". Его запуск и вызывает создание готового к прошивке файла в формате HEX.

Прежде всего надо в исходный текст программы ввести собственный позывной. Чтобы не лазить по листингу и выискивать что, где и как, я рекомендую открыть любым текстовым редактором файл "call.inc" и быстренько сделать в нем исправления. Буковки выделенного позывного заменить на свой собственный. Если позывной 5-ти буквенный или еще короче - обязательно дополнить до 7-й позиции END-ами. Файл сохранить.
Не знаю, как кому, но мне упорно на Киевском радиобазаре попадались микросхемы не совсем чистые. Т.е. последнее слово в них таки было зашито. Видать, это какие-то предварительно подготовленные для какого-то процесса микросхемы, но так и не дошедшие до этого процесса по вполне понятным причинам :-) Глубже я не стал разбираться, органы пусть разбираются, я не орган... Однако если в такую микросхему попытаться записать честно подготовленный материал, то запись не состоится. Из-за своей одноразовости кристалл просто не примет значения "пустых" ячеек в "занятые" места. Я применил такую "хитрость".
Предварительно читаю содержимое микросхемы, нахожу в ней записанное число,
и вношу его в файл "num.inc" текстовым редактором (Новички, внимание! "h' - это не число! Это лишь признак того, что число представлено в шестнадцатиричном формате). При ассемблировании исходного текста это число будет вставлено куда надо и прошивка микросхемы завершится благополучно (будет сравнение).
Должен предупредить, в моем программаторе фьюзы устанавливаются прямо на форме и данные для их установки вычитываются из загружаемого файла, исключая таким образом возможность их ошибочной установки. Если у вас иной программатор или фьюзы устанавливаются иным способом - обратите внимание, перед вами требуемая конфигурация. Не промахнитесь, всегда помните про мусорное ведро...

Вот, вроде, и вся подготовка. Теперь можно смело запустить на выполнение программу "_make.bat". Если все было проделано правильно, Ассемблер не должен найти ошибок и в вашей рабочей директории должны появиться файлы "rom.hex" и "rom.bin". Это и есть готовые для зашивки в микросхему файлы в формате HEX и в формате BIN. Я не знаю, в каком формате требует файлы для зашивки ваш программатор. Мой - в HEX. Но для вас батник сделал и BIN.

Если кому интересно - я давно пользуюсь программатором WilliProg с одноименной странички автора. Рекомендую. Правда, с AVR-ами и ALTERA-ми я "разбираюсь" великолепной программой Редчука (молодец!) AVREAL. Жизнь поджимает - готовлю JTAG. С Мегами уже слишком долго шить, да и прелести внутрисхемной эмуляции не последний аргумент. Но это уже не для новичков.

 
Теперь, как и обещал, краткое описание команд, выполняемых программой ключа. Возможно, не все сразу понятно, но уверяю, как только ключ появится перед вами на столе, все станет простым и ясным.
Конфигурация и загрузка памяти
Если нажать и удерживать кнопку более 2 секунд ключ ответит передачей буквы "R". Это означает, что ключ перешел в режим приема команд и вам необходимо вводить команду. Команда вводится путем передачи буквы команды манипулятором ключа. Все команды поддерживают своего рода "звуковую обратную связь", информируя вас о том, что та или иная команда выполнена или ей отказано в выполнении. В последнем случае ключ передаст символ "?".
Ниже приводится список исполняемых ключом команд и их описание:
A
Самоконтроль вкл/выкл. Включает/выключает звуковой контроль на ключе.
C
Ввод своего позывного. После ввода этой команды ключ отвечает одиночной точкой, которая служит приглашением к вводу первой буквы позывного. После ввода буквы позывного ключ снова выдает одиночную точку, вводится следующая буква и так далее, пока не будет введен весь позывной. Ввод завершится либо при достижении максимальной длины позывного в 8 символов, либо путем ввода символа точки (ти-та-ти-та-ти-та).
D
Передает содержимое буфера пользователя. По первому включению никакой записи нет - буфер пользователя пуст.
F
Эта команда применяется для изменения межбуквенного интервала. После приема этой команды ключ готов принять одиночную цифру от 0 до 9. Эта цифра указывает количество дополнительных интервалов, длительностью в одну точку, на которые будет увеличен межбуквенный интервал.
I
Переключает между режимами "Ямбик A" и "Ямбик B". Во втором режиме после отпускания обеих манипуляторов передается дополнительно точка либо тире. Смена режимов подтверждается передачей букв "A" или "B".
K
Переключает между режимами "электронный ключ" и "обыкновенный ключ". В режиме "обыкновенный ключ" к центральному контакту и одному из контактов манипулятора можно подключать обычный ключ-коромысло. Рабочий контакт манипулятора при этом можно выбрать командой "X".
L
Загрузка фразы в буфер пользователя. Работает совершенно аналогично команде "C", с той лишь разницей, что длина фразы не должна превышать теперь уже 15 символов. Если вы ошибочно ввели команду "C" или "L" - передайте символ "точка" вместо первого символа и команда будет проигнорирована. Если же вам нужно "очистить" буфер, введите символ "пробел" сразу же после ввода команды (просто дождитесь очередной бип-точки от ключа) и введите символ "точка" (ти-та-ти-та-ти-та).
M

Выбор текущего оперативного текста. После выдачи этой команды, ключ начинает передавать "меню", перебирая символьные комбинации, означающие соответствующие тексты. Ниже приводится таблица комбинаций и соответствующих им оперативных текстов.

CQ : CQ CQ CQ DE X1XX X1XX K

CQL : CQ CQ CQ DE X1XX X1XX CQ CQ CQ DE X1XX X1XX K

DX : CQ DX CQ DX DE X1XX X1XX DX K

CQC : (буфер пользователя) DE X1XX X1XX K

MSG : (буфер пользователя)

Назначение одного из этих пяти сообщений текущим производится следующим образом. Допустим вам надо применять CQ DX текст. Вы должны дождаться, пока ключ не выдаст CQL и в паузе после этого замкнуть один из манипуляторов. Ключ ответит передачей символа "R" и с этого момента кратковременное нажатие кнопки будет вызывать передачу текста "DX".

P
Команда вызывает начало передачи тренировочного текста. Текст абсолютно смешанный - встречаются все символы без исключения. Разбиения на группы нет.
S
Установка скорости. Похоже на выполнение команд "C" или "L". После первого бип-сигнала надо ввести первую цифру скорости и после второго бип-сигнала передать вторую цифру. Если выбранная скорость состоит из одной цифры, все равно надо вводить две, первая из которых должна быть ноль. Ноль можно передавать в сокращенной форме в виде буквы "T". Подтверждение окончания ввода скорости ключ выдаст уже на новой скорости.
T
Переводит электронный ключ в режим непрерывного нажатия до первого замыкания любого из манипуляторов. Удобно для настройки передатчиков.
U
Переключает режим "автопробел вкл-выкл". Как работает "автопробел"? Если вы во время передачи задержали передачу следующего знака на время, превышающее одну точку, следующий знак будет задержан ровно на межсимвольный интервал в три точки. Т.к. в ключе имеется входная память по манипуляторам, то во время отработки этого интервала нажатия в ту или иную сторону не пропадают, а запоминаются и передача следующего символа проходит корректно. Этот режим придает передаче на ключе качество "трансмиттерного" сигнала. При переключениях ключ отвечает символом "A" при переходе в режим "автопробел" и символом "N" при выходе из него.
W
Ключ информирует о том, какая сейчас установлена скорость.
X
Смена контактов манипулятора (точка-тире) "под руку" оператора.
Z
Имеются два варианта поведения ключа при одновременном нажатии обеих манипуляторов (касается ямбического исполнения механики ключа). Один из них является чисто ямбическим и приводит к поочередной передаче последовательности "точка-тире", пока манипуляторы не будут отпущены. Альтернативным вариантом является передача последовательности символов "DE X1XX" при сведении манипуляторов. Если вы немного потренируетесь, вы найдете это естественным продолжением передачи буквы "D" с последующим подведением манипулятора точки. Возможно не всем, но это может оказаться удобным. Z-команда переключает между этими двумя вариантами. При переходе в "DE" вариант ключ подтверждает это передачей символа "D", а при переходе в классический ямбический - символ "I".
Во время конфигурации и установки параметров выход на манипуляцию передатчика заблокирован и работает только самоконтроль. Если режим самоконтроля отключен командой "A", то на время настройки и установки он автоматически включится.