Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как правильно работать с компьютерной Клавой
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zorromen
Привет всем ... вот замутил девайс чтобы подключать внешнюю клаву ... но столкнусля с проблеммой ...
по идее когда нажимаешь клаву то должен генерироваться код нажатой клавиши ... но если посмотреть осцилографом , то ничего нет ... я понимаю сам процесс работы протокола ... но если при нажатии ничего нет - это говорит о том что, наверно, нужно произвести процесс инициализации клавы ... так вот, Тавариши ... Мне нужнен процесс инициализации ... кто делал подскажите ...
TriD
Нужно подтянуть линии CLK и DATA на питание резисторами, скажем, по 5.1кОм (номинал не принципиален). Никакой специальной инициализации не требуется (речь идет об обычной клаве). Это если вы захотите подключить свой девайс в писюку вместо клавы, то придется правильно отработать процесс инициализации клавы писюком, иначе писюк будет игнорировать команды от нее.
Alex_Pol
У Атмела есть апнота AVR313 по названию "Interfase PC AT keyboard". Там есть исходники на Си. В том числе и процедура инициализации. А здесь (http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR313.htm), то же, только по русски.
Kuzmi4
на счёт поддтяжки - по 5.1 - в самый раз, а вот на счёт инициализации - там главное чтоб при старте компа его лапы(клок дата) не висели где то , а были лог1(кстати при питании в 4.хх - были тоже ошибки..). Ещё столкнулся с тем что если неправильно генерился код клавиши - то оно его тож не воспринимало - советую посмотреть в эту сторону тоже..
+ там ещё задежки немаловажную роль играют..
+ был такой глючок - если двигать мышаком и посылать с имволы в клавиатурный интерфейс то будут ошибки тоже..
А на счёт нажатия клавиши - то там точно должен быть код клавивши(так просто , хотел напомнить, что ещё должен быть код отжатия клавиши).Когда я собирал ткое устройство - всё работало, непоняток не возникало(разве что с тем как передаются данные smile.gif )...
Попробуйте отсоединить девайс и проверить его в неподключенном состоянии.
Если интересно в общем могу выложить схемку и код как я это делал...

собсно в архиве схемка + код на передачу, на приём данных так навскидку не нашёл...
Пользуйтесь..
zorromen
Да вылаживай ... Тока может чтота я недопонял вас ... но я подключаю клаву к АВР, а не к компу ...
Я говорю что при нажатии вообшее на клаву не генерируется ничего...
676038
Вдруг поможет...

Подключал ps/2 мышь к контроллеру Atmega16.
Кстати, подобным образом можно подключить и PS/2 клавиатуру, протокол-то тот же. (При отладке алгоритмов я подключал вместо мыши клавиатуру и принимал от нее байты, так что это проверено).

Пробная программа написана на IAR4.12, работает так:
инициализирует мышь подключенную к INT0 - CLOCK и PORTD_Bit3 - DATA (в трехкнопочном режиме со скроллером),
затем при нажатии кнопки или движении мыши идет перенаправление принятых кодов на USART (используя форматный printf)

Прошу прощения за качество программы, дальше проект не пошел ввиду бесперспективности...

Разбирался с протоколом и алгоритмом по следующим ссылкам:
http://www.computer-engineering.org/ps2mouse/
http://www.computer-engineering.org/ps2protocol/
zorromen
Вроде так

Keyboard: AA Self-test passed ;Keyboard controller init
Host: ED Set/Reset Status Indicators
Keyboard: FA Acknowledge
Host: 00 Turn off all LEDs
Keyboard: FA Acknowledge
Host: F2 Read ID
Keyboard: FA Acknowledge
Keyboard: AB First byte of ID
Host: ED Set/Reset Status Indicators ;BIOS init
Keyboard: FA Acknowledge
Host: 02 Turn on Num Lock LED
Keyboard: FA Acknowledge
Host: F3 Set Typematic Rate/Delay ;Windows init
Keyboard: FA Acknowledge
Host: 20 500 ms / 30.0 reports/sec
Keyboard: FA Acknowledge
Host: F4 Enable
Keyboard: FA Acknowledge
Host: F3 Set Typematic Rate/delay
Keyboard: FA Acknowledge
Host: 00 250 ms / 30.0 reports/sec
Keyboard: FA Acknowledge
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.