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

User Tag List

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

Тема: PS/2 клавиатура на базе Arduino Nano

  1. #1
    Master Аватар для Voxel
    Регистрация
    18.01.2005
    Адрес
    Тихвин
    Сообщений
    509
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию PS/2 клавиатура на базе Arduino Nano

    Вроде не нашел темы по замене клавиатуры для 86РК в теме про РК.

    Прикупил на али Arduino Nano ТАКУЮ. Знаю что можно использовать схему Caro на Atmega48, как я понимаю и на 168/328 соответственно.
    Вопрос такой можно использовать готовую плату, не сдувая с нее чип? И как получить прошивку под 168/328 желательно с описанием, что делать? А то РК ни как не могу до ума довести без клавиатуры.
    УКНЦ+FDD+HDD; ZX-NEXT; Scorpion 256k; ZXM Phoenix+TurboSoundFM; Spectrum 48k; ZX Hobbit; Radio 86RK

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

  3. #2
    Guru Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    737
    Спасибо Благодарностей получено 
    451
    Поблагодарили
    250 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я про РК мало что знаю, но вот парни такую ардуинку к разным клонам спека подключают.

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



    [свернуть]

  4. Этот пользователь поблагодарил SoftLight за это полезное сообщение:

    Voxel (27.08.2019)

  5. #3
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Я про РК мало что знаю, но вот парни такую ардуинку к разным клонам спека подключают.
    А безвейтово им, стало быть, слабо?

  6. #4
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    А безвейтово им, стало быть, слабо?
    Так там 16 МГц всего. Они пишут, что время реакции должно составлять ~680 нс. Получается, при их 16 МГц это 10.9 тактов AVR-ки.
    Вот было бы 11 - уложились бы:

    4 такта уйдет на вход в прерывание
    3 на JMP по вектору
    1 такт на чтение шины адреса
    2 такта на взятие из памяти байта данных, соответствующего прочтенному адресу
    1 такт на вывод байта на шину данных

    А так всегда есть вероятность, что проц полезет читать шину в те 6 нс, когда данные ещё не готовы.

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

    Но это в случае спектрума, а для РК86 вейт, по-моему, не нужен, даже если на Си прошивку писать.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  7. #5
    Master
    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    891
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    4 такта уйдет на вход в прерывание
    3 на JMP по вектору
    А зачем такие сложности!? Просто проверяем ULA.RD в цикле и переходим на обработку запроса, команда SBIS выполняется от 1 до 3 тактов, а обработку PS\2 вешаем на прерывание...

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

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Так там 16 МГц всего.
    Меги спокойно работают и на 20МГц

  8. #6
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    А зачем такие сложности!?
    Меги спокойно работают и на 20МГц
    Речь про конкретный девайс и конкретный подход его авторов.

    С прерыванием на PS/2 плохо то, что тогда вся логика конвертации кодов и подготовки 256-байтной таблицы будет прямо в прерывании. Понятно, что шина медленная, пакеты редкие и т.д. Но однажды мы всё же проигнорим очередной опрос, и игра словит ложное отпускание кнопки. Лучше уж wait.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  9. #7
    Master
    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    891
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    прерыванием на PS/2 плохо то, что тогда вся логика конвертации кодов и подготовки 256-байтной таблицы будет прямо в прерывании. Понятно, что шина медленная, пакеты редкие и т.д. Но однажды мы всё же проигнорим очередной опрос, и игра словит ложное отпускание кнопки. Лучше уж wait.
    Прерываение нормально, если делать его только на перепад синхросигнала, т.е. "упал" клок в "0" - записали бит данных и дальше "слушаем" ULA.RD.
    Таблицу клавиш строим заранее, т.е. строим таблицу где коду клавиши ПС/2 соответствует маска на ШД (в данном случае для Спека). Для хранения маски нажатых клавиш используется всего 8 ячеек,т.е. не так уж и много. При активном ULA.RD считываем ША и выводим нужную ячейку на ШД. Ничего не пропускаем и ни каких ложных срабатываний. Это теория, надо пробывать...
    Заканчивает, тема не про Спек! ))))

  10. #8
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    Для хранения маски нажатых клавиш используется всего 8 ячеек,т.е. не так уж и много.
    А что если опрашивается, допустим, порт 0xFCFE? Будем в самом критичном к таймингам месте бегать по ячейкам и AND-ить их? Предварительная подготовка полной таблицы сэкономит нам время и на этом, и на вычислении адреса - мы просто разместим её в памяти так, чтобы младший байт адреса ячейки совпадал со старшим байтом адреса порта.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  11. #9
    Master
    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    891
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    49 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    А что если опрашивается, допустим, порт 0xFCFE? Будем в самом критичном к таймингам месте бегать по ячейкам и AND-ить их?
    Не знаю что это за порт, в стандартной конфигурации такого нет. Из ША используются только А8-А15, сканируется матрица клавиатуры "0" по одной из этих линий, так, что и портов только 8, соответсвенно и 8 ячеек для хранения маски нажатых клавиш. Операция И или ИЛИ (для создания маски нескольких нажатых клавиш по одному порту) - это не столь важно и не критично, даже если Спек прочитает состояние одной из ячеек без нажатой клавиши (момент когда еще по ПС\2 не полностью считан код и в ячейке предыдущее состояние) это ни к чему не приведет, ведь и с обычной клавиатурой Спека не всегда клавиши жмутся в нужный момент и одновременно...

  12. #10
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    Не знаю что это за порт, в стандартной конфигурации такого нет.
    Ага, порта нет, а диоды на линиях адреса у клавиатурной матрицы зачем-то есть Вот, на любом спектруме
    10 PRINT AT 0,0; IN 64766;" ": GO TO 10
    И понажимать CS...V и A...G

    Так, знаете, мы дойдем до того, что PRESS ANY KEY TO CONTINUE через IN 254 делать тоже нельзя. Это ж 0 на всех A8..A15, катастрофа!

    У 86РК тоже диоды на матрице, так что не офтоп
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

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

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

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

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

Похожие темы

  1. Karabas-Nano
    от andykarpov в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 410
    Последнее: 23.04.2024, 18:23
  2. Ответов: 8
    Последнее: 25.10.2017, 19:59

Ваши права

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