![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-07_13-49-42.jpg)
Вот решил сделать такой на пробу. Хоть и не люблю я пики, и закрытые (без исходников) прошивки*, но тут привлекла массовая повторяемость, возможность передавать с клавиатуры, 4 ячейки памяти и возможность уходить в сон, что позволяет питать устройство от маленькой батарейки долгое время. Испытаю - будет видно! На печатной плате заложено много избыточных плюшек, наверняка не все буду использовать, но пусть будет!
![](http://rm9wy.ru/cutenews/uploads/hp8/t.photo_2024-07-09_19-25-05.jpg)
09.07.2024 Очень неторопясь продвигается строительство корпуса под эту конструкцию. Такими темпами, через пару лет завершу!
* - Справедливости ради скажу - автор всё-таки поделился исходниками прошивки. Интересно посмотреть на происходящее внутри!
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-11_16-38-03.jpg)
11.11.2022 Поправив некоторые мелкие косячки в разводке дорожек печатной платы и "вкрячивания" переменного резистора, который удалось купить (рассчитывал на другой тип, но в продаже их нет, а ждать месяцы из китая невтерпёж), ключик в общем то запустился. Проблемой оказалась придуманная мною система питания процессора напряжением от резисторов подтяжки трансивера SW2013mini. А там подтяжка только 3,3 вольта.. И запаса энергии на электролите хватает на 3-4 точки или на пару тире... Попытка увеличить электролит на порядок кардинально ничего не меняет, хватает на символ - другой, а потом пищит, но трансивером уже не управляет... И львиную долю энергии сжирает светодиод индикации передачи. А отказываться от "красот" индикации не хочется. Буду придумывать варианты дальше... Самое простое - чуть модифицировать трансивер, развязав цепи ключа и 3,3 вольтового процессора трансивера диодиками и добавить резисторы подтяжки на 5 вольт, и сопротивлением чуть поменьше, чтоб обеспечить ток порядка 3-5 миллиампер (платка потребляет порядка 2,5 мА при нажатии ключа).
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-17_11-49-10.jpg)
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-17_11-49-14.jpg)
17.11.2022 Поменял электролит на ионистор, чтоб запаса энергии было поболее. Я в тестах не работаю, большого запаса не нужно.. Но тока через резисторы подтяжки всё равно мало, заряд ионистора идет оооочень долго и напряжения не хватает для устойчивого зажигания светодиода и открывания ключевого транзистора. Поэтому всё таки переделал подтяжку цепей ключа в трансивере на 5 вольт. Пришлось добавить два развязывающих диода и пару 1Ком резисторов на 5 вольтовую подтяжку. Сразу стало веселее! Ключ заряжает ионистор примерно 30 сек, а далее можно работать! При этом заряда ионистора в 0.3 Ф хватает для работы ключа даже через паузу в несколько дней.
P.S. При рассмотрении дорожек печатной платы миника выяснилось, что ключ подключается к микроконтроллеру через фильтры из резистора в 100 Ом и конденсатора в 0.01 мкФ, которых в принципиальной схеме трансивера нет... UPD - есть, я слепошарый...
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-23_20-25-51.jpg)
23.11.2022 Добавил контроллер зарядки аккумулятора. Осталось найти очень миниатюрный Li-Po аккумулятор, желательно влезающий в оставшееся место. Ёмкость чем меньше тем лучше, ибо потребление крошечное, а при работе с клавиатурой всё равно придёться питать от внешнего источника через то-же mini-USB гнездышко, что и при зарядке. Так-же заменил резистор, регулирующий ток зарядки, на 10 кОм - максимальный, допустимый в даташите на микросхему 4056 для минимального тока зарядки в 250 мА.
p.s. Кондюк - временный эмулятор аккумулятора, без него контроллер сходит с ума. Вполне возможно, в итоге, придётся добавить небольшой электролитический конденсатор на постояннку.
PPS В одной из публикаций наткнулся на даташит с несколько отличающейся табличкой выбора зарядного тока:
- 30 кОм: 50 мА
- 20 кОм: 70 мА
- 10 кОм: 130 мА
- 5 кОм: 250 мА
- 4 кОм: 300 мА
- 3 кОм: 400 мА
- 2 кОм: 580 мА
- 1,66 кОм: 690 мА
- 1,5 кОм: 780 мА
- 1,33 кОм: 900 мА
- 1,2 кОм: 1000 мА (по умолчанию)
Надо будет померять, как реально обстоят дела с этим параметром!
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2023-10-07_16-38-46.jpg)
07.10.2023 Не прошло и года, как удалось раздобыть разъёмы PS/2 на плату. Чуть чуть не подошли отверстия - футпринт под гнездо делал сам, доли милиметра не сошлись, и в итоге гнездо не ставится. Пришлось рассверливать отверстия и дремелем корректировать посадки под силовые плоские выводы экранирующего корпуса. Но это но это несложно. Проблема в том, что на клавиатуру нет никакой реакции. перепроверил разпиновку выводов - всё верно. С форума - UY1IF : "Собирал и версию с клавиатурой (не себе). Все работало. Уже не помню всех нюансов, но клавиатура подходит далеко не любого типа. Нужна более старого образца по-моему." Следуя совету, перепробовал пока две найденных заведомо рабочих клавиатуры. Пока не победил...
![](http://rm9wy.ru/cutenews/uploads/blog-img/t.photo_2023-10-25_12-02-47.jpg)
25.10.2023 Заработало! Во первых, оказались перепутаны дорожки clock и data, идущие на PS/2. Разбираться лень, я прошляпил при разводке платы, или на схеме ошибка. Пришлось порезать дорожки и поставить перемычки. Во-вторых, обнаружилась хитрая особенность взаимодествия кейера и клавиатуры - после подключения клавиатуры надо обязательно обресетить процессор, в противном случае с клавиатуры вместо отдельных символов передаёться какая то дичь! Поскольку по задумке автора, на кейере выключателя питания не предусмотрено - вместо этого контроллер отправляется в глубокий сон, пришлось добавить кнопочку reset, принудительно дергающую 4 ногу процессора, ну и не забывать после подключения клавиатуры нажать на эту "волшебную" кнопочку! Поправил свою версию печатки на будущее. Осталось довести до ума придуманный мною совмещенный вариант управления ключём и возможностью подключения в это же гнездо наушников для тренировок по работе на ключе. Туда же можно подключить УКВшку для использования в качестве маяка - будет возможность управлять ее включением на передачу и подавать туда звуковую модуляцию при нажатии на ключ. Точнее, это все работает, надо лишь подобрать некоторые номиналы резисторов для необходимых уровней звука.
Картинка обновлённой и справленной версии платы с моими доработками справа. Плата так же односторонняя с некоторым количеством проволочных премычек. Можно сделать вместо перемычек второй, верхний слой проводников. Два вариантных места под звукоизлучатель. Два варианта питающего мини-USB разъема - на плату и использование зарядника для Li-Po аккумулятора. Возможность питания от цепей поддтяжки ключа трансивера (разумеется без PC клавиатуры), необходимо установить ионистор. Возможность питания от часовой 3х вольтовой батарейки (опять же без PC).
В дальнейшем, если получится перекомпелить авторские исходники, попробую внедрить передачу паузы с клавиатуры по предложенному на одном их форумов рецепту. Инфа чуть ниже. Жаль, свободного времени всё меньше и меньше...
Работа с ключом RU3GA --- инструкция от RU3GA
Запись в ячейку памяти
Нажимаем на нужную кнопку памяти и удерживаем её в течение 2 сек. Устройство передаст " WR " и перейдет в режим ожидания ввода буквы. При записи --- паузы между буквами распознаются автоматически. Для установки паузы между словами нужно сделать паузу в передаче на 2 сек , при этом ключ передаст " R " --- это значит , что он понял раздел между словами и переходит в режим ожидания дальнейшего ввода. Он ждет , пока вы не начнете вводить следующее слово. Так что в паузах между словами можно сходить выпить кофе и потом с новыми силами продолжить запись. За три буквы до окончания памяти ячейки тон передачи меняется --- это сигнал к тому , что пора заканчивать запись. Окончание записи --- нажатие на любую кнопку.
Исправления ошибок при записи
Если был введен ошибочный символ , то даем серию точек больше шести. Ключ передаст « R » , это обозначает , что он перешел в режим коррекции , далее он передает « LAST »+« оследнюю правильно введенную букву » и переходит в режим ожидания ввода текста. Если ошибка была на первой букве , то ключ передаст « LAST NO ».
Пример: надо ввести в память « CQ DE RU3GA » . При вводе получилось « CQ DI »… Даем серию точек и ждем , ключ передает « R », затем « LAST D » и переходит в режим ожидания --- вводим дальше « E RU3GA » и нажимаем на любую кнопку для выхода из режима записи.
Можно править не только последнюю букву, но и все предыдущие.
Пример: надо ввести в память « CQ DE RU3GA » . При вводе получилось « CQ NI »… Даем серию точек и ждем , ключ передает « R », затем « LAST N » и переходит в режим ожидания. Даем еще серию точек --- ключ передает « R », затем « LAST Q » и переходит в режим ожидания. Вводим « DE RU3GA » и нажимаем на любую кнопку для выхода из режима записи.
Воспроизведение из ячейки памяти –-- короткое нажатие на соответствующую кнопку ячейки.
Остановка воспроизведения из памяти --- нажатие на любой контакт манипулятора или "клоподав".
Отключение\включение самопрослушивания --- нажимаем кнопку 1 , затем , не отпуская ее , нажимаем кнопку 2 и удерживаем их около 4 сек. Ключ передаст « OFF » и отключит самопрослушивание. Для включения --- повторяем те же действия --- ключ передаст « ON » и включит звук. Эта опция "запоминается" --- при повторном включении останется нужный режим.
Включение режима «настройки РА» --- нажимаем 1-ую , затем 3-ую кнопки и удерживаем их в течение 4 сек. Отключение --- нажатие на манипулятор, "клоподав" или на любую кнопку.
Реверс манипулятора --- нажатие 1-ой, затем 4-ой кнопки и удержание их в течении 4 сек. Ключ передаст « REV » и сменит раскладку манипулятора на противоположную. Эта опция запоминается и при повторном включении --- будет нужная вам раскладка точек-тире в манипуляторе.
Работа с Ямбическим ключём с памятью+PC Keyboard
Собственно сам ключ по своим электрическим параметрам и функциональному назначению органов управления полностью идентичен предыдущей конструкции
Остановимся только на работе с клавиатурой от PC .
Передача с клавиатуры текстов на английском и русском языке ( переключение языка с помощью клавиши Caps Lock --- при переходе на латиницу услышите «EN» , при переходе на кириллицу услышите «RU»)
Буфер памяти --- 60 символов --- поэтому если ваша скорость набора на клавиатуре даже сильно превышает скорость передачи CW --- ничего страшного --- контроллер все поймет и передаст как надо.
F1-F4 --- полностью соответствуют кнопкам ключа 1-4 --- т.е вы можете записать в память с манипулятора на кнопку 1, а воспроизвести нажатием на F1 и наоборот..
Остановить передачу из памяти в любой момент можно клавишей ESC ( ну либо нажатием на манипулятор , «клоподав» или любую кнопку ключа --- читайте описание самого ключа по вышеприведенной ссылке )
Запись с клавиатуры в ячейку памяти начинается с комбинации клавиш --- LeftAlt + F* , где (*) --- номер ячейки от 1 до 4.
Заканчивается запись либо по заполнению ячейки 30-ю символами (за три символа до окончания памяти тон начнет меняться --- это сигнал к тому , что пора запись заканчивать), либо нажатием той же клавиши ячейки , куда вы пишете (например F1 ).
Самопрослушивание при записи --- работает.
При ошибочном введении символа при записи --- работает клавиша BackSpace
Клавиша «Space» работает --- т.е если вам нужно сделать пробел между словами в передаче при записи в ячейку --- нажимайте её
Как известно , в разных языковых раскладках кнопка «? - /» работает по разному, что весьма неудобно. В данном случае эта кнопка в обоих раскладках работает как «/» , а передача «?» производится через клавишу F9 (как в контестовой программе N6TR --- для меня это очень привычно , для многих других , надеюсь , тоже )
F10 --- самопрослушивание «on\off»
F11 --- настройка РА «on\off»
F12 --- реверс манипулятора
Ссылки на исходные материалы:
Автор таки поделился исходниками своих прошивок. "Для тех кто что-то хочет "прикрутить своё" - исходники обоих конструкций. Все делалось в связке MPLAB+PICC
В тексте программ вроде делал комментарии для себя, поэтому все должно быть понятно. Ну и не судите строго за код - я все ж не программер , а просто любитель
"
http://www.cqham.ru/forum/showthread.php?15688-CW-%EA%EB%FE%F7-RU3GA&p=1284873&viewfull=1#post1284873
Зачёт! (хотя вряд-ли буду что-то измениять. Но OpenSource - !!!) Спасибо!
Немножко выжимок с форумов для себя: (а то заметил, что инфа из интернета иногда исчезает...)
http://www.cqham.ru/forum/showthread.php?15688-CW-%EA%EB%FE%F7-RU3GA&p=501993&viewfull=1#post501993
Александр (RU3GA), свое время поправил в Вашем исходнике передачу паузы(пробела) с клавиатуры. Кроме того, функцию декодирования элементов при записи в память с пилы тоже пришлось подправить, так как не совпадали временнЫе задержки вначале и конце цикла декодирования. Видимо это из-за разной системы команд пиков и авров при обработке компиляторам у меня получались циклы разной длительности. Разбираться в ассемблерном тексте я не стал, просто добавил несколько скобок в исходнике. В Вашей версии прошивки видимо получилось все нормально после компиляции.
По поводу К1ЕЛ ключа – там тоже не все шоколадно (это только на мой взгляд). Во всяком случае, все его возможности по изменению длительности и соотношения знаков я не стал претворять в жизнь, хотя места в памяти ключа еще вагон.
Из залетов в тексте я сумел найти дополнительно к тем перечисленным выше моментам, только неверную передачу какой-то буквы, но это уже было Вами исправлено к этому моменту.Кроме того, что-то было еще и с обработкой клавиш стрелок и правой цифровой клавиатуры. Это тоже все сделал на конус.
В Вашей конструкции вижу только один недостаток, обусловленный реализацией псевдо-АЦП: это очень большая неравномерность изменения скорости передачи при вращении потенциометра. Мы с Виктором Николаевичем это обсуждали, когда он отрабатывал свой ключ на меге8. Он поступил самым простым путем – поставил резистор с характеристикой, компенсирующей эту неравномерность, а я менял в программе коэффициент пересчета скорости в зависимости от напряжения с АЦП. В Вашей конструкции изменить программно это будет сделать затруднительно, поэтому выход только как у Виктора.
Если у Вас еще не пропало желание подправить текст для реализации паузы с клавиатуры, скажите, куда послать исходник, там все отмечу, что правил.
Николай.
http://www.cqham.ru/forum/showthread.php?15688-CW-%EA%EB%FE%F7-RU3GA&p=502178&viewfull=1#post502178
Смею доложить, что при передаче с комповой клавиатуры Александр предусмотрел в оперативной памяти ключа кольцевой буфер на 60 байтов, поступивших с клавиатуры. Это немного меньше, чем 60 нажатий на клавиши клавиатуры (потому на одно нажатие и отпускание клавиши клавиатура генерит не менее 3 байтов) , но более, чем выше крыши, чтобы даже люди с сильно-сильно развитыми щу-пальцами на любой практически используемой скорости передачи не смогли его перегрузить. Другой вопрос, что если в этом буфере встретится код, соответствующий клавише «пробел», то реакция на этот код при передаче нулевая – этот символ просто пропускается, и начинается обработка следующего символа в буфере. Этот код обрабатывается только в режиме записи сообщения в одну из ячеек памяти, которых всего 4 по 32 знака. Тогда при воспроизведении из ячейки пауза между словами будет воспроизведена.
При передаче 25-35 слов по 5 знаков в минуту пауза между словами спокойно выдерживается без нажатия на пробел. Поэтому, на мой непросвещенный взгляд, Александр прав: - считать это косяком можно лишь с достаточной мерой условности.
Ну, а чтобы никто не мог бросить фразу типа «ну-ну, пилите Шура, пилите…»,
Александр, можно изменить функцию обработки буфера клавиатуры так:
void play_comp_keyboard()
{
if ( scan_code_letter <= 0x5F )
{
if ( scan_code_letter == 0x29) // Если "пробел"
{
//==================== ==================== ==============
if ( write_comp_flag)
{long_pause_flag=1;
write_mem_comp_keybo ard();
}
else
{
delay_element(speed) ;
delay_element(speed) ;
delay_element(speed) ;
delay_element(speed) ;
}
}//if ( scan_code_letter == 0x29) // Если "пробел"
//==================== ==================== ==================== =====
… и будет людям так необходимая пауза
Всякое на подобную тему:
- Табличка с кодировками некоторых символов. Не для этого ключа RU3GA !!!
![](http://rm9wy.ru/cutenews/uploads/blog-img/cw-code-table.jpg)