PDA

Просмотр полной версии : SKC - простой контроллер PC/AT-клавиатуры на ATmega88



m.d.
02.01.2010, 15:12
http://s43.radikal.ru/i099/1001/5c/bb079f82140ct.jpg (http://radikal.ru/F/s43.radikal.ru/i099/1001/5c/bb079f82140c.jpg.html)

Основные особенности:

мало деталей;
быстрая обработка чтения из порта клавиатуры за счет быстрого микроконтроллера (20 MIPS) и простой схемы подключения; короткий WAIT есть только при нажатых клавишах;
наличие стандартного (как в UnrealSpeccy) и продвинутого режима ввода; второй близок к обычному вводу на PC: для дополнительных клавиш работает верхний и нижний регистр (например, SHIFT + ' вводит двойную кавычку, а без SHIFT - апостроф); в одно нажатие осуществляется ввод знаков, набираемых в Extended Mode, например, квадратные и фигурные скобки;
переключение между режимами «на лету» с помощью Scroll Lock;
полноценный нампад с двумя режимами: ввод цифр и управление курсором;
кнопки «Reset» и «Magic» на клавиатуре;
дополнительный элемент «ИЛИ» для схем, где нельзя сразу получить один сигнал чтения из порта #FE;
имитация кнопки «Magic» для схем, где она коммутирует сигнал чтения команды из RAM и вход одновибратора;
упрощенное редактирование раскладок (требует наличия интерпретатора Perl);
открытый исходный код.

AHTuXPuCT
03.01.2010, 15:05
а под дип корпус нужно ли изменять прошивку?
и заменить атмега88 на атмега32?

m.d.
03.01.2010, 15:26
а под дип корпус нужно ли изменять прошивку?
Вроде бы нет (ADC6 и ADC7 не используется).


и заменить атмега88 на атмега32?
Можно при условии коррекции прошивки (частота, порты и пр.) Никаких специфических особенностей mega88 не используется. Просто я их люблю и у меня их много :)

AHTuXPuCT
03.01.2010, 15:43
с первым вопросом разобрался, покурив пдф на атмега88 :)
дело в том, что есть 4шт атмега32, но если их ставить 24кб памяти использоваться не будут - не рационально :(
буду заказывать 88ю мегу и переразводить плату под дип

m.d.
03.01.2010, 16:06
Для контроллера достаточно 2 Кб. Скорее уж будет слишком большой корпус :-)

AHTuXPuCT
03.01.2010, 16:51
да и ног свободных много останется.
захочется еще что нибудь придумывать для чего их задействовать :)

VELESOFT
03.01.2010, 17:09
After press ZX key combined with shift (extend mode, cursor keys, caps lock, etc..) you must:
1) active only shift in time min. 1/50 sec
2) active next key parallel with shift

After release this combined ZX key:
1) release key only (shift is active)
2) after time min. 1/50 sec also release shift

This is function of original multilayer ZX membrane. :v2_wink:
ZX BASIC also work better with this. KEY routine need shift before active key.

m.d.
03.01.2010, 17:51
After press ZX key combined with shift (extend mode, cursor keys, caps lock, etc..) you must:
1) active only shift in time min. 1/50 sec
2) active next key parallel with shift

After release this combined ZX key:
1) release key only (shift is active)
2) after time min. 1/50 sec also release shift

This is function of original multilayer ZX membrane. :v2_wink:
ZX BASIC also work better with this. KEY routine need shift before active key.
Thanks for more precise information on original Speccy keyboard! But is Spectrum+ have an additional circuitry for emulating combo key presses with a single 'extended' key? Exteneded keys in many russian clones consist of 2 standard keys which are pressed simulatenously.

VELESOFT
03.01.2010, 21:22
But is Spectrum+ have an additional circuitry for emulating combo key presses with a single 'extended' key? Exteneded keys in many russian clones consist of 2 standard keys which are pressed simulatenously.

ZX Spectrum 16/48kB - dual layer membrane, only single keys(separate shift)
User must manually press SHIFT key + next keys..
http://newton.sunderland.ac.uk/~specfreak/MySpeccies/ZX-Spectrum-48k.jpg
http://www.rwapsoftware.co.uk/images/rubber%20membrane.jpg

All next ZX models (ZX48+,ZX128,ZX128+2,+2A,+3) use new keyboard with 58 keys (added new keys combined with SHIFT).
http://newton.sunderland.ac.uk/~specfreak/MySpeccies/ZX-Spectrum-128k%2B.jpg
http://newton.sunderland.ac.uk/~specfreak/MySpeccies/ZX-Spectrum-128k%2B2.jpg
http://newton.sunderland.ac.uk/~specfreak/MySpeccies/ZX-Spectrum-128k%2B3.jpg
http://velesoft.speccy.cz/other/zx-membrane/index.htm

