User Tag List

Страница 2 из 7 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 63

Тема: "Океан-240": подключение клавиатуры

  1. #11
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,924
    Спасибо Благодарностей отдано 
    179
    Спасибо Благодарностей получено 
    697
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Условия задачи (неясно выраженные) не позволяют что-либо резать или припаивать к плате. Как в этом случае интерфейситься с 40-ногим контроллером, через все те же 7 параллельных бит и строб, я не понимаю.
    Тогда вопрос снят. Хотя можно более изящнее поступить. Взять дешевенькую или убитую PS/2 или USB клаву, выкинуть плату - а вместо нее поставить какую нибудь мегу. Профит в том что сразу делается как нужно без всяких переходников PS/2 то чего то там. Минус этой идеи в том, что плата (если она культурно выглядит) будет заточена под конкретную клаву (вернее корпус с кнопками)
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  2. #12
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Тогда вопрос снят. Хотя можно более изящнее поступить. Взять дешевенькую или убитую PS/2 или USB клаву, выкинуть плату - а вместо нее поставить какую нибудь мегу. Профит в том что сразу делается как нужно без всяких переходников PS/2 то чего то там. Минус этой идеи в том, что плата (если она культурно выглядит) будет заточена под конкретную клаву (вернее корпус с кнопками)
    Такой вариант тоже неплох. В старых клавиатурах контроллер занимает маленькую плату и переделать ее не составит труда. Но вот шнур с пятью проводками от клавы уже не заюзать (7 бит + строб, земля и питание и еще сброс со стороны компа). Промежуточное решение - контроллер PS2 в 7+stb посадить внутрь компа.

  3. #13
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,924
    Спасибо Благодарностей отдано 
    179
    Спасибо Благодарностей получено 
    697
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Но вот шнур с пятью проводками от клавы уже не заюзать (7 бит + строб, земля и питание и еще сброс со стороны компа).
    Стандартный шнур да, не получится использовать, но тут можно и от VGA кабеля взять шнур или шнур от RS-232 кабеля.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  4. #14
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://www.pjrc.com/teensy/td_libs_PS2Keyboard.html (библиотека PS/2 Keyboard для Arduino здесь https://github.com/PaulStoffregen/PS2Keyboard)

  5. #15
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подключил PS/2 клавиатуру через Arduino с простым скетчем. "Турбо-Монитор" странно воспринимает нажатия клавиш, например, пробел ему видится семеркой, а практически все остальные клавиши воспринимаются как листание назад.

    Какое-то странное у этого Монитора представление о клавиатуре. В частности, строб сброса он выдает не на PC7, а на PC4:

    Скрытый текст

    Код:
    sub_e103h:        ld a,093h               ;e103   3e 93
            out (043h),a            ;e105   d3 43
            ld a,010h               ;e107   3e 10
            out (042h),a            ;e109   d3 42
            xor a                   ;e10b   af
            out (042h),a            ;e10c   d3 42
            xor a                   ;e10e   af
            ld (0bffah),a           ;e10f   32 fa bf
            ret                     ;e112   c9
    [свернуть]


    Возможно, его тяжело патчили когда-то.

    Да и сам ввод с клавиатуры презанятный:

    Скрытый текст

    l
    Код:
    e131h:
            push bc                 ;e131   c5
            ld b,a                  ;e132   47
            in a,(042h)             ;e133   db 42
            and 00fh                ;e135   e6 0f
            ld c,a                  ;e137   4f
            in a,(041h)             ;e138   db 41   ; чтение из порта B. Клавиши-модификаторы?
            rra                     ;e13a   1f
            and 030h                ;e13b   e6 30
            or c                    ;e13d   b1
            ld c,a                  ;e13e   4f
            ld a,010h               ;e13f   3e 10
            out (042h),a            ;e141   d3 42
            xor a                   ;e143   af
            out (042h),a            ;e144   d3 42
            ld a,b                  ;e146   78
            ld b,0ffh               ;e147   06 ff
    le149h:
            inc b                   ;e149   04
            rra                     ;e14a   1f
            jp nc,le149h            ;e14b   d2 49 e1
            ld a,c                  ;e14e   79
            rla                     ;e14f   17
            rla                     ;e150   17
            rla                     ;e151   17
    и так далее
    [свернуть]


    Получается, у нас есть 2 разных монитора. Один с надписью "240/7 MONITOR", назовем его классическим, рассчитанный на клавиатуру с собственным контроллером. И второй с надписью "HARDWARE MONITOR" и встроенным редактором памяти от AZMASTER, назовем его "Turbo Monitor", определенно использующий клавиатуру матричного типа.

    Есть смысл покопаться в этом мониторе на предмет других интересных отличий, как то: работа с магнитофоном в скоростном режиме, какие-нибудь иные полезные штуки.
    Последний раз редактировалось tnt23; 12.11.2018 в 09:30. Причина: озарение

  6. #16
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    хм... гонять кортекс ради простой перекодировки (бррр, аж мурашки побежали).., придётся всё же плотнее взяться за свой проект на ПИКе (если смогу врубиться в бгмерзкий сишный код)...

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

  8. #17
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А там кортекс разве? дохлая ATmega328, и безумно сложный код:

    Скрытый текст

    Код:
    #include <PS2Keyboard.h>
    
    const int DataPin = 4;
    const int IRQpin =  3;
    const byte ACKpin = 2;
    
    
    const int nSTB = 5;
    
    
    PS2Keyboard keyboard;
    
    
    void setup() {
      
      // PD5 is low active out strobe
      pinMode (nSTB, OUTPUT);
      digitalWrite (nSTB, HIGH);
    
    
      // PD6, PD7 map to Ok240's PA6 and PA7
      pinMode (6, OUTPUT);
      pinMode (7, OUTPUT);
    
    
      // PB0-PB5 map to Ok240's PA0-PA5
      pinMode (8, OUTPUT);
      pinMode (9, OUTPUT);
      pinMode (10, OUTPUT);
      pinMode (11, OUTPUT);
      pinMode (12, OUTPUT);
      pinMode (13, OUTPUT);
    
    
      // PD2 ACK strobe from OK240's PC7
      pinMode(ACKpin, INPUT_PULLUP);
      attachInterrupt(digitalPinToInterrupt(ACKpin), ClearSTB, RISING);
    
    
      keyboard.begin (DataPin, IRQpin);
    }
    
    
    void loop() {
    
    
      if (keyboard.available()) {
        
        // read the next key
        char c = keyboard.read();
      
        if (c & 0x01) {digitalWrite (8, HIGH);} else {digitalWrite (8, LOW);}
        if (c & 0x02) {digitalWrite (9, HIGH);} else {digitalWrite (9, LOW);}
        if (c & 0x04) {digitalWrite (10, HIGH);} else {digitalWrite (10, LOW);}
        if (c & 0x08) {digitalWrite (11, HIGH);} else {digitalWrite (11, LOW);}
        if (c & 0x10) {digitalWrite (12, HIGH);} else {digitalWrite (12, LOW);}
        if (c & 0x20) {digitalWrite (13, HIGH);} else {digitalWrite (13, LOW);}
    
    
        if (c & 0x40) {digitalWrite (6, HIGH);} else {digitalWrite (6, LOW);}
        if (c & 0x80) {digitalWrite (7, HIGH);} else {digitalWrite (7, LOW);} // Probably not needed for OK240
    
    
      // Strobe low
        digitalWrite (nSTB, LOW);
      }
    }
    
    
    void ClearSTB () {
        // Strobe high
        digitalWrite (nSTB, HIGH);
      
    }
    [свернуть]


    В общем, взял монитор 240-7, с ним клавиатура зажила долго и счастливо.

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

    Цитата Сообщение от rw6hrm Посмотреть сообщение
    хм... гонять кортекс ради простой перекодировки (бррр, аж мурашки побежали).., придётся всё же плотнее взяться за свой проект на ПИКе (если смогу врубиться в бгмерзкий сишный код)...
    Там не совсем уж простая перекодировка. Клавы же генерят скан-коды на нажатие и отпускание, и они бывают до четырех байт длиной. Опять же нужно сделать, чтобы на составные нажатия типа Ctrl+C генерился однобайтовый код 0x03. И еще внешний сброс пристроить по Alt+Ctrl+Del, и проч.

    (И если выбирать между PIC и AVR, так по мне лучше AVR)
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	photo_2018-11-11_18-44-31 (2).jpg 
Просмотров:	473 
Размер:	96.4 Кб 
ID:	66886  

  9. #18
    Veteran Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    дохлая ATmega328
    ...ну да, конечно, дохлая... https://zx-pk.ru/threads/26871-8-bit...nyj-modul.html
    Попробую на Атмега8. А перекодировка реально простая, гляньте код из http://knzl.de/ps2-keyboard-for-apple-ii/ . Там не нужно всё принимать во внимание. И, кстати, сброс там тоже есть

  10. #19
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rw6hrm Посмотреть сообщение
    ...ну да, конечно, дохлая... https://zx-pk.ru/threads/26871-8-bit...nyj-modul.html
    Да это понятно, что мега могуча: и композитное видео потянет, и MFM поток разобрать сможет. Я сваял на 328, потому что а) есть готовая хорошая библиотека PS2Keyboard для ардуины, б) смог отобрать Uno R3 у ребенка, и в) Nano 3 в Питере можно купить за 210р.

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

    Переходник для PS/2 клавиатуры под Arduino Uno R3:

    Нажмите на изображение для увеличения. 

Название:	photo_2018-11-11_22-38-06.jpg 
Просмотров:	192 
Размер:	53.4 Кб 
ID:	66887

  11. #20
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Есть в изобилии маленькие чистые платки от проекта для Специалиста МХ2 для подключения клавиатуры PS/2 вместо матричной на кнопках.
    Посмотрел, этот контроллер тоже можно перезаточить под "параллельный+строб".

Страница 2 из 7 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Компьютер "Океан-240"
    от Gryphon в разделе Океан-240
    Ответов: 404
    Последнее: 17.03.2024, 20:27
  2. Реплики платы ПЭВМ "Океан-240"
    от perestoronin в разделе Океан-240
    Ответов: 300
    Последнее: 15.01.2024, 21:09
  3. Реплика КНГМД ПЭВМ "Океан-240"
    от Viktor2312 в разделе Океан-240
    Ответов: 54
    Последнее: 15.12.2023, 21:55
  4. Ответов: 22
    Последнее: 06.12.2018, 11:55
  5. Ответов: 3
    Последнее: 16.10.2010, 14:04

Ваши права

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