Этот контроллер подерживает ps/2 клавиатуру? Можно поподробнее об этом?
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
Основное назначение подключение двух джойстиков с возможностью программного переключения их типа. Но для PS2 клавиатуры есть четырех штырьковый разъем на плате, через который можно подключить кабель к разъему PS2 клавиатуры. Осталось написать прошивку под нее. Ищу исходники на ассемблере с опросом клавиатуры по прерываниям.
Клавиатура получится без WAIT. На плате есть выходы сигналов WAIT (только для остановки игры), RESET, NMI.
Плата подключается к разъему механической клавиатуры через соответствующий переходник, который надо будет сделать под каждый компьютер самостоятельно.
"L-256"
Какая раскладка предполагается на клавиатуре? Возможность изменения раскладки?
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
Если исходники открыты, то рекомендаций нет, всё на ваше усмотрение.
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
Важная информация:
При разработке было сделано все, чтобы была совместимость с очень популярным копьютером ZX-EVO. Разъемы сделаны с одинаковой распиновкой из описания к ZX-EVO. Но в ZX-EVO логика работы разъема механической клавиатуры оказалось обратной логике работы оригинального ZX SPECTRUMA - входы и выходы сделаны наоборот.
Информация взята с форума TS-Labs (http://tslabs.info/forum/viewtopic.php?f=6&t=231). Поэтому без доработки прошивки ZX-EVO SUPER JOYSTICK PORT 2 на ZX-EVO работать не будет !by Sergey78 » Fri, 12.07.2013 08:19:10
...
Посмотрел исходники АВР. Так оказывается мех.клавиатура наоборот опрашивается. 0 выдается на ZXCOL, нажатие читается с ZXROW.
Пока совместимость остается с компьютерами, у которых стандартная логика работы разъема механической клавиатуры: SCORPION, PENTAGON, KAY, LENINGRAD.
Текущая прошивка проверена в работе c LENINGRAD-2012. Одиночные кнопки передаются на клавиатуру. Следующим шагом надо подключить опрос SEGA джойстиков с использованием прерываний.
Последний раз редактировалось zx-kit; 12.02.2015 в 11:23.
"L-256"
Такой вопрос - на контроллере "KEYB&SINC" для ATMEGA48 нужен был сигнал выбора порта клавиатуры /RDIO. Тут в схеме он не используются. Как это повлияло ни работу атмеги и какие изменения в логике работы пришлось внести?
ZX-Evo Rev. C4 (Double-config) / VDAC2 / ZiFi / NeoGS / ZXM-Soundcard Extreme
В KEYB&SINC опрос Aтмегой PS/2 клавиатуры не по прерываниям. Атмега готовил 256 варианатов ответов о состоянии клавиатуры. По прерываниям от вышеуказанного сигнала выдавался тот ответ, который соответствовал старшему байту адреса при опросе клавиатуры. Обычно там ноль в одном разряде, а в остальных единицы. Но некоторые программы могут и несколько нулей выставить. Насколько я знаю, клавиатура там работает в режиме SCAN CODE 3.
В "SUPER JOYSTICK PORT 2" опрос PS/2 клавиатуры, SEGA джойстиков и порта UART - по прерываниям. Это позволяет Атмеге обрабатывать данные с трех источников. Периодически она записывает новые данные в 9 регистров: состояние 40 кнопок + 5 сигналов KEMPSTON джойстика + три сигнала на Z80. Выходы 8 регистров клавиатуры выдают через диоды данные на 5 линий данных клавиатуры. Ноль в старшем байте адреса выбирает один или несколько регистров, с которых нужно считать состояние кнопок. Теперь работа не привязана к сигналу чтения с клавиатуры. Данные в регистрах можно обновлять около 5 раз за кадр телевизора. Клавиатуру в играх обычно опрашивают 1 раз за кадр. Текущее состояние клавиатуры всегда готово для чтения и не требует торможения Z80, как в некоторых контроллерах PS/2 клавиатуры.
Теперь не важно, с обычной скоростью работает Z80 - стандартной или TURBO. Ну и плюс дополнительные функции типа двух джойстиков с выбором типа.
Последний раз редактировалось zx-kit; 12.02.2015 в 19:35.
"L-256"
Для подключения SEGA джойстика используется вилка DB-9M, которая имеет следующую распиновку:
1. UP/Z
2. DOWN/Y
3. LEFT/X
4. RIGHT/SELECT
5. +5V
6. A/B
7. SYN (вход управления)
8. GND
9. START/C
Как вы уже знаете, SEGA джойстик можно подключить без вскрытия, разрезания дорожек и сложных схем управления. Его уже подключали к SPECCY2010, KAY-2010, LENINGRAD-2012, KEYB&SINC. Но простым способом можно опросить только 6 кнопок. В LENINGRAD-2012 шестая кнопка подключена как AUTOFIRE.
В новом устройстве нужно опросить все 12 кнопок SEGA джойстика, а это уже более сложная задача.
Но решаемая. На вход SYN джойстика нужно подать последовательность импульсов:
1. 0 50 мкс
2. 1 50 мкс
3. 0 50 мкс
4. 1 50 мкс
5. 0 50 мкс
6. 1 50 мкс
7. 0 50 мкс
8. 1 2000 мкс
Затем опять с 1 по 8 интервалы.
В игре MORTAL COMBAT 3 на игровой приставке SEGA интервалы времени 1-7 по 13.8 мкс, а 8 интервал около 16.57 мс. Но эти интервалы можно менять в достаточно широком диапазоне. В нашем устройстве, одиночные импульсы, для уменьшения нагрузки на микроконтроллер, по 50 мкс, а опрос джойстика сделаем чаще, через 2.4 мс. Такой управляющий сигнал будем формировать с помощью прерываний от таймера, настроенного на интервал 50 мкс.
Читать данные с SEGA джойстика будем в следующие моменты:
В конце 4 интервала: LEFT, RIGHT, DOWN, UP
В конце 5 интервала: A, START
В конце 6 интервала: X, Y, Z, B, C, SELECT
В текущей версии прошивки настроены прерывания на 50 мкс и сформирован тестовый меандр частотой 10 кГц (1/100 мкс).
"L-256"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)