|
|
  |
AVR и клавиатура AT, проблемы обмена между устройствами |
|
|
|
May 15 2007, 19:52
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

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

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(manul78 @ May 16 2007, 02:52)  Тактовая пляшет от 10 до 40 кГц, вот тут я подхожу к проблеме. Устроиство на AVR контроллере настроенное на одну клаву, может отказаться работать с другой. Так вот, хочу спросить Вас уважаемые, дабы не плутать мне в темноте может кто нибудь уже сталкивался с проблемами самонастраивающихся систем ? А какие проблемы, если все общение с клавиатурой ей и тактируется. Сие заложено в физический протокол - ни настроеек, ни подстроек ни проблем. Какие могут быть проблемы если данные сопровождаются клоком??? Цитата Но проблема в задержках. Все это очень напоминает разговор суперсоника с черепахой выпившей тормозной жидкости. Если речь идет о таймаутах на получение подтверждений о выполнении команд и из разбросах времен у разных клавиатур, то они имеют место быть, ну и что?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 16 2007, 01:15
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317

|
Могу только подтвердить слова zltigo. Клавиатура сама генерит клоки ... вот по ним и работаем ... клавиатура на прерывании висит ... какая разница, какая частота - лишь бы не 1Мгц  Сам подключал клавиатуры ... с десяток устройств работает и не жалуются ... и клавы разные, видать.
|
|
|
|
|
May 16 2007, 05:04
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Если речь идет о таймаутах на получение подтверждений о выполнении команд и из разбросах времен у разных клавиатур, то они имеют место быть, ну и что? [/quote]
Вот здесь то я и зарылся, не все команды отвечают ACK ($FA), поэтому моя программа начинает загонять в клаву следующую команду - и в результате куча тактов от нее, происходит рассогласова- ние ХОСТА с Девайсом и в плоть до того что моя программа либо висит либо порет чушь...
Если есть у кого рабочие алгоритмы обмена, не протоколы, а алгоритмы - скиньте пожалуйста !
Проблемные команды: ($FB) установка typematic для одной клавиши. ($FD) установка make/break для одной клавиши. ($FC) установка make для одной клавиши.
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
May 16 2007, 13:58
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Хочу спросить у знающих людей еще следующее... Кое как с таймаутами я разобрался, не проблема. Но не все команды работают, что это ? Может их исключили по ветхозаветности ? Привожу полный список команд : $ED - светодиоды (работает) $EE - ЭХО (работает) $F2 - Передача ID (работает) $F3 - Задержка и повтор режима TYPEMATIC (работает) $F4 - Разрешение скан. и передачи кодов (работает) $F5 - Запрещение скан. и передачи кодов (работает) $FE - Повтор последней команды (работает) $FF - Сброс (работает) $F7 - TYPEMATIC для всех ( НЕТ) $F8 - MAKE/BREAK для всех (НЕТ) $F9 - MAKE для всех (НЕТ) - Больше всех нужно Данные три отвечаю $FA(ACK) но результатов никаких $FB - TYPEMATIC для одной (НЕТ) $FC - MAKE/BREAK для одной (НЕТ) $FD - MAKE для одной (НЕТ) А вот эти, просят повторить команду ($FE) а иногда "вешают" клавиатуру ! "НЕ корысти ради, а токомо волею просившей мя почившей супруги прошу" Ответьте, что это протокол у меня неправильный, или я сам виноват ?
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
May 17 2007, 19:28
|

Местный
  
Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719

|
Цитата(zltigo @ May 17 2007, 20:00)  Точнее получается и не вводили  вслед за фирмой IBM по причине полной ненадобности не на оригинальных PS/2 компьютерах. Нет Господа, я её победил ! Помог мне DeRUN из форума по интерфейсам. Огромный ему Он выложил PDFку с оригинальной спецификацией на клаву. Дело там вот в чем, У AT клавиатуры 3 кодовых страницы, 1-ая и 2-ая в ROMе, а вот 3-я в RAMe. Отсюда и запарка, ибо по умолчанию ставиться после сброса 2-ая, она не изменяется никак. А, по поводу ненадобности Вы зря, в стационарных компах, клаву обслуживает спец контроллер, там все чут-ли не на аппаратном уровне. Памяти море, моща недюжая... Подцепил библиотеку, и вперед. А вот попробуйте поплясать с 512 байтами памяти простого AVR. Вот здесь то и нужны, установки клавы, дабы она поменьше пурги гнала в контроллер, а то он только ней заниматься и будет !
--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
|
|
|
|
|
May 17 2007, 19:44
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(manul78 @ May 17 2007, 22:28)  А вот попробуйте поплясать с 512 байтами памяти простого AVR. Вот здесь то и нужны, установки клавы, дабы она поменьше пурги гнала в контроллер, а то он только ней заниматься и будет ! Ну тупо выкинуть лишнее не сложно, а вот городить огород с перепрограммированием, отлавливанием отключений/подключений клавиатуры, соответственно все это с таймаутами, квитированием... Я делал для красоты небольшое управление клавиатурой, но это было на ARM под операционкой, где все проблемы взаимодействия с клавиатурой решались просто и непринужденно отдельной задачей. А если в малюсеньком AVR, то скорее всего это будет хлопотнее тупого варианта. P.S. А документ действительно интересный!
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|