Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: PS/2 и RTC2 через порт клавиатуры

  1. #1
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,889
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    117 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb PS/2 и RTC2 через порт клавиатуры

    Доброго дня.

    В данной теме вниманию общественности предлагаю вариант подключения к ПРК "Орион-128" альтернативных клавиатуры PS/2 и часов реального времени с СОЗУ на базе м/сх DS1307. Красота данного решения заключается в простоте и минимализме.
    Оба устройства подключаются к существующему в любом Орионе самому главному порту #F4xx, параллельно штатной клавиатуре (или её эмуляции на МК). При этом функционал родной клавиатуры никак не нарушается, и она, в свою очередь, никак не влияет на работу подключенных новых устройств.

    Принципиальная схема (v1.0):




    На схеме не указан чип RTC DS1307 с кварцевым резонатором и распиновка разъёма клавиатуры PS/2, на данном этапе отображена только идея коммутации.

    Принцип работы. В штатном режиме, порт #F4xx настроен следующим образом: линии "А" на вывод, а линии "В" на ввод. Для сканирования штатной клавиатуры (формат РК86) применяется т.н. "бегущий нолик", т.е. выходы порта "А" принимают только следующие состояния:

    Код:
    0 1 1 1 1 1 1 1 
    1 0 1 1 1 1 1 1 
    1 1 0 1 1 1 1 1 
    1 1 1 0 1 1 1 1 
    1 1 1 1 0 1 1 1 
    1 1 1 1 1 0 1 1 
    1 1 1 1 1 1 0 1 
    1 1 1 1 1 1 1 0
    Т.о. одновременно двух лог."0" на выходах порта "А" не бывает. Эта особенность и используется для организации четырёх виртуальных выходов для управления новыми устройствами через занятые линии. Пары соседних линий порта с помощью элементов "ИЛИ" объединяются в одиночные, образуя новые виртуальные выходы. Для управления новыми устройствами достаточно одновременно выставлять лог."0" на соответствующих парах порта #F400. После сеанса связи с новым устройством, выходы порта "А" возвращаются в изначальное состояние (по-умолчанию, FEh), и Орион готов к работе со штатной клавиатурой, а новые устройства в режиме паузы/сна.

    Для приёма сигналов используются линии порта "В", которые, согласно схемотехнике РК'шной клавиатуры, подтянуты резисторами 2 ком к шине питания, т.о. на них сформирована лог."1", а для выставления лог."0" достаточно коммутировать на землю через транзисторный ключ или ЛЭ с ОК на выходе. В режиме "спячки" новые устройства не должны выставлять лог."0" на линиях порта "В".
    RTC изначально удовлетворяет этим условиям, а вот с клавиатурой пришлось "похимичить", сделав работу с линией CLK в инверсной логике. Дело в том, что в обычном режиме клавиатура PS/2 может сама в произвольный момент (относительно работы процедуры сканирования штатной клавиатуры) выдавать данные, и т.о. может возникнуть коллизия. Поэтому клавиатура PS/2 принудительно переводится в режим ожидания прижиманием линии CLK к земле, и только во время её опроса линия будет освобождаться драйвером и производиться обработка байтовых посылок.

    Пока разработка на стадии идеи, макетирование и написание ПО будет позже

    Конструктивно девайс можно оформить в виде переходника между штатной клавиатурой Ориона и материнской платой или наМГТФить непосредственно на выводах порта ВВ55.
    Последний раз редактировалось Denn; 17.01.2019 в 18:33.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,387
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Игры лазающие в порт клавиатуры очень запросто могут выдавать одновременно несколько нулевых битов для сканирования одновременно нажатых клавиш, что теоретически может привести к нарушению работы дивайсов висящих на I2C на клавиатурном порту A. Может, использовать половинку порта С работающую на вывод? На ввод можно как и есть использвать порт "В". Даже если оставить вывод на магнитофон и светодиод Рус-ЛАТ (я например не использую ни тот ни другой), то остается 2 нигде не использующихся бита порта С. Если использовать их под SCL, то оставшиеся (магнитофон и светодиод Рус-ЛАТ) можно параллельно вывести на SDA 2х устройств I2C. Не будет использоваться доп. корпус ИЛИ, все развяжется на полдюжине диодов и резисторов.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,889
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    117 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Игры лазающие в порт клавиатуры очень запросто могут выдавать одновременно несколько нулевых битов для сканирования одновременно нажатых клавиш, что теоретически может привести к нарушению работы дивайсов висящих на I2C на клавиатурном порту A.
    Мысль интересная. Очевидно там могут быть только проверки на стрелки, пробел и [ВК]. Надо будет проанализировать этот момент. Возможно придётся "раскидать" сигналы не по смежным битам.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Может, использовать половинку порта С работающую на вывод? На ввод можно как и есть использвать порт "В". Даже если оставить вывод на магнитофон и светодиод Рус-ЛАТ (я например не использую ни тот ни другой), то остается 2 нигде не использующихся бита порта С.
    Не использующиеся в клавиатуре уже все задействованы! РС1 и РС2 использованы для переключения банков большого ROM-диска, SROM™ и ЭД™.

    Также ампутировать магнитофон и светик РУС/ЛАТ никак нельзя, это ж святое! И, самое важное, оно поддержано в разнообразном орионовском ПО
    Последний раз редактировалось Denn; 18.01.2019 в 14:16.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  5. #4
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,387
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Мысль интересная. Очевидно там могут быть только проверки на стрелки, пробел и [ВК]. Надо будет проанализировать этот момент. Возможно придётся "раскидать" сигналы не по смежным битам.
    Еще в адаптациях от Спектрума часто использовался "SINCLAIR-джойстик" - там их два: основной на клавишах 6, 7, 8, 9, 0 и дополнительный на 1, 2, 3, 4, 5.
    В принципе если эти варианты учесть, то даже при переназначении клавиш можно назначать "неконфликтующие варианты". Остальное покажет практика: все способы опроса (зависящие от замороченности авторов кода опроса) заранее все равно не учесть.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #5
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,889
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    117 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Остальное покажет практика: все способы опроса (зависящие от замороченности авторов кода опроса) заранее все равно не учесть.
    Практика показывает, что далее приглашения Монитора дело не доходит
    А программированием под Орион нынче не занимаются, и вероятность того что будут, стремится к нулю.. ((
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  7. #6
    Activist Аватар для Stampmaker
    Регистрация
    08.02.2015
    Адрес
    г. Санкт-Петербург
    Сообщений
    231
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    А программированием под Орион нынче не занимаются, и вероятность того что будут, стремится к нулю.. ((
    особенно написанием игр с обращением напрямую к порту клавиатуры


    а вот, кстати, может кто в курсе, какие именно существующие для Ориона игры используют прямое обращение к клаве? сомневаюсь, что таковых много и что они капец какие интересные, что хочется в них играть снова и снова.

  8. #7
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,387
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Stampmaker Посмотреть сообщение
    особенно написанием игр с обращением напрямую к порту клавиатуры


    а вот, кстати, может кто в курсе, какие именно существующие для Ориона игры используют прямое обращение к клаве? сомневаюсь, что таковых много и что они капец какие интересные, что хочется в них играть снова и снова.
    Из тех во что стоит играть это все адаптации со Спектрума - как под 8080 (DTE, SilentService, JetSet), так и под z80 (их сохранилось поболее - порядка 80 штук, там 100% прямой опрос клавы), а также подозреваю что и в некоторых оригинальных 8080 играх Ориона, например от LucksianKey (Kort, Almaz). Это навскидку из того что вспоминается, некоторые игры 8080 я вообще не запускал.

    Собственно я и имел в виду под "практика покажет" - тупо в игрушки поиграть.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #8
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,889
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    117 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Собственно я и имел в виду под "практика покажет" - тупо в игрушки поиграть.
    Мне кажется, в этом случае клиент не будет ставить альтернативные RTC и PS/2-клавиатуру, а соберёт "классику" и на этом успокоится.

    Часы и "нормальная" клавиатура это всё же с прицелом на работу на Орионе, кмк..

    - - - Добавлено - - -

    Кстати, ни разу не встречал обсуждений орионовских игр и вообще какого-либо софта. Либо с ПО всем всё предельно ясно-понятно (в отличие от того же Спектрума и иже с ним), либо никто вообще ни разу не пользовался. Если второй вариант, то возникает вопрос: для чего вообще компьютер? Но это так, лирика..
    Последний раз редактировалось Denn; 18.01.2019 в 15:00.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #9
    Moderator Аватар для Error404
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,387
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Мне кажется, в этом случае клиент не будет ставить альтернативные RTC и PS/2-клавиатуру, а соберёт "классику" и на этом успокоится.
    Часы и "нормальная" клавиатура это всё же с прицелом на работу на Орионе, кмк..
    пожалуй так. Но все равно надо бы раскидать биты порта чтобы минимизировать ложные срабатывания.
    я сам бывает лажу в порт клавиатуры мимо Монитора, причем сугубо в системных целях, но это в-основном лазание в порт С чтобы прочитать состояние управляющих клавиш, и только в одном месте такое непотребство позволяю себе - в драйвере консоли.

    Цитата Сообщение от Denn Посмотреть сообщение
    Кстати, ни разу не встречал обсуждений орионовских игр и вообще какого-либо софта. Либо с ПО всё предельно ясно-понятно, либо никто вообще ни разу не пользовался. Если второй вариант, то возникает вопрос: для чего вообще компьютер? Но это так, лирика..
    Да, тоже сложилось такое мнение. Народ в-основном собирается любители попаять. Опять же желание поболтать на тему ПО наверное возникнет в том случае если начать что-то самому делать из ПО. В этом смысле жаль, что мало кто делает что-то хотя бы несложное из ПО. Ну или даже если любители паять, то для своих аппаратных самоделок что-то бы закодили (типа драйвера), уже было бы интересно обсудить.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #10
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,889
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    164
    Поблагодарили
    117 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    я сам бывает лажу в порт клавиатуры мимо Монитора, причем сугубо в системных целях, но это в-основном лазание в порт С чтобы прочитать состояние управляющих клавиш
    Не без этого По возможности стараюсь пользовать стандартное (например, сканирование клавы через F81Bh), но если требуемого функционала нет (опрос клавиш Ctrl, Shift, ALF), то приходится лазить в порт, иначе никак.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Опять же желание поболтать на тему ПО наверное возникнет в том случае если начать что-то самому делать из ПО.
    А как же на Спектрумах? Там же далеко не все кодят, обсуждают как раз простые юзеры.


    Цитата Сообщение от Error404 Посмотреть сообщение
    В этом смысле жаль, что мало кто делает что-то хотя бы несложное из ПО. Ну или даже если любители паять, то для своих аппаратных самоделок что-то бы закодили (типа драйвера), уже было бы интересно обсудить.
    Была бы интересна хоть какая-то движуха. А так вообще не понятно зачем русские 8-битки, и ещё более не понятно зачем их сейчас собирают..
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 210
    Последнее: 08.06.2019, 05:00
  2. Ответов: 8
    Последнее: 01.12.2016, 02:50
  3. Ответов: 8
    Последнее: 01.05.2006, 01:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •