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

User Tag List

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

Тема: Безвейтовый контроллер PS/2 клавиатуры на AVR + CPLD для ZX Spectrum и клонов

  1. #1
    Master Аватар для andykarpov
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    691
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    29 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Безвейтовый контроллер PS/2 клавиатуры на AVR + CPLD для ZX Spectrum и клонов

    Уважаемые коллеги,

    Вашему вниманию предлагается очередной контроллер PS/2 клавиатуры для ZX Spectrum совместимых компьютеров и многочисленных клонов.
    Построен данный контроллер на базе Atmega328p и CPLD Altera EPM7128STC100.



    Детали проекта: https://github.com/andykarpov/ps2_cpld_kbd/

    За основу была взята идея отсюда: http://www.jrok.com/project/speckey/spec_key.html

    Принцип работы:
    AVR слушает события от PS/2 клавиатуры, заполняет некую внутреннюю матрицу состояний 40-кнопочной клавиатуры и по SPI протоколу передает эту матрицу в CPLD, которая, в свою очередь, слушает адресные линии клавиатуры и моментально отображает результат в порт клавиатуры ZX Spectrum.

    Исходники железной и софтовой части проекта открыты, можно ознакомиться с принципом работы и внести коррективы, если потребуется
    Кроме стандартных 40-кнопок также реализованы клавиатурные комбинации ZX Spectrum, включая курсор.

    Из дополнительных плюшек:
    - сигнал RESET по Ctrl+Alt+Del (формируется короткий импульс сброса)
    - сигнал TURBO по Scroll Lock (переключается 2 состояния с запоминанием выбора в EEPROM меги)
    - сигнал MAGICK по F2 (формируется короткий импульс)
    - сигнал SPECIAL по Print Screen (также как и в TURBO, переключается между двумя состояниями)
    - индикация TURBO и SPECIAL, а также активности устройства на светодиодах, расположенных на плате

    Работоспособность проверялось вместе с ZX Max 128 и ZX 128 Spider.
    Мои железки: ​Karabas-Nano, Karabas-128, ZX Evolution, ZX 128 Spider, MIST 1.31, Львов 2.0, ZX UNO, Reverse-U16, Aeon Lite, Harlequin, DivGMX, Profi 3.02, Profi 5.06, Just Speccy 128, Uzebox, Maximite Colour, CMOS Galaksija, Galaksija SMD


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

  3. #2
    Veteran Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    1,438
    Спасибо Благодарностей отдано 
    62
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сразу нубский вопрос. В чем принципиальное отличие от аналогов на atmega без epm? Более простое подключение A8-A15 + KB0-KB7 + GND?

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

    Запитывать платку через J4?

  4. #3
    Master
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    887
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    13 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Принципиальное отличие в том, что контроллеры только на атмеге без плисины в турбо-режимах нифига не успевают без вайта.
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  5. #4
    Guru Аватар для caro
    Регистрация
    14.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,629
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    29
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    Принципиальное отличие в том, что контроллеры только на атмеге без плисины в турбо-режимах нифига не успевают без вайта.
    При правильном турбировании время обращения к устройствам ввода/вывода надо оставлять неизменным в самом компе.

  6. #5
    Master
    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    887
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    13 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А есть список правильно турбированных клонов и неправильно турбированных клонов?
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  7. #6
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,236
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    37 сообщений
    Mentioned
    3 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    А есть список правильно турбированных клонов и неправильно турбированных клонов?
    ну один я знаю точно - Профи 5. в нем, на верхней плате, есть узел на одновибраторе АГ3, который по спаду /IORQ генерит wait длительностью 400нс для удлинения /IORQ, /WR, /RD. этого достаточно для отклика дешифраторов и БИС.
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    2. Profi 3.2/1Mb/3`5FDD/HDD6.4Gb/Pentagon_Fix
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

  8. #7
    Master Аватар для andykarpov
    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    691
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    29 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Сразу нубский вопрос. В чем принципиальное отличие от аналогов на atmega без epm? Более простое подключение A8-A15 + KB0-KB7 + GND?
    Запитывать платку через J4?
    Все верно, A8-A15, KB0-KB4, GND, VCC. Этого достаточно в минимально рабочем варианте
    Принципиальное отличие - безвейтовость, ибо в турбо-режимах в отечественных клонах, говорят, атмега не успевает. Ну и требование к самой прошивке упрощаются, многие закидают камнями, наверн, но скетч написан в Arduino IDE Теоретически, если б Atmega8 имела CKOUT, можно было бы и на ней собрать, по размеру точно входит...

    Д, запитывать через J4.
    Мои железки: ​Karabas-Nano, Karabas-128, ZX Evolution, ZX 128 Spider, MIST 1.31, Львов 2.0, ZX UNO, Reverse-U16, Aeon Lite, Harlequin, DivGMX, Profi 3.02, Profi 5.06, Just Speccy 128, Uzebox, Maximite Colour, CMOS Galaksija, Galaksija SMD


  9. #8
    Guru Аватар для caro
    Регистрация
    14.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,629
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    29
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В любой турбированный комп на Z80 встраиваем один из вариантов схемы и по сигналу /TURBO = '0' получаем удлиненный цикл обращения к устройствам ввода/вывода:
    Нажмите на изображение для увеличения. 

Название:	turbo_wt.jpg 
Просмотров:	266 
Размер:	28.0 Кб 
ID:	68678

  10. #9
    Guru Аватар для JV-Soft
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,492
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    60
    Поблагодарили
    18 сообщений
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от caro Посмотреть сообщение
    В любой турбированный комп на Z80 встраиваем один из вариантов схемы и по сигналу /TURBO = '0' получаем удлиненный цикл обращения к устройствам ввода/вывода:
    Да ,но тогда например в турбо MOD player будет неправильно играть , в нем все посчитано по тактам , и постоянно опрашивается клава и мышь , при опросе будут тормоза ,что выльется в неправильный звук.

    Арфы нет ,возьмите бубен
    Безумие это повторение одного и того же в ожидании другого результата.


    Сайт http://p-45.zzz.com.ua
    Amiga A500
    Восстановлен(2018) дополнен и в строю - Pentagon (1991) 1024k (256kb ROM 4 конфигурации ПЗУ)/turbo 7 мгц/кеш 32кб/covox/ TS /AY mouse/fdd 3.5" /Nemo-Ide/10gb HDD (DNA-OS)
    Восстановлен(2015) и в строю - Харьков 128
    Восстановлен(2016) ZX-Дигитайзер

    Ждут паяльника - пентагон 48 , pentagon 128.
    [свернуть]

  11. #10
    Guru Аватар для caro
    Регистрация
    14.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,629
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    29
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Да ,но тогда например в турбо MOD player будет неправильно играть , в нем все посчитано по тактам , и постоянно опрашивается клава и мышь , при опросе будут тормоза ,что выльется в неправильный звук.
    Не понимаю, что значит постоянно опрашивается и зачем это делать слишком часто.
    Если опрос идет по кадровому прерыванию, то задержка будет мизерной.
    Но лучше конечно проверить всё это на реальном железе.

    PS. Посмотрел исходник MODPLAY - опрос кэмпстон маус происходит по кадровому прерыванию
    Последний раз редактировалось caro; 03.04.2019 в 14:38.

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

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

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

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

Похожие темы

  1. Ответов: 239
    Последнее: 20.11.2019, 00:24
  2. Ответов: 0
    Последнее: 28.04.2008, 16:57
  3. Ответов: 23
    Последнее: 07.03.2007, 13:17
  4. Контроллер клавиатуры для Скорпиона
    от Nikolaj Amosov (500:812/02.26) в разделе Устройства ввода
    Ответов: 1
    Последнее: 15.11.2005, 23:05

Ваши права

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