Не стесняйтесь, выкладывайте!!! :D
И для мыша тоже!
Схема и прошивка контроллера на ATTiny2313 от caro.
Не стесняйтесь, выкладывайте!!! :D
И для мыша тоже!
Схема и прошивка контроллера на ATTiny2313 от caro.
ВОобщето Камиль присутствует на форуме и если посчитает нужным то выложит!Цитата:
Сообщение от fan
2 caro
Благодарствую!!! Не знал под каким вы тут ником, а то бы давно достал :D
Насчёт мыша - я имел ввиду схему (с прошивкой) на той же AT90S2313,
PS/2 -> Kempston Mouse Adapter v2.0
(c) 1999-2000 Studio STALL (Eugene Stahov)
(c) 2003 Kamil Karimov E-mail: ***@list.ru
В беседе о Profi проплывала (fido7.zx.spectrum). Впринципе для мышиного варианта у меня есть схема и прошивка. Но вдруг с того времени произошли каки либо изменения. Если возможно, то выложите и мышиный вариант.
Камиль Каримов! Аааа-Уууу!!!
Общественность всё ещё жаждит получить прошивку для мыша (в данных вами линках в других ветка обнаруживается только схема).
Аааа-Уууу!!!
Ааа-Ууу!!!
А-У!!!
Благодарствую!
Предлагаю интересующимся ознакомится с протоколами PS/2-мышей фирмы Ligitech (M,M+,M++,MZ,MZ+,MZ++). Источник информации уже недоступен, так что информация представляет повышенную ценность.
Спасибо, глянем!Цитата:
Сообщение от spensor
А чего выкладывать? Я, например, себе заказал такой контроллер у Камиля. Сейчас сижу и радуюсь. Раскладку клавиш поменял под себя. Спасибо автору за такой гибкий и универсальный контроллер!Цитата:
Сообщение от fan
Покупайте у автора готовые контроллеры и не мучайтесь. Стоит не дорого, качество заводское.
Карим, так сколько сие чудо стоит :)Цитата:
Сообщение от axor
и кстати, какова задержка при опросе клавиатуры (я смотрю туда wait заведен) ?
Интересно, а при использовании этого контроллера некоторые программы при нажатии клавиш тоже притормаживают, как при использовании других контроллеров AT-клавиатуры (у меня безымянный на микропроцессоре 8031 с WAIT)?Цитата:
Сообщение от caro
На 8031 длительность WAIT гораздо больше. Можно сделать вообще без задержки, но не за 250р :) (например матрица из регистров и сумматоры упакованные в альтеру).Цитата:
Сообщение от Prusak
Насколько мне известно, торможение при использовании клавиатуры связано с особенностями опроса самой клавиатуры в программе. При нормально сделанном опросе все работает без "тормозов".
Я тут собрал для эксперимента контроллер клавиатуры от ATM TurboЦитата:
Сообщение от Prusak
тоже на 80С31 (1816ВЕ31), правда я использовал AT89C52,
но это не меняет дела - одно семейство MSC51.
Померил длительность WAIT при тактовой частоте 11.0592 МГц (в мксек).
Вот результаты: Клавиша не нажата/Клавиша нажата
Прошивка XT (версия 1.06): 50/130
Прошивка AT (версия 2.2): 36/58
Контроллер на AT90S2313: 0/3
А реально при эксплуатации было замечено "подвисание" или "торможение" программ?Цитата:
Сообщение от caro
Нет не замечал.Цитата:
Сообщение от Prusak
Действительно, как ты заметил, торможение возникает при
интенсивном опросе порта клавиатуры.
Если сделать опрос по прерываниям, торможение не будет так заметно
даже с контроллерами на MSC51.
Задержка, зависит от того за сколько тактов успеет посчитать и выдать нужный результат контроллер... От типа и скорости АТ клавиатуры никак не зависит.Цитата:
Сообщение от Prusak
Дело в том что результат зависит от того какие линии механической клавиатуры спека сканируются, поэтому результат нужно вычислять. Результат можно вычислить заранее и держать ввиде таблицы - тогда задержка равна только выдачи из таблицы нужного значения. А если клавиши не нажаты, то можно аппаратно флаг выставить (на ножку контроллера), чтобы в этом случае WAIT не выдавался. Кажется так и сделано у Камиля :) .
Да видимо если обработчик клавы сидит в прерывании, то скорость обработки не сильно влияется на программу.
Тогда должно подтормаживать на любой программе, а в реальности это наблюдается только на некоторых программах.Цитата:
Сообщение от CHRV
Извините немножко некорректно ответил, потом поправил :smile: .Цитата:
Сообщение от Prusak
Надеюсь из моего ответа теперь все понятно :wink: .
Вопросы по схеме:
1) Сигнал /PFE - это выборка порта #FE с активным низким уровнем?
2) Сигнал /RESET - выходной, эмулирует сброс по Ctrl+Alt+Del?
3) Может быть имеет смысл сделать возможность сброса самого контроллера на случай подвисания оного (теоретически такая вероятность может быть) заведением кнопки на вывод 1 (-RES) микрокотроллера с одной стороны и на общий провод с другой?
Да.Цитата:
Сообщение от Prusak
Не стал я городить такую логику.Цитата:
Сообщение от Prusak
/RESET длительностью 10 мс. выдается при нажатии на Print Screen.
Может :) Только тогда и в IBM-ской клавиатуре надо поставить кнопку Сброса,Цитата:
Сообщение от Prusak
она тоже сделана на микроконтроллере и тоже может "теоретически" зависнуть :) .
Торможение появляется если часто опрашивать клавиатуру:
Контроллер на время опроса генерит WAIT, а поскольку опрос непрерывный, то и WAIT генерится постоянно и прога тормозит. Чтобы бороться с этим нужно опрашивать реже, например так:Код:LOOP LD A,n
IN A,(#FE)
RRA
JR C,LOOP
Если я правильно понял Caro, его новый контроллер не генерит WAIT когда кнопки не нажаты? Тогда торможения при частом опросе не будет (конечно если кнопки не жать).Код:LOOP HALT
LD A,n
IN A,(#FE)
RRA
JR C,LOOP
да, spectre правильный пример привел, только забыл написать, что на прерываниях играется музыка:) т.е. при опросе без halt прерывание может проскочить - музыку будет коматозить
Без вейтовый вариант -
http://www.speccy.org/trastero/cosas...r3/imar3_e.htm
Имеет проблемы, которых нет в моем (см. Known problems).Цитата:
Сообщение от fan
1) дико извиняюсь :)Цитата:
Сообщение от caro
2) обязательно закажу!
3) это ж 10.5 тактов Z80 или 21 пиксель экрана ;) браво!
по другим контроллерам - юзал раньше Nemo-ий XT контроллер (i8048 7мгц кажется) - почти тот же что Profi, при ненажатых клавишах задержка строк 1-3, на нажатых раза в два дольше (точно не замерял, и вообще забыл :) ). проблем с "подвисаниями" типа как на скорповском контроллере вроде как не было (может я только "правильные" проги запускаю ;) )
Вообще-то автор не додумал самую малость! Надо было не шифратор на A8-A15 ставить, а сразу все A8-A15 завести на ОЗУшку! И всё было бы тип-топ! =)))Цитата:
Сообщение от caro
Ну не все так просто.Цитата:
Сообщение от lvd
Придется добавить еще один мультиплексор на входе ОЗУ,
но и тогда у PICа в данной схеме не хватит ног для адресации
(вместо 3 ног надо будеть заводить все 8, а свободных 5 у него нет).
Придется ставить что-нибудь типа PIC16F876 (28 ног).
Это уже мелочи и 'пикоманство'. =) Я об общем принципе. Я бы, например, вообще AT90s8151 всунул бы, с шиной, и к ней озушку.Цитата:
Сообщение от caro
Наверное имелся ввиду AT90S8515 (теперь ATMEGA8515).Цитата:
Сообщение от lvd
Так без мультиплексора адреса сканирования все равно не обойтись (для организации двухпортового ОЗУ).
И все это ради того, что бы исключить при опросе нажатых клавиш /WAIT длительностью 3 мксек. (11 тактов Z80)?
Кстати если в контроллере использовать ATTiny2313 c кварцем на 20 МГц., длительность /WAIT падает до 1.5 Мкс., а это уже пренебрежимо мало.
А сигнал /NMI в контроллере введен в качестве задела на будущее или реально используется? Если реально, то при каких условиях контроллер генерирует немаскируемое прерывание?
В Кворумах сигнал /NMI реально используется для формирования соответствующего сигнала Z80.Цитата:
Сообщение от Prusak
Причем в ПЗУ предусмотрена процедура проверки наличия в теневом ОЗУ по адресу 0x66 команды JMP (0xC3).
Это позволяет перенаправить NMI на пользовательскую процедуру обработки этого прерывания.
Предваряя вопрос о том как это используется, скажу, да используется активно, но описывать слишком долго.
Значит на компьютере с подключенным контролером клавиатуры обязательно должно стоять перешитое ПЗУ? И я так понял, что при работе контроллер постоянно генерирует NMI?Цитата:
Сообщение от caro
Импульс /NMI формируется при нажатии клавиши F12, тоесть по запросу пользователя, например для вызова фоновой задачи из ОЗУ, или встроенного в ПЗУ монитора.Цитата:
Сообщение от Prusak
А контроллеру не зачем щелкать /NMI :)
И если в ПЗУ нормальной обработки NMI не предусмотрено, то и не надо этот выход контроллера подключать к Z80.
Угу, очепятался.Цитата:
Сообщение от caro
Ну я и говорю - ортодокс я такой (в теории пока :)).Цитата:
Так без мультиплексора адреса сканирования все равно не обойтись (для организации двухпортового ОЗУ).
И все это ради того, что бы исключить при опросе нажатых клавиш /WAIT длительностью 3 мксек. (11 тактов Z80)?
Мало - не мало, а /WAIT как-то ещё в спек зафигачить надо. А так - на клавиатурный вход подался и всё =)Цитата:
Кстати если в контроллере использовать ATTiny2313 c кварцем на 20 МГц., длительность /WAIT падает до 1.5 Мкс., а это уже пренебрежимо мало.
Да, это серьезный аргумент, теперь все понятно ;)Цитата:
Сообщение от lvd
Хотелось бы контроллер клавы и мыши с поддержкой колеса на одной плате. Такое бывает?
Схема есть. Но говорят надо еще и модем. Вот и думаю что делать :)Цитата:
Сообщение от Doctor Max
Опрос потенциальных покупателей показал что нужно именно три в одном Ps/2 keyb, Ps/2 mouse, RS-232. Ну если не получится так не получится :)Цитата:
Сообщение от caro
Ну почему не получится, ты же знаешь что уже есть рабочий макет на ATMEGA8515. Для меня проблема в том, что первый вариант легко вписывается в ATTiny2313 и отказываться от такого оптимального по структуре контроллера у меня рука не поднимается. А на 8515 остается еще масса ресурсов, которые грех не использовать. А это означает, что надо дать возможность пользователю гибко их использовать, тоесть дать возможность легко перешивать его ПО. Но в этом случае при любой ошибке система может стать неработоспособной (клавиатура то висит не нем же).Цитата:
Сообщение от CHRV
Вопрос ко всем, кто что по этому поводу думает?
А вообще это ход - перешивать непосредственно контроллер не вынимая. Я лично считаю - очень полезная фича. А от ошибок никто не гарантирован, в конце концов сходить к другу с программатором или в сервис центр не проблема.Цитата:
Сообщение от caro
МОжет подумать что еще можно реализовать дополнительно? Предлагайте....