This last models use three layer membrane. On all this keys combined with shift is after press as first contact SHIFT and later also KEY.

You emulate also keyboard matrix exxect ?

psb
04.01.2010, 02:50
не важно, скольки слойная клавиатура. факт в том, что даже при одновременном нажатии шифта и кнопки довольно большая часть программ глючит. т.е. надо обязательно делать в контроллерах то, что говорит VELESOFT.

---------- Post added at 04:50 ---------- Previous post was at 04:47 ----------


Exteneded keys in many russian clones consist of 2 standard keys which are pressed simulatenously.
а что это за клавиатуры такие? я видел только пленочные как раз, с несколькими слоями.

m.d.
04.01.2010, 09:29
не важно, скольки слойная клавиатура. факт в том, что даже при одновременном нажатии шифта и кнопки довольно большая часть программ глючит. т.е. надо обязательно делать в контроллерах то, что говорит VELESOFT.
Уже добавил задержку для комбинации. Потестирую — выложу.


а что это за клавиатуры такие? я видел только пленочные как раз, с несколькими слоями.
В «Бейсике», например, отдельные кнопки с 2 парами контактов. И в некоторых вариантах «Дельты-С». Я о том, что глючат все механические решения, т. к. задержка в комбинации никак не нормируется. Например, пленочный вариант клавиатуры от «Дельты» реже, но все равно бывает выдает цифры вместо перемещения курсора, DELETE и т. п.

Sayman
04.01.2010, 09:41
у каро контроллер самый классный!

m.d.
04.01.2010, 18:02
Обновлена прошивка (см. первый пост): теперь для клавиш, эмулирующих сочетания двух клавиш Спектрума, вставляется задержка 20 мс после нажатия первой клавиши (CS или SS) или отпускания второй (основная клавиша в сочетании). То есть, имитируется последовательное нажатие, как если бы это делал пользователь на 40-клавишной стандартной клавиатуре.

Mad Killer/PG
04.01.2010, 18:07
m.d., планируете ли продажу девайсов ?

m.d.
04.01.2010, 18:12
m.d., планируете ли продажу девайсов ?
Пока нет. Изначально делал для себя как аналог контроллера Caro на новой элементной базе и просто ради интереса.

Atari
05.05.2010, 09:12
m.d.

Скажите пожайлуста, можно ли заточить Ваш девайс под Commodore 64 ?

Astrolux
13.01.2012, 01:25
буду заказывать 88ю мегу и переразводить плату под дип

Получилось?

AHTuXPuCT
13.01.2012, 09:40
Astrolux, мегу88 купил, дальше руки не дошли :(

Sergey
27.01.2012, 12:54
m.d.

Скажите пожайлуста, можно ли заточить Ваш девайс под Commodore 64 ?
Понимаю, много воды утекло, но всё же:
Полагаю, можно. Хоть в этом проекте, хоть в проекте Caro. Аппаратную часть под матрицу 8x8 менять не надо, нужно только завести дополнительные три линии данных на неиспользуемые выводы (на ZX используется 5 битов вместо 8).
Если я правильно понимаю, A - F - это адресные линии, 0 - 7 - линии данных.
Естественно, нужно будет подправить немного прошивку на соответствие клавиш AT-клавиатуры матрице С64.
Коды кнопок можно посмотреть здесь:http://noname.c64.org/csdb/forums/index.php?roomid=11&topicid=75700

junior_zx
28.11.2012, 22:10
Хорошая схема. Правда развёл свою плату (добавил sinclair 1 и 2). Собрал - прекрасно работает. Спасибо за девайс!

kox
03.02.2013, 16:50
Добрый день!
А может кто-нибудь переделать прошивку под atmega8 в дип корпусе.
Частоту кварца сделать 16мгц, ну или оставить 20мгц, впринципе атмеги неплохо гонятся.
Просто в своем городе не нашел в магазинах atmega88. А самому подредактировать
прошивку знаний не хватает- дальше bascom avr я так и не ушел.
Заранее спасибо!

caro
03.02.2013, 18:57
А может кто-нибудь переделать прошивку под atmega8 в дип корпусе.Посмотри вот эту тему, практически та же самая схема, и прошивка под все контроллеры серии AMegaxx8, в том числе и ATMega8: http://www.zx.pk.ru/showthread.php?t=17270