Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Контроллер PC/AT клавиатуры на AVR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Serg_Sm
Может кто видел исходники на C реализиции контроллера PC/AT клавиатуры?
Не хочется изобретать велосипед делая все с нуля. Поискал по инету - реализаций подключения клавиатуры к AVR есть, реализация маленьких клавиатур тоже, исходники на асемблере можно найти. А вот исходников на С не нашел.
MrYuran
Видел, видел. Недавно раздавал. У гугля спросИте "PS/2 Keyboard + AVR"
И будет счастье. В первых 5 строчках.
Немного соврал, но неважно.
Вот: http://www.google.com/search?hl=ru&q=P...&lr=lang_ru
Serg_Sm
Я же вроде ясно написал - мне не надо подключать клавиатуру к AVR! Нужно сделать клавиатуру (опрос матрицы, взаимодействие с хостом) на AVR.
Если перейдешь по своей же ссылке, то увидишь, что там такого нет.
rezident
Serg_Sm, эта тема (клавиатура PS/2 на МК) обсуждался на форуме неоднократно. Приводились ссылки на описание протокола клавиатуры PS/2, алгоритмы опроса и устранения дребезга и на Application Notes от фирмы Atmel, где есть примеры реализации. Для поиска общей информации пользуйтесь активнее поиском по форуму и сайту фирмы Atmel! А здесь задавайте уже конкретные вопросы по вашей реализации устройства, если что-то не получается.
VDG
Всё что в сети лежит на 30% друг другу противоречит. Вообще, вещь которая и БИОСОМ и Windows видна как родная и конфигурируется ими в автомате, бесплатно не найти. Я не нашёл на халяву в свое время, поэтому всё делал и вылизывал ручками. В сети есть пдф какого-то то ли института, то ли группы разработчиков. Вот на него надо опираться, остальное - радиолюбительское фуфло.
Serg_Sm
To rezident:
Здесь вопрос был задан именно после долгих поисков в интернете. На этом сайте ничего полезного нет - на поиск я потратил значительно больше чем 5 минут. На том же сайте атмела указывается только вариант простенькой 4х4 клавиатуры и подключения клавиатуры к контроллеру. Конечно не буду отрицать, что я может чего упустил - вот поэтому и запостил сюда вопрос.
Алгоритмы опроса и избавления от дребезга меня не интересуют - я ясно написал, что не хочу изобретать велосипед (но это не значит, что я не могу это сделать). Сроки по проекту как всегда "позавчера", и делать клавиатуру на 80% соответствующую стандартной с нуля меня не очень прельщает (других дел полно).
Отдельное спасибо за то что переместили мою тему в раздел "В помощь начинающему". Как вижу тут каждый спец по клавиатурам smile.gif

Единственный нормальный ответ - VDG:
Спасибо, в общем нечто подобное я и предполагал. Еще не удалось найти подробной инфы, в частности организацию таблицы кодировок. Из-за этих мелких вещей вот и боюсь, как бы клавиатура с моей прошивкой не выдала бы ерунды в каком-нибудь экзотическом случае.
Пдф о котором вы говорите пока не обнаружил - поищу еще.
Палыч
Цитата(Serg_Sm @ Jan 14 2009, 10:02) *
Еще не удалось найти подробной инфы, в частности организацию таблицы кодировок.
Вот это - видели? http://www.platan.ru/shem/pdf/st44-50.pdf Или речь о другом?
Serg_Sm
Это у меня есть. Но к сожалению там не все описано.
Палыч
Обычно стоит задача обратная Вашей - подключение к МК стандартной клавиатуры (цена то ей 100 рублей). Так-что, готовое решение, имхо, найти вряд ли удастся... Наверное, Вам всё же прийдется разрабатывать её с нуля. Если у Вас не хватает какой-то информации для этого, так Вы её конкретно и спросите - возможно у кого-то она есть, или знает где взять.
MrYuran
А вроде бы раньше были микрухи - стандартные контроллеры клавиатуры?
Или я путаю чего?
Надо старинную клаву расколупать и посмотреть, что там стоит
Serg_Sm
Стандартные контроллеры не подходят по нескольким причинам - они заточены под конкретные матрицы, а желательно сделать ПО легко настраиваемое под конкретную матрицу + требуется организовать несколько иной алгоритм опроса, да и PS/2 не нужен - данные идут через UART. Цена конечной версии клавиатруры естественно будет в несколько раз дороже 100р smile.gif область применения весьма специфическая.

А что касается того, что мне непонятно: Таблицы скан-кодов 1,2,3 - отличаются ли они для русской клавиатуры? И если да, то нужно их описание. Алгоритмы обработки нажатия одновременно нескольких клавиш, до 3 и более (работа с автоповтором, когда производится отсылание кодов отжатий, обработка ошибки сканирования) - кстати в разных клавиатурах это организовано по разному, возможно зависит от матрицы. Это то что приходит на ум пока я этим плотно не занялся, вероятно дальше число вопросов увеличится.
Палыч
Цитата(Serg_Sm @ Jan 14 2009, 12:35) *
Таблицы скан-кодов 1,2,3 - отличаются ли они для русской клавиатуры? И если да, то нужно их описание.
В наших клавиатурах используется таблица 2. Это написано в статье, ссылку на которую приводил выше. Там же и сама таблица.
Цитата(Serg_Sm @ Jan 14 2009, 12:35) *
Алгоритмы обработки нажатия одновременно нескольких клавиш, до 3 и более (работа с автоповтором, когда производится отсылание кодов отжатий, обработка ошибки сканирования) - кстати в разных клавиатурах это организовано по разному, возможно зависит от матрицы.
При нажатии нескольких клавиш: код нажатия и отпускания - в соответствии с порядком нажатий/отпусканий; автоповтор - только для последней нажатой и не отпущенной. При одновременном нажатии большого числа клавиш - коды начиная с некоторой не передаются (определял эксперементально), т.е. как-будто и не нажимались (речь, естественно для клавиш типа буква/цифра, всякие Ctrl и им подобные - нажатие/отжатие передаются всегда). Автоповтор прекращается, если удерживаем клавишу и нажали/отжали управляющую (Shift и др) (по эксперименту). Автоповтор некоторых клавиш - не производится: Ctrl, Shift, Alt, NumLock, CapsLock, ScrollLock, PrintScreen, Pause.
P.S. Соврал: автоповтора нет только для Pause
Serg_Sm
Про 2 таблицу понятно, а что делать если придет запрос на установку другой кодовой таблицы?
Что с передачей ошибки сканирования при нажатии большого числа клавиш? Передаются ли после неё коды отпущенных клавиш (если были нажаты ранее)?
Вот мне не нравиться, что информацию приходиться получать из экспериментов. Где бы стандарт описывающий AT клавиатуру найти?

PS: Вот нашел, похоже самое подробное описание что я видел:

http://download.microsoft.com/download/1/6...6c/scancode.doc
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.