Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR и клавиатура AT
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
manul78
Прошу по возможности подкинуть идей в реализации следующей проблемы :

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

КЛАВИАТУРЫ РАЗНЫХ ПРОИЗВОДИТЕЛЕ РАБОТАЮТ НА РАЗНЫХ ЧАСТОТАХ !
Раньше, в ранних 90-х, когда клавиатура стоила приличных денег, внутри стояла микросхема
контроллера и иногда даже кварц !. Сейчас все гораздо проще, "сопля" как в катридже от
денди, и что там тактит её - неизвестно. Тактовая пляшет от 10 до 40 кГц, вот тут я подхожу
к проблеме. Устроиство на AVR контроллере настроенное на одну клаву, может отказаться
работать с другой. Так вот, хочу спросить Вас уважаемые, дабы не плутать мне в темноте
может кто нибудь уже сталкивался с проблемами самонастраивающихся систем ?

Я хочу попробовать засылать в подопытную клаву "пустую" команду в самом начале,
эдакий пробный шар. И считать временные промежутки между CLOCK (и прием и передачу
тактит клавиатура) сигналами , дабы
вычислить тактовую частоту клавиатуры. А уж после обмениваться индивидуально.

Эсли кто-то уже проходил это - прошу ответить, дабы я не наступал на грабли и не
тратить время на пустую работу. unsure.gif
zltigo
Цитата(manul78 @ May 16 2007, 02:52) *
Тактовая пляшет от 10 до 40 кГц, вот тут я подхожу
к проблеме. Устроиство на AVR контроллере настроенное на одну клаву, может отказаться
работать с другой. Так вот, хочу спросить Вас уважаемые, дабы не плутать мне в темноте
может кто нибудь уже сталкивался с проблемами самонастраивающихся систем ?

А какие проблемы, если все общение с клавиатурой ей и тактируется. Сие заложено в физический протокол - ни настроеек, ни подстроек ни проблем. Какие могут быть проблемы если данные сопровождаются клоком???
Цитата
Но проблема в задержках. Все это очень напоминает разговор
суперсоника с черепахой выпившей тормозной жидкости.

Если речь идет о таймаутах на получение подтверждений о выполнении команд и из разбросах времен у разных клавиатур, то они имеют место быть, ну и что?
AndryG
Могу только подтвердить слова zltigo. Клавиатура сама генерит клоки ... вот по ним и работаем ... клавиатура на прерывании висит ... какая разница, какая частота - лишь бы не 1Мгц smile.gif
Сам подключал клавиатуры ... с десяток устройств работает и не жалуются ... и клавы разные, видать.
manul78
Если речь идет о таймаутах на получение подтверждений о выполнении команд и из разбросах времен у разных клавиатур, то они имеют место быть, ну и что?
[/quote]

Вот здесь то я и зарылся, не все команды отвечают ACK ($FA), поэтому моя программа начинает
загонять в клаву следующую команду - и в результате куча тактов от нее, происходит рассогласова-
ние ХОСТА с Девайсом и в плоть до того что моя программа либо висит либо порет чушь...

Если есть у кого рабочие алгоритмы обмена, не протоколы, а алгоритмы - скиньте пожалуйста !

Проблемные команды: ($FB) установка typematic для одной клавиши.
($FD) установка make/break для одной клавиши.
($FC) установка make для одной клавиши.
manul78
Хочу спросить у знающих людей еще следующее...

Кое как с таймаутами я разобрался, не проблема.

Но не все команды работают, что это ? Может их исключили по ветхозаветности ?

Привожу полный список команд :

$ED - светодиоды (работает)
$EE - ЭХО (работает)
$F2 - Передача ID (работает)
$F3 - Задержка и повтор режима TYPEMATIC (работает)
$F4 - Разрешение скан. и передачи кодов (работает)
$F5 - Запрещение скан. и передачи кодов (работает)
$FE - Повтор последней команды (работает)
$FF - Сброс (работает)

$F7 - TYPEMATIC для всех ( НЕТ)
$F8 - MAKE/BREAK для всех (НЕТ)
$F9 - MAKE для всех (НЕТ) - Больше всех нужно crying.gif
Данные три отвечаю $FA(ACK) но результатов никаких

$FB - TYPEMATIC для одной (НЕТ)
$FC - MAKE/BREAK для одной (НЕТ)
$FD - MAKE для одной (НЕТ)

А вот эти, просят повторить команду ($FE) а иногда "вешают" клавиатуру !

"НЕ корысти ради, а токомо волею просившей мя почившей супруги прошу"

Ответьте, что это протокол у меня неправильный, или я сам виноват ? wacko.gif
manul78
Господа ПОМОГИТЕ Христа ради, может у кого протоколы обмена есть...

Половина команд в клаве не работает, может их вообще упразднили за ненадобностью...?
zltigo
Цитата(manul78 @ May 17 2007, 16:12) *
Половина команд в клаве не работает, может их вообще упразднили за ненадобностью...?

Почему-бы и нет, если ненадобность их видна не вооруженным взглядом? Да и из какого документа Вы их выцарапали?
vitko
Может и упразднили
Вот тут написано:

http://www.computer-engineering.org/ps2keyboard/
zltigo
Цитата(vitko @ May 17 2007, 18:16) *
Может и упразднили
Вот тут написано:

Точнее получается и не вводили smile.gif вслед за фирмой IBM по причине полной ненадобности не на оригинальных PS/2 компьютерах.
manul78
Цитата(zltigo @ May 17 2007, 20:00) *
Точнее получается и не вводили smile.gif вслед за фирмой IBM по причине полной ненадобности не на оригинальных PS/2 компьютерах.


Нет Господа, я её победил !

Помог мне DeRUN из форума по интерфейсам. Огромный ему a14.gif

Он выложил PDFку с оригинальной спецификацией на клаву.

Дело там вот в чем, У AT клавиатуры 3 кодовых страницы, 1-ая и 2-ая в ROMе,
а вот 3-я в RAMe. Отсюда и запарка, ибо по умолчанию ставиться после сброса 2-ая,
она не изменяется никак.

А, по поводу ненадобности Вы зря, в стационарных компах, клаву обслуживает спец
контроллер, там все чут-ли не на аппаратном уровне. Памяти море, моща недюжая...
Подцепил библиотеку, и вперед. А вот попробуйте поплясать с 512 байтами памяти
простого AVR. Вот здесь то и нужны, установки клавы, дабы она поменьше пурги гнала
в контроллер, а то он только ней заниматься и будет !
zltigo
Цитата(manul78 @ May 17 2007, 22:28) *
А вот попробуйте поплясать с 512 байтами памяти
простого AVR. Вот здесь то и нужны, установки клавы, дабы она поменьше пурги гнала
в контроллер, а то он только ней заниматься и будет !

Ну тупо выкинуть лишнее не сложно, а вот городить огород с перепрограммированием, отлавливанием отключений/подключений клавиатуры, соответственно все это с таймаутами, квитированием...
Я делал для красоты небольшое управление клавиатурой, но это было на ARM под операционкой, где все проблемы взаимодействия с клавиатурой решались просто и непринужденно отдельной задачей.
А если в малюсеньком AVR, то скорее всего это будет хлопотнее тупого варианта.

P.S.
А документ действительно интересный!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.