Припаял к PS2AVR индикацию CAPSLOCK. При включении в PC он загорается на полсекунды, как и положено при сбросе. При любом выдергивании и втыкании на ходу сразу повторно происходит сброс и клавиатура работает.
Однако я не добился переключения *LOCK-ов на ней, это должно работать или нет ? У меня включена 0-я раскладка из исходника, при переключении *LOCK-клавиш ни индикаторы не меняются, ни регистр букв при нажатии CAPSLOCK не меняется.
Статус на индикаторы передается корректно (если настоящей клавиатурой задать какое-то состояние *LOCK-ов, то при горячей замене ее на наш PS2AVR после сброса этот запомненный статус тут же отображается на индикаторах).
Спеку не особо надо корректную работу *LOCK-ов, но здесь вообще нулевой прогресс.
Сейчас у меня используется такая связка:
Спек (ленин1) + контроллер caro на atmega8 + PS2AVR (как будущая клавиатура)
При включении спека сброс PS2AVR не происходит. Даже если я сбрасываю атмегу в контроллере caro (при этом должен сразу выполняться сброс клавиатуры аж до 16 попыток, но он не происходит). Так что связка этих двух AVRок не работает. Понимаю, что протокол PS/2 где-то реализован с большими ограничениями, отсюда наш тупик.
Удавалось ли протестить PS2AVR с какими-то еще спековскими контроллерами клавиатуры ?
Ради интереса воткнул сейчас PS2AVR в AVR-ZX 2.0 (он же Aspect128), где контроллер клавиатуры сделан на ATTiny2313 и прошивка оного мне неизвестна. Работает только одно нажатие клавиши, дальше оно навсегда зацикливается. Если нажать F12, это SDDOS, мы в него попадаем, но выйти обратно уже не можем. С настоящей клавиатурой такого не происходит.





Ответить с цитированием