Просмотр полной версии : ZX HID Keyboard Controller
Предлагаю контроллер USB клавиатуры,
который эмулирует механическую клавиатуру,
плюс можно подключить синклер джойстики.
К спектрум машинам подключается без переделок,
единственное надо подавать +5V и если необходимо подкюлчать
TURBO, RESET и MAGIC.
Конкретно эту схему не проверял, пока жду EPM7064,
но подобная работает на PROFI 5.06, там только PIC
подключается к EPM570.
Все что у меня есть USB клавиатуры работают, только одна китайская
не хотела сначала определятся, но потом видимо при увеличении
пауз между запросами тоже заработала.
Так же работают и безпроводные клавиатуры с RF свистками.
Безпроводные мыши, которые идут в комплекте с клавиатурой,
тоже определяются, пока проверял только в отладке через RS232,
но для них нужна другая прошивка. Если две прошивки совместить,
то можно сделать что-то типа Z-Controllerа, но с USB.
Ну и документация:
ZXHIDKEYBOARD.zip (https://yadi.sk/d/jk9kCt5jeMnZu) -обновление 20.10.2014
ZXHIDKEYBOARD v02.7z (https://yadi.sk/d/lS20ZWr1eMnPB) - обновление 31.01.2015
ZXHIDKEYBOARD v03.7z (https://yadi.sk/d/1nLRxxWffku5n) - обновление 04.04.2015
ZXHIDKEYBOARD ext.7z (https://yadi.sk/d/VhuxkevLfkuA5) - добавлено 04.04.2015 (вариант для расширенной клавиатуры Samcoupe)
подобная работает на PROFI 5.06
Уточни насчет работы с Профи, как контроллер работает с дополнительными и функциональными клавишами? Какая раскладка относительно фирменного контроллера? (работа клавиатуры в ср/м и пр...)
---------- Post added at 21:27 ---------- Previous post was at 21:24 ----------
Предлагаю контроллер USB клавиатуры
Если уже проверял, расскажи как ведет себя при использовании различных комбинаций одновременно нажатых клавиш?
Уточни насчет работы с Профи, как контроллер работает с дополнительными и функциональными клавишами? Какая раскладка относительно фирменного контроллера? (работа клавиатуры в ср/м и пр...)
Я пока не задействовал дополнительные и функциональные клавиши (сделал только курсорные, ESC и Bacspace) у меня все клавиатуры обрезаные без цифровых кнопок. Но доделать не сложно.
Я шестой бит пока не использовал, поэтому работает как обычная механическая.
Если уже проверял, расскажи как ведет себя при использовании различных комбинаций одновременно нажатых клавиш?
При одновременном нажатии нескольких клавиш ведет себя по разному,
зависит видимо как в матрице USB клавиатуры расположены кнопки и
на разных клавиатурах по разному.
Некоторые клавиатуры при нажатии трех рядом расположеных кнопок
выдают код ошибки 01, некоторые дают 4 нажать.
Всего в HID репорте 8 байт, первый отвечает за CTRL, SHIFT и ALT,
кстати т.к. этот байт отдельный, то их можно нажимать как угодно плюсом к буквенным клавишам. Следующий байт всегда 00 не разбирался за что он отвечает. И шесть байт с кодами нажатых клавиш. Т.е. всего можно зажать одновременно шесть клавиш и CTRL, SHIFT, ALT, но только если зажимаемые кнопки расположены в разных углах. Ну например 1,2,3 и 8,9,0 или j,k,l. Нажатие последовательно 4,5,6 приводит
к выдаче ошибки, но т.к. контроллер ошибку игнорирует для спектрума остаются зажаты 4 и 5.
Курсорные клавиш в меню TRDOS и CPM ведут себя нормально, а в играх
и бейсике иногда срабатывают как влево - вправо , иногда как 6-7, т.е.
надо будет какую-то задержку после CS ставить.
Вот пока как-то так.
Обновил архив.
Чуть поправил схему, подтянул к VCC цепи выбора линий,
заменил сигнал REFC на J1, и TCK подтянул к GND а не к VCC.
Соответственно и плату и небольшие изменения в прошивках.
J1 если замкнут, то клавиша ScrolLock работает как переключатель
(выход TURBO) иначе как кнопка.
PauseBreack - Reset,
PrintScreen - Magic.
Проверял схему на макетке, подключенной к Scorpion-1024.
На X5 выдается отладочная информация для RS232,
скорость 57600, 8бит, 1стопбит, без контроля четности.
VELESOFT
23.10.2014, 00:01
Super :-) :v2_thumb:
Can you make also firmware which only return state of each key ?
Example: return on serial output 102 bits (each bit present state of each key - 0=released key, 1=active key). Before first bit sending make sync on separate pin.
This way is good for universal use on other computers.
Use 3 pin to transfer state
each button, you get about 100 - 500 microseconds.
Transfer time critical?
It will be easier to do, at first glance
А нельзя ли попросить автора скинуть исходники для пика и для ПЛИС?
А нельзя ли попросить автора скинуть исходники для пика и для ПЛИС?
Для PICa возможно попозже выложу, а то есть кое какие идеи,
а если выложу исходники, то интерес пропадет.
Для Альтеры:
VELESOFT
23.10.2014, 18:50
Use 3 pin to transfer state
each button, you get about 100 - 500 microseconds.
Transfer time critical?
It will be easier to do, at first glance
I need make similar interface also for SAM COUPE computer which use 100% compatible keyboard with rubber ZX model + use next new keys as expansion (on different port). ZX use keyboard matrix 5x8, SAM COUPE use keyboard matrix 8x9.
Here is matrix of SAM COUPE keyboard:
http://velesoft.speccy.cz/samcoupe/keyboard/samcoupe_keyboard_orig_schematic.png
http://velesoft.speccy.cz/samcoupe/keyboard/samcoupe_keyboard_table.png
http://velesoft.speccy.cz/samcoupe/keyboard/samcoupe_keyboard_foto.jpg
More info here:
http://velesoft.speccy.cz/samcoupe_keyboard-cz.htm
This keyboard is 100% compatible with ZX Spectrum and new keys are readable on different keyboard ports. You can implement sam coupe keyboard support (on ZX/clones can be connect only pins for zx matrix support and on sam coupe we can connect all pins for full keyboard support. You need add one pin for select mode (ZX / SAM COUPE) and interface will more universal.
There are only 72 keys? PC Keyboard - 101 or more.
You need to create a table PC keyboard key -> SAM Coupe keyboard key.
EPM7064 is used by 91%, it will be necessary EPM3128 or EPM7128, which have TQFP 100pin
Вобще есть идея сделать несколько таблиц соответствия клавишь для начала 2,
переключаемых например по NUM LOCK и сделать возможность
их перезаписи через RS232, с редактором таблиц на PC.
Есть ли в этом необходимость?
Или тупо исходники выложить?
Если кому очень надо исходники USB есть в Microchip Solution
в них я только добавил функцию передачи кодов в CPLD и преобразования
PC клавиш в ZX клавиши ну и инициализацию ножек при старте.
VELESOFT
24.10.2014, 00:36
There are only 72 keys? PC Keyboard - 101 or more.
You need to create a table PC keyboard key -> SAM Coupe keyboard key.
Yes. Very similas as ZX keyboard + right numeric block work as SAM's function keys F0-F9,etc...
EPM7064 is used by 91%, it will be necessary EPM3128 or EPM7128, which have TQFP 100pin
It's not problem. I can use for example XILINX CPLD XC95144XL.
My idea is similar as here:
http://www.jrok.com/project/speckey/spec_key.html
http://www.jrok.com/project/speckey/diagrams/serial_shifter.jpg
Вобще есть идея сделать несколько таблиц соответствия клавишь для начала 2,
переключаемых например по NUM LOCK и сделать возможность
их перезаписи через RS232, с редактором таблиц на PC.
Yes, super :-)
Есть ли в этом необходимость?
Yes...
Next ideas:
- PC key PAUSE use for active WAIT signal for stop(pause) Z80 cpu.
- possibility emulate sinclair joystick on cursor keys
HardWareMan
24.10.2014, 05:50
My idea is similar as here:
http://www.jrok.com/project/speckey/spec_key.html
http://www.jrok.com/project/speckey/diagrams/serial_shifter.jpg
You can rid off one wire by using I2C. Since it will be interface with only one direction, there will be no problem with speed. If you want to transfer 72 keys 100 times every second, you will require only 72*100=7200 bits/s. It's payload. Data link speed can be 9600 bits/s and you can insert some extra bits, for example, reset button state.
VELESOFT
27.10.2014, 21:13
Курсорные клавиш в меню TRDOS и CPM ведут себя нормально, а в играх
и бейсике иногда срабатывают как влево - вправо , иногда как 6-7, т.е.
надо будет какую-то задержку после CS ставить.
For better functionality of cursor keys and all other keys combined with CS(shift) you must active SHIFT minimum one interrupt (1/50 sec) before combined key. Bigger delay = better autodetection in software.
VELESOFT
29.10.2014, 22:51
Any news ? Will you continue in this project ?
perestoronin
30.10.2014, 03:19
Думаю stm дешевле для подключения usb мышей, клавиатур и 3D-манипулятов к ретротехнике будет ( рассматриваю лишь те usb-устройства ввода, что не умеют работать в режиме ps/2: например такие: microsoft natural ergonomic keyboard 4000, logitech optical game mouse g400, 3Donnexion space navigator 3D).
У котов недавно писали:
Можешь за астрономические деньги AVRный at90usb647 купить, далее классически библиотека LUFA - насколько помню, USB HID Host там был реализован. С клавитуры кнопки получишь. Ну а PS/2 на передачу примитивен. Или сам за пару дней напишешь и отладишь, либо, думаю, на том же аврфрикс готовая библиотека скорее всего есть.
Вот с USB OTG в терре есть в наличии
at90usb647 - 312р
AT32UC3B0256 - 223р
stm32f105rb - 136р
все в корпусах tqfp64. выбирай архитектуру
stm32f105rb самый подходящий для адаптеров по цене, а Вы по прежнему лишь альтеру и микрочип рассматриваете для проекта для интерфейсв на стороне usb подключения.
HardWareMan
30.10.2014, 04:09
Плюсую ARMки т.к. они стали дешевле, а для таким ёмких задач их хватает с запасом.
Any news ? Will you continue in this project ?
While FPGA firmware made for keyboard 9x8.
Plenty of free pins of the FPGA, decided to connect a mouse.
Trying to make the PIC firmware for the mouse and keyboard
Думаю stm дешевле для подключения usb мышей, клавиатур и 3D-манипулятов к ретротехнике будет.
Возможно и дешевле, но на STM я только "Hello led" освоил, можно
конечно PICи отложить и заняться изучением STM, но так можно вобще
ничего не разработать, т.к. интерес со временем проходит.
Да и без ПЛИС сможет ли STM постоянно на выход выдавать
состояние кнопок, в зависимости от комбинации опрашиваемых
линий? Чтоб без wait, без сигналов чтения порта FE.
HardWareMan
30.10.2014, 14:11
While FPGA firmware made for keyboard 9x8.
Да и без ПЛИС сможет ли STM постоянно на выход выдавать
состояние кнопок, в зависимости от комбинации опрашиваемых
линий? Чтоб без wait, без сигналов чтения порта FE.
При грамотном программировании, использования аппаратных прерываний и 120МГц встроенной PLL думаю возможно.
Я тоже зацепился за тему стм32 + usb.
И моих навыков там тоже лишь на каплю больше, чем "привет, светодиод!". Я еще и UART умею! :)
В общем... заказал я эту эстээмку с usb-otg.
А сейчас разбираюсь с юэсби на этих контроллерах.
Ох и мутная тема....
Хорошо, что есть читабельные доки.
Для начала у меня есть мысля не лепить контроллер полностью, а всего лишь выдавать на выходе PS/2 - последовательности для штатного контроллера клавы.
Тоесть, некий такой адаптер USB-PS2....
Осилю или нет - пока не знаю.
perestoronin
31.10.2014, 08:34
И такой адаптер тоже нужен, к примеру на Еву современные мыши и клавиатуры цеплять, которые полностью от PS2 отошли и которые через медный переходник usb->ps2 уже не хотят работать. К примеру клавиатура Microsoft Ergonomic Natural Keyboard 4000, мышь Logitech Optical Gaming Mouse G400. (последняя usb мышь которая понимала что ее воткнули через медный перезодник в порт ps2 была Logitech MX518, но она уже пару лет назад перешла в категорию снятых с произвоства раритетов). Кроме подкючения мыши и клавиатуры, интересна тема подключения к ретротехнике манипуляторов с usb разъемом, к примеру такого как 3DConnexion Space Navigator.
Новое изучать всегда интересно, тем более оно и не такое страшное. Причем есть готоые реализовпнные проекты с stm в сети, к примеру ремулятор ПЗУ (изначвльно под эмуляцию редких ПЗУ К1801РР1).
Да, проектов полно, только там одна затыка - в 99% это проекты, где микроконтроллер выступает в роли slave, т.е. рулит всем процессом ПЦ, а не сам микроконтроллер. А это уже две большие разницы :)
Ладно, я ушел ковырять эту тему...
VELESOFT
09.11.2014, 14:33
What about mouse support ? (wireless set - keyboard + mouse).
What about mouse support ? (wireless set - keyboard + mouse).
While this problem
Немножко изменил схему, добавил еще один
выход(теперь их 4). Добавил программу редактирования раскладок.
Сейчас можно загружать 2 раскладки, переключаемые заданной
клавишей.
Сначала программатором прошиваем loader.hex.
Делаем переходник на X1 USB-B, на разьем X3 ставим джампер на
контакты 3-4 и подключаем к PC. Устанавливаем драйвер. Теперь ZX HID Keyboard Layout должна найти контроллер как Anykey Data Loader. Обновляем прошивку контроллера из файла "ZXHIDKeyboard.hex". Создаем раскладку клавиатуры и записываем ее в контроллер.
Теперь подключаем к X1 переходник USB-A снимаем джампер с X3 и подключаем
к Спектруму. Пользуемся.
Расширенная клавиатура заложена, но под нее нужен немного другой контроллер, надеюсь появится позже.
Нашел ошибку в ZX HID Keyboard Layout, были перепутаны
местами кнопки влево-вправо, разместил все одним архивом
на yadiske, сылка в первом сообщении.
VELESOFT
01.02.2015, 15:19
Нашел ошибку в ZX HID Keyboard Layout, были перепутаны
местами кнопки влево-вправо, разместил все одним архивом
на yadiske, сылка в первом сообщении.
And you active in this version CAPS SHIFT and SYMBOL SHIFT keys before combined key ? (ideally 1/50 sec)
And you active in this version CAPS SHIFT and SYMBOL SHIFT keys before combined key ? (ideally 1/50 sec or longer)
No, as long as I did not.
VELESOFT
01.02.2015, 23:11
No, as long as I did not.
As I know then keyboard routine in zx rom have problems if CAPS SHIFT is active in same time (for example in cursor keys) and may print only key without shift (number). Problems may be also in some games or programs (assembler Prometheus). Same problem is on +2A/+3 models and some ZX emulators. But it's not so critical :-)
Попробовал в бейсике48 погонять курсорные клавиши,ни
разу цифры не выскакивали. На всякий случай продумал
как сделать задержку, но сделаю потом если появятся проблемы.
Alex Rider
02.02.2015, 23:56
Попробуй еще в Art Studio в редакторе имени файла, к примеру, поудалять символы и подвигать курсор.
VELESOFT
03.02.2015, 00:46
If you press cursor key during keyboard test routine in zx rom then basic can show only NUMBER without SHIFT. I have small documentation about it from Czech HW guru, but in czech language :-(
For example if you will after press BREAK active CAPS SHIFT + SPACE parallel (in same time) then at 0.57 % basic return only SPACE without SHIFT.
If any software will often call keyboard reading then problem with ignore CAPS SHIFT will very very high and SHIFT combined keys will total unstable.
LOOP:
CALL #28E
... your routine
JR LOOP
Result:
CAPS SHIFT must be active minimum 400T (400T cpu at 3.5MHz) before active KEY. But 400T is not 100% methode, because some software (games) use own keyboard routines. Then longer time of SHIFT activity is best.
May be 3500T CPU or similar value.
Example of press cursor key LEFT:
1) user press cursor key LEFT on PC keyboard
2) ZXHID interface active only CAPS SHIFT (3500T CPU is active)
3) ZXHID interface active key "5" (now is key 5 and SHIFT both active)
4) after release cursor key LEFT must ZXHID deactive both keys.
-------------------------------------------------------------------------
info about basic:
keyboard routine in basic is called each interrupt (each 70000 T cpu) and routine for testing keyboard takes 400 T cpu. If user press cursor key out of interrupt routine then all is ok and zx rom detect SHIFT+KEY. Keyboard routine at begin test CAPS SHIFT and here is problem. You can press cursor key in this routine but after SHIFT test. Then routine not see SHIFT and read only KEY. Brobability of error is 0% if you press keys before call keyboard routine and very high during running keyboard routine.
I test it in zx emulators on PC (emulators active shift in same time as keys) and also here is problem. During first 100 clicks I see bugs.
1 PRINT INKEY$; : GOTO 1
This program very often read keyboard and show code of key. Please press and release repeatedly(500x) cursor key RIGHT. If you see number "8" then zx rom detect only key "8" without shift = error.
Обновил архив. Изменен загрузчик и ZXHIDKeyboardLayout,
поправлена прошивка PICa т.к. нашел клавиатуру, которая
вместо 6 байт отправляет 10 байт репорта.
В ZXHIDKeyboardLayout было найдено несколько неправильных кодов клавиш
в расширеных кнопках, а так же начал делать более универсальный загрузчик
для PIC24 с разным обьемом памяти, поэтому и обновил.
В архиве ZXHIDKEYBOARD ext файлы для расширенного варианта клавиатуры,
но проект не законченный, прошивку проверял через терминал.В железе в связке с альтерой не проверял, схема примерная, чтобы показать как связаны ALTERа и PIC.
Далее развивать не буду, если только ошибки исправлять.
Anubis_OD
17.04.2015, 16:45
Платки никто не делал под это? Ткните.. а то поиском не нашел.
Felix_73
11.11.2015, 16:17
Данный контроллер установлен на плате Scorpion 1024 rev.2015
Какой алгоритм прошивки МК ?
http://zx-pk.ru/showthread.php?t=16280&page=69&p=840961#post840961
А где посмотреть схему Scorpiona?
Felix_73
11.11.2015, 19:14
А где посмотреть схему Scorpiona?
https://yadi.sk/d/y2emq2GokPUAW вот тут схема + монтажка.
Просьба прямо по пунктам ,как правильно прошить МК.
Порядок прошивки встроенного в Скорпион контроллера
перенес в тему:http://zx-pk.ru/showthread.php?t=16280&p=842970&viewfull=1#post842970
Felix_73
11.11.2015, 20:57
Такой программатор подойдёт?
http://ru.aliexpress.com/w/wholesale-Pickit2.html?spm=2114.03020208.0.304.ebtTyd&initiative_id=SB_20151111093154&site=rus&shipCountry=ru&g=n&SearchText=Pickit2&needQuery=n меня смущает,что там 6 пиновый коннектор,на разъёме Х19 5 выводов....AUX отсутствует.
Я думаю подойдет, если аналог.
Есть куча других программаторов под PIC,
но надо смотреть поддерживает ли конкретно PIC24.
У PicKit 6ой вывод используется для других целей,
в программировании он не участвует.
Felix_73
11.11.2015, 21:42
Да,PIC24 есть в списке поддерживаемых устройств.
А какие и где посмотреть другие программаторы под PIC?
Вот такой нашел, но не пользовался (http://прошивки.net/openprog.php)
Лучше всетаки Pickit2, а еще лучше 3, это если планировать разные пики прошивать.
Felix_73
11.11.2015, 22:41
Вот такой нашел, но не пользовался (http://прошивки.net/openprog.php)
Лучше всетаки Pickit2, а еще лучше 3, это если планировать разные пики прошивать.
Мудрить не буду,закажу PICkit2 .
Felix_73
12.11.2015, 12:48
Обозначения по Вашей схеме:
конд. С6 это электролит?
Разъём Х6 ,для чего применяется?
TURBO, RESET и MAGIC -для Scorpion 1024 на клавиатуре реализованы?
С6 smd электролит.
X6-X7 джойстики денди (Sinclair 1,2)
X2.14-X2.17 - сигналы которые можно использовать для этих целей,
назначаются в программе как кнопки X1-X4 или как тригеры T1-T4
VELESOFT
29.11.2015, 16:10
Ну и документация:
ZXHIDKEYBOARD.zip (https://yadi.sk/d/jk9kCt5jeMnZu) -обновление 20.10.2014
ZXHIDKEYBOARD v02.7z (https://yadi.sk/d/lS20ZWr1eMnPB) - обновление 31.01.2015
ZXHIDKEYBOARD v03.7z (https://yadi.sk/d/1nLRxxWffku5n) - обновление 04.04.2015
ZXHIDKEYBOARD ext.7z (https://yadi.sk/d/VhuxkevLfkuA5) - добавлено 04.04.2015 (вариант для расширенной клавиатуры Samcoupe)
Small problem with text in menu. Can you fix it please ?
55052
Small problem with text in menu. Can you fix it please ?
Вот55053, пока только меню, без сообщений.
Получил пару чистых платок от Zorela. (http://zx-pk.ru/market/viewtopic.php?f=7&t=445&sid=d93c51d905c06f3c1755ba243230eeaf#p3116).
За вечер спаял один контроллер, запустился сразу.
Фото:
http://pix.academ.info/img/2016/02/28/ff9d338d84e0dec850bf162fe052cedd.jpg
http://pix.academ.info/img/2016/02/28/ae9c8a4a134a618af8b6de9f53948112.jpg
azx987sa
08.02.2017, 12:58
Приветствую всех! Скажите, где у кого можно приобрести такую плату? Желательно уже собранную.
- - - Добавлено - - -
можно вместо pic24fj64gВ002 использавать pic24fj64gА002?
а вот эту PIC24FJ64GB004 ?
можно вместо pic24fj64gВ002 использавать pic24fj64gА002?
У этой нет USB
а вот эту PIC24FJ64GB004 ?
а у этой ног больше.
azx987sa
08.02.2017, 17:58
У этой нет USB
а у этой ног больше.
Больше не меньше. Мне ее проще и дешевле достать. Главное что бы прошивка подошла.
Прошивка тоже просто так не подойдет.
azx987sa
09.02.2017, 10:53
Прошивка тоже просто так не подойдет.
Понял. Спасибо!
Нет ли у автора идеи сделать такой же контроллер, только для USB-мыши?
Доброго всем времени суток ! Очень заинтересовала данная разработка ! В первую очередь
тем , что есть возможность загружать свои раскладки да еще и в двух вариантах !
Это очень удобно при использовании цифровой части стандартной клавиатуры ,
я например в основной раскладке настроил ее как синклайр джойстик - для игрушек ,
а в дополнительной - как клавиши OPAQM+ENTER - именно таким странным набором
клавиш осуществляется управление в DNA-OS , которую я использую на своем спектруме.
Во вторых мне очень понравилась перспектива использования именно беспроводных клавиатур !
Прочитал всю тему , и у меня сложилось ощущение , что кроме автора так никто и не
попробовал повторить этот девайс. Возможно это все из за кажущейся сложности и
отсутствия подробной инструкции так сказать "для начинающих радиолюбителей" .
Поделюсь своим опытом , может кому-то поможет . Хотя , конечно , судя по всему
интерес к спектруму быстро стремится к нулю с огромной скоростью (((
Такая экзотическая древность сегодня мало кому интересна .
Платку купил тут на барахолке:
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/plata.jpg
PIC в России в Элитане ( https://www.elitan.ru )
они правда только по безналу продают . но можно найти и в других фирмах
Альтеру на Алиэкспресс: (https://ru.aliexpress.com/item/33016192112.html?spm=a2g0s.12269583.0.0.5ead61f4yX 2WNC)
с этой альтерой реально засада - в москве ни у кого в наличии не нашел , только под заказ и дорого
74LS05 тоже пришлось заказать на алиэкспрессе
Все остальное слава богу нашлось у меня в хламе , в том числе и разъем USB на плату
( ЛУЧШЕ БЫ ЕГО У МЕНЯ НЕ БЫЛО !!!)
Для прошивки пика и альтеры еще понадобятся программаторы PICKIT и USB-BLASTER .
Паяем платку - некотрые SMD резисторы и конденсаторы формата 0805 , а некоторые 1206 ,
я привык в самоделках использовать только 1206 - их и запаял )))
Без проблем становятся на площадки под 0805 )))
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/plata_1.jpg
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/plata_2.jpg
Далее : для прошивки альтеры необходим USB-BLASTER ( на алиэкспресс примерно 200 рублей стоит )
и пакет программ от интел Quartus II Web Edition - он бесплатный , можно скачать на сайте интел
или через торрент на рутрекере . Драйвер USB бластера входит в состав квартуса.
Кроме подключения к разъему JTAG еще необходимо подать на плату
питание + 5 вольт. Прошивать необходимо файл Keyboard.pof из архива Altera внутри архива ZXHIDKEYBOARD v03.7z
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/USB_blaster.jpg
Для прошивки Пика инструкция от Автора есть в этой теме :
"Сначала программатором прошиваем loader.hex.
Делаем переходник на X1 USB-B, на разьем X3 ставим джампер на
контакты 3-4 и подключаем к PC. Устанавливаем драйвер. Теперь ZX HID Keyboard Layout должна найти
контроллер как Anykey Data Loader. Обновляем прошивку контроллера из файла "ZXHIDKeyboard.hex".
Создаем раскладку клавиатуры и записываем ее в контроллер.
Теперь подключаем к X1 переходник USB-A снимаем джампер с X3 и подключаем к Спектруму".
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/pickit.jpg
Все ! Казалось бы вот оно счастье ! Но нет - все не так просто )))
Переходник USB для прошивки пика мне было лень паять . поэтому я просто припаял проводки прям к плате
- там все подписано : плюс , минус , D+ , D- ... все прошил . Спаял переходник для подключения к спектруму.
Подключил . Решил сразу начать проверку с беспроводной клавиатуры ))) взял сначала китайскую называется JET ,
подключил - не работает . Ну думаю китайская фигня может и не умеет )) Взял лоджитек Unifying - включаю . не работает !
Что за фигня ? и тут из "свистка" начинает идти дым ! Схватил его - пальцы обжег ) Итог первого запуска - два угробленных
свистка ! Лоджитек еще можно купить на али , а китайский фиг вам - клавиатура на выброс .
Начинаю разбираться - все просто , плата разведена так , что стандартный разъем USB надо запаивать снизу .
Если его запаять сверху , как все остальные разъемы - плюс с минусом будет перепутан .
Ну да ладно - сам дурак , надо было все проверить перед запуском ...
Перепаял разъем , купил еще одну китайскую клаву в днс , взял еще пару комплектов лоджитек - один с поддержкой
унифай , второй без него , и ..... ни с одним из имеющихся беспроводных "свистков"
данный контроллер не заработал ! С дешевой проводной клавой и с проводным дорогим лоджитеком - работает как часы !
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/wireless_usb_ad.jpg
При этом имеющийся у меня переходничек USB - PS/2 , купленный на этом же форуме , работает с любым из этих
вариантов .... обидно блин ....
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/converter.jpg
Но втыкать в спектрум контроллер пиэспополамной клавы , в него втыкать переходник и уже в него USB
- это как-то уже слишком ... Да и нет ни одной разработки для PS/2 с такой удобной опцией - загрузка
своих собственных раскладок без изменения кода прошивки .
В общем не все оказалось так шикарно - беспроводные клавы не поддерживает (((
В связи с этим вопрос к Автору : куда копать ? в чем может быть причина ? вроди говорилось что работают беспроводные ?
у меня сложилось ощущение , что кроме автора так никто и не
попробовал повторить этот девайс.Ну, почему же? Ныне этот контроллер, например, интегрирован в плату Скорпиона. Однако, лично я пользуюсь родной шинной ZX-клавиатурой, и мне полезнее была бы USB-мышь.
http://saveimg.ru/thumbnails/03-10-19/776571d532fa73608093469c51a139cd.jpg (http://saveimg.ru/show-image.php?id=57c96005875458caaa018bd6d7273636) http://saveimg.ru/thumbnails/03-10-19/a1f11fc296c67af1c65c812c462640a1.jpg (http://saveimg.ru/show-image.php?id=d5f29e464be17e7fd06e307a515e145a)
USB разъем специально делал через переходник,
не думал что кто-то будет запаивать его в плату.
С разъема X5 можно снять лог подключения USB устройств
через RS232.
Конденсатор C6 возле разъема USB желательно полярный.
С разъема X5 можно снять лог подключения USB устройств
через RS232.
Конденсатор C6 возле разъема USB желательно полярный.
конденсатор заменил на полярный - не помогло
лог при включении питания с передатчиком лоджитек унифай:
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191003220106.log
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191003220537.log
Лог должен быть текстовый,
передается на скорости (115к или 57к) 8bit,
можно снимать программой terminal
Лог должен быть текстовый,
передается на скорости (115к или 57к) 8bit,
можно снимать программой terminal
я выложил два варианта - в хексе и в тексте , логи получены именно программой "terminal" , ничего другого контроллер в терминал не выдает , только это . Если подключить проводную клавиатуру , то после похожего блока по включению питания , он выдает небольшие блоки на каждом нажатии клавиш.
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/terminal.jpg
Serg6845
04.10.2019, 08:40
я выложил два варианта - в хексе и в тексте , логи получены именно программой "terminal" , ничего другого контроллер в терминал не выдает , только это . Если подключить проводную клавиатуру , то после похожего блока по включению питания , он выдает небольшие блоки на каждом нажатии клавиш.
на 95% уверен что там UART, а не RS232. поэтому если переходник именно RS232 (или СОМ-порт на мамке) - надо RXD проинвертировать.
на 95% уверен что там UART, а не RS232. поэтому если переходник именно RS232 (или СОМ-порт на мамке) - надо RXD проинвертировать.
Вы оказались правы ! Спасибо . проинвертировал сигнал и получил нормальной текст :
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191004100302.log
USB разъем планировался как на фото, либо стандартный PC
кабель на планке для HOSTa, либо самодельный для заливки
раскладок, это чтобы случайно не перепутать и не воткнуть
в PC с включенным питанием на пате.
По логу видно, что парсер не может обработать хидрепорт,
возникает ошибка "Logical Min greater than report size",
т.е. размер переменной больше чем размер репорта.
Парсер взят из микрочиповских библиотек, на моих свистках ошибок не возникало,
ковырятся в нем желания нет, скорее всего репорт устройства слишком навороченный.
В этой прошивке включил лог в парсере, может что-то прояснит.
(надо просто убрать расширение zip)
Можно посмотреть report descriptor при помощи программы Simple-USB-Logger (https://www.download3k.ru/Install-Simple-USB-Logger.html)
В этой прошивке включил лог в парсере, может что-то прояснит.
(надо просто убрать расширение zip)
прошил , подключил , вот что получилось :
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191005135612.log
Anykey, посмотрите пожалуйста лог , может там "фигня" какая-нить , которую можно решить за пару минут ... если нет - напишите модели беспроводных клавиатур , которые у вас точно работают - буду искать
Точно работает Rapoo E2700 и a4Tech GL-6 со свистком RN-10B.
A4Tech G6 Saver со свистком RG-20KM выдает такую же ошибку - 0С.
Будет время поковыряюсь, так просто не получится.
Ramm13, попробуй эту прошивку - ZXHIDKeyboard.hex (https://yadi.sk/d/PrFSB5p1gDsluQ)
Ramm13, попробуй эту прошивку - ZXHIDKeyboard.hex (https://yadi.sk/d/PrFSB5p1gDsluQ)
прошил , подключил , вот что получается по включению питания , чаще всего 1 раз , иногда 2 и даже три раза :
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191113171351.log
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191113171415.log
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191113171514.log
Со старой прошивкой до парсера грузился.
С питанием все нормально?
Другие устройства как определяются?
Если старую прошивку обратно залить?
У меня сейчас тот свисток, что выдавал ошибку нормально подключается.
Было две ошибки в парсере, остальное я не менял.
Со старой прошивкой до парсера грузился.
С питанием все нормально?
Другие устройства как определяются?
Если старую прошивку обратно залить?
У меня сейчас тот свисток, что выдавал ошибку нормально подключается.
Было две ошибки в парсере, остальное я не менял.
я проверил сразу -
с этой прошивкой обычная клавиатура работает и работает китайский свисток для которого нет клавиатуры ( я купил его на алиэкспресе , думал он подойдет вместо сгоревшего - внешне один в один . но клавиатура его не увидела ))))
а вот лоджитек выдает вот такое .... питание нормальное точно
А с другой прошивкой лоджитек работает?
А с другой прошивкой лоджитек работает?
нет , лоджитек как раз изначально не работал - выдавал ошибку 0C ..... я не знаю , что за глюк такой у меня произошел , сейчас опять подключил - РАБОТАЕТ ЛОДЖИТЕК !!! включил , выключил раз 10 - не могу добиться , чтоб не работал !!! может как-то неудачно его вставил первый раз и контакта не было ....
Ну в общем типа УРА !!! )))
Добрый день.
Хотел купить такую плату на барахолке, но там единственный продавец :) На форум заходит, читает но не отвечает. Возможно занят.
Решил сам заказать плату в китае, но прилагаемых файлах - плата в формате PCB. Открыть то открыл и посмотрел а pcbway и все остальные просят gerber.
Кто сможет сконвертировать ? Ради одного раза ставить Altium или еще что не очень хочется, может кто поможет ?
Спасибо.
Altium Designer 19.1.8 не смог импортировать данный файл :(
Лучше бы выкладывали гербер-файлы.
Лучше бы выкладывали гербер-файлы.
Попробовал экспортировать в P-CAD 2006. Вроде получилось.
Разместил заказ. Посмотрим что получится.
Единственно что на обратной стороне надписи зеркальные получились, исправить не смог :)
solegstar
19.11.2019, 09:56
Попробовал экспортировать в P-CAD 2006. Вроде получилось.
Разместил заказ. Посмотрим что получится.
Единственно что на обратной стороне надписи зеркальные получились, исправить не смог :)
На нижнем слое они и должны быть зеркальные относительно верхнего. Во всяком случае когда смотришь в редакторе. После создания герберов слои можно глянуть на сайте jlcpcb в разделе calculate.
На нижнем слое они и должны быть зеркальные относительно верхнего. Во всяком случае когда смотришь в редакторе. После создания герберов слои можно глянуть на сайте jlcpcb в разделе calculate.
В редакторе они не зеркальные. Перевернутые только когда гербер создал и в jlcpcb посмотрел. Там Bottom слой наоборот.
Да и черт с ним.
Платы заказал. 3.35 за все.
Самые дешевые чтобы проверить работоспособность.
Платы заказал. 3.35 за все.
Самые дешевые чтобы проверить работоспособность.
надо было разъем USB перевернуть - неудобно его с обратной стороны запаивать ))
надо было разъем USB перевернуть - неудобно его с обратной стороны запаивать ))
Там не должно быть разьема USB. Обычные 2,54 штырьки
Там не должно быть разьема USB. Обычные 2,54 штырьки
ага , особенно вот тут должны быть эти штырьки ))
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/plata_USB.jpg
развести нормальный разъем USB дело 5 минут , думаю многие отдадут предпочтение именно такому разъему а не штырькам . да и кто мешает запаять в него при желании просто штырьки ? получилось бы универсальное решение .
Вам уже про это писали и показывали фото.
То что вы демонстрируете это полет фантазии продавца платы.
Купленная вами плата просто сделана на основе этой схемы и не более.
Вот оригинал P-CAD.
https://i.ibb.co/xgdTvPW/ZX-HID.jpg
Нет там этих отверстий.
это полет фантазии продавца платы.
Купленная вами плата просто сделана на основе этой схемы и не более.
Вот оригинал P-CAD.Нет там этих отверстий.
блиннннн .... мне подсунули поддельную плату ... все , писец , нужно срочно выпаивать USB разъем и запаивать штырьки , чтоб все как в оригинале было ...
Да это все не важно по сути. Главное чтобы работало.
Я просто не смог заказать плату у того продавца у которого купили вы и по этому разместил заказ на jlcpcb и все.
Ничего не меняя а просто для теста. Вот и все.
Посмотрим что получится в итоге.
https://uploads.tapatalk-cdn.com/20191207/e51edce82aa4bdefecee3180c799bcfb.jpghttps://uploads.tapatalk-cdn.com/20191207/541af92cd272b138448a9d7282f86f37.jpg
Пришли платки. Жду логику :)
Пришли платки. Жду логику :)
сколько стоило изготовление 5 платок ?
Блин. Выше написано и отвечали вы на это сообщение. Что надо было разъём перевернуть.
3,35$
Блин. Выше написано и отвечали вы на это сообщение. Что надо было разъём перевернуть.
3,35$
ну я тупой значит , "3,35 за все" для меня ничего не значит - видел , никак не мог подумать , что это стоимость в долларах США ...
- - - Добавлено - - -
3,35$
это примерно 200 руб ... благотворительностью они что-ли занимаются .... мне кажется одна доставка стоит дороже . а тут еще и платки сделали ))))
Ну у меня 5$ вроде как купон был.
В общем пришли пик и атмел. Буду пробовать собрать.
Добрый день коллеги.
Столкнулся трудностями так сказать. Во первых у меня нет схемы. Та что есть в архиве мне не совсем понятна. Там нет распиновки разьемов. Вообще.
Ни для клавиатуры ни для чего. Либо я ее не умею читать. Так-же разьемы X6 и X7 я не пойму для чего они.
И второе не могу найти SN74ALS05A, инвертор с открытым коллектором. Нашел только 74HC05 он немого не такой :(.
1117 - на 3,3V надо на сколько я понимаю ?
Спасибо.
Freiwind
22.12.2019, 19:54
Я ставил 1533ЛН2 и 74HCT05.
Спасибо, попробую. У нас 1533ЛН2 в ЭКФ корпусе не найти.
Вот со схемой еще не разобрался :( JTAG и PIC programming еще понятно. Выход для логов да а вот X1 и X6/7 не понятно. Как соответствует X1 разьем спековской клавы ? Там еще и питание надо и возможно еще что-то.
Спасибо, попробую. У нас 1533ЛН2 в ЭКФ корпусе не найти.
Вот со схемой еще не разобрался :( JTAG и PIC programming еще понятно. Выход для логов да а вот X1 и X6/7 не понятно. Как соответствует X1 разьем спековской клавы ? Там еще и питание надо и возможно еще что-то.
Х6 Х7 - это джойстики , их можно не подключать , а у Х1 назначения контактов подписаны с обратной стороны - (для данных на входах инверторов) - D0-D4 , ну и старшие 8 адресов A8-A15 - все как на спековской клаве
X1 я понял. Это же USB, думал это разьем для спека. Просто под рукой не было ни схемы ни платы.
Почти понял что куда :)
На X6/7 на схеме видно , u,d,l,r,f :)
Куда D0-D4/A8-A15 понял. Обьясните по SK1-3/4 ? Куда это. Reset,Turbo,Magic ?
Обьясните по SK1-3/4 ? Куда это. Reset,Turbo,Magic ?
Их можно не подключать, а можно подключить вместо кнопок Reset, turbo и magic
Как и куда, зависит от модели компа
https://uploads.tapatalk-cdn.com/20200106/dbee075654b4d815bb0e33cf5da269bb.jpghttps://uploads.tapatalk-cdn.com/20200106/0e6a377d0a9124daa4f45a37e7380743.jpg
Получилось так. Плохо отмыл. На удивление китайские плис и пик прошились ;) Буду пробовать залить раскладку и в бой. Только светодиод не светится :) может он на 5V , просил дать любой на 3,3 хотя черт их знает этих продаванов :)
И ещё. В этой теме путают USB-A Male и USB-B ;) USB-B это здоровый квадрат ;)
Привет всем.
Из за того что оригинальная клавиатура моего спека "поломалась" , решил воспользоваться этим контроллером.
Клава Apple - другой не было.
К сожалению с первого включения не заработало.
Думаю проблема в инверторе, но в настоящий момент взять негде. То что пришло с китая - по маркировке ОНО но по факту на дорожки не садиться ибо больше по размерам :(
И ещё вопрос. Если просто подать на плату +5в и подключить usb клавиатуру, на ней должны работать caps lock и все такое ?
AndyP, а с компьютером контроллер работает ? раскладка заливается в пик ?
Да работает. Раскладка заливается
А по UART пробовали лог снимать с X5 ?
Да работает. Раскладка заливается
думаю лучше сделать как я - подключить 25 ногу пика через инвертор к ком порту компьютера и любой терминальной программой прочитать лог . сразу понятно будет работает огрызочная клава или нет . маловероятно , что инверторная сборка неисправна ....
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Holding.
***** USB Error - hubs are not supported *****
Вот так :(
- - - Добавлено - - -
Попробовал Microsoft через свисток
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST: Device not yet validated
HOST: Setting device address.
HOST: Getting Config Descriptor size.
HOST: Getting Config Descriptor.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: Client driver found.
HOST: Client driver NOT found.
HOST: Client driver NOT found.
HOST: Parse Descriptor success
HOST: Determine OTG capability.
HOST: ...No OTG.
HOST: Set configuration.
HOST: Initializing client drivers...
HOST: Scanning interfaces.
HID: USBHostHIDInitialize(0x00)
HID: Checking descriptor 1 ...
HID: Checking interface...
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Interrupt endpoint IN: 83 Interrupt endpoint OUT: 00
HID: Memory for Report Descriptor: 86
HID-HOST: ... 2nd Parse
MAINk: Items-6, Rep-1
MAINk: Led[RepItem-00,UsPage-0008,Report-00,StBit-00,Size-01,Count-03,iFace-00]
MAINk: ModKeys[RepItem-02,UsPage-0007,Report-00,StBit-00,Size-01,Count-08,iFace-00]
MAINk: NorKeys[RepItem-04,UsPage-0007,Report-00,StBit-10,Size-08,Count-06,iFace-00]
HID: Memory for Report Descriptor: 80
HID-HOST: ... 2nd Parse
MAINk: Items-12, Rep-5
HID: Memory for Report Descriptor: 9E
HID Error Reported : 01
- - - Добавлено - - -
При нажатии кнопок в лог ничего не сыпется :(
В первой видимо внутри хаб стоит.
Вторая инициализировалась.
Да. В первой хаб. А как проверить вторую без спека ? Есть какой вариант ?
Только подавая на а8-А15 0, и смотреть что на D0-D4
А логически там какой уровень ? Если просто подключить омметр к d0-k15 например и нажать пробел
На один из входов A8-A15 лог 0, на D0-D4 перед инверторами при
нажатой кнопке будет 1.
В общем не выходит каменный цветок. Пробовал еще раз прошить и Альтеру и Пик. Все прошивается, раскладка заливается.
Что не так не пойму. Инвертор DV74HC05A может он не подходит :( у него закрытый коллектор.
Я скажем так не очень хорошо разбираюсь в этом :(
Инвертор нужен с ОК. Можно до инвертора проверить, как я выше писал.
У меня несколько алтер была глючных, прошивалась, но не все выходы работали.
Можно проверить, алтеру без PIC через джойстик Подав на А11 или А12 0.
При А12 - 0 считывается JK0 при A11- 0 считывается JK1.
На входы JK0_x или JK1_x тоже 0, можно на все сразу, а на D0-D4 должна появиться 1.
Инвертор нужен с ОК
в принципе должен и с обычным выходом работать инвертор - там же сигнал на вход мультиплексора обычно заведен с подтяжкой на +5 ... выдержит поди эту подтяжку )))
Кроме инвертора. Ошибка которая в конце инициализации появляется не критичная ? Или ошибок быть не должно ? При нажатии кнопок в лог что-то должно сыпаться ?
Я пока не могу получить проводную для проверки, возможно этот Микрософт и не будет работать в принципе а я тут мучаюсь :)
О, ошибку я не заметил.
Похоже памяти не хватило.
Попробуй прошивку (https://yadi.sk/d/XdbzkuoqgkOMmA)
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
И так по кругу пока не вынешь свисток :(
- - - Добавлено - - -
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Getting Device Descriptor size.
#10#10#10#10#10#10#10#10#10#10HOST: Holding.
***** USB Error - cannot enumerate device *****
Или так.
Попробуй эту (https://yadi.sk/d/NcxNQ1Ux-zmBxg) или эту (https://yadi.sk/d/b6k2gKJ8ycWYUA)
Задал разный размер кучи, больше не пойдет.
Должно быть типа такого
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Low Speed!
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST: Device not yet validated
HOST: Setting device address.
HOST: Getting Config Descriptor size.
HOST: Getting Config Descriptor.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: Client driver found.
HOST: Client driver NOT found.
HOST: Parse Descriptor success
HOST: Determine OTG capability.
HOST: ...No OTG.
HOST: Set configuration.
HOST: Initializing client drivers...
HOST: Scanning interfaces.
HID: USBHostHIDInitialize(0x00)
HID: Checking descriptor 1 ...
HID: Checking interface...
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Interrupt endpoint IN: 82 Interrupt endpoint OUT: 00
HID: Memory for Report Descriptor: 34
HID-HOST: ... 2nd Parse
MAINk: Items-5, Rep-1
MAINk: ModKeys[RepItem-00,UsPage-0007,Report-00,StBit-00,Size-01,Count-08,iFace-00]
MAINk: Led[RepItem-02,UsPage-0008,Report-00,StBit-00,Size-01,Count-05,iFace-00]
MAINk: NorKeys[RepItem-04,UsPage-0007,Report-00,StBit-10,Size-08,Count-06,iFace-00]
HID: Memory for Report Descriptor: 24
HID-HOST: ... 2nd Parse
MAINk: Items-7, Rep-4
Keyboard connected
Видимо надо искать проводную и пробовать. С обеими вариантами.
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST: Device not yet validated
HOST: Setting device address.
HOST: Getting Config Descriptor size.
HOST: Getting Config Descriptor.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: Client driver found.
HOST: Client driver NOT found.
HOST: Client driver NOT found.
HOST: Parse Descriptor success
HOST: Determine OTG capability.
HOST: ...No OTG.
HOST: Set configuration.
HOST: Initializing client drivers...
HOST: Scanning interfaces.
HID: USBHostHIDInitialize(0x00)
HID: Checking descriptor 1 ...
HID: Checking interface...
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Interrupt endpoint IN: 83 Interrupt endpoint OUT: 00
HID: Memory for Report Descriptor: 86
HID-HOST: ... 2nd Parse
MAINk: Items-6, Rep-1
MAINk: Led[RepItem-00,UsPage-0008,Report-00,StBit-00,Size-01,Count-03,iFace-00]
MAINk: ModKeys[RepItem-02,UsPage-0007,Report-00,StBit-00,Size-01,Count-08,iFace-00]
MAINk: NorKeys[RepItem-04,UsPage-0007,Report-00,StBit-10,Size-08,Count-06,iFace-00]
HID: Memory for Report Descriptor: 80
HID-HOST: ... 2nd Parse
MAINk: Items-12, Rep-5
HID: Memory for Report Descriptor: 9E
HID Error Reported : 01
Да наверно.
Большой дескриптор, памяти не хватает.
https://uploads.tapatalk-cdn.com/20200411/bd747ee2c3710883d3be6fca89f9ad35.jpg
Пробовал это. Пишет Keyboard connected но не работает. Но это вообще странный девайс :)
А при нажатии клавиш что пишет?
Должно быть примерно так:
Keyboard connected
HID: PC key - 1D-
SZK=C280
ZK1=C280
kMatrix [00 - 00 - 00 - 00 - 00 - 00 - 00 - 00]
HID: PC key - 1B-
SZK=C000
ZK1=C000
kMatrix [00 - 00 - 00 - 00 - 00 - 00 - 00 - 00]
HID: PC key - 1C-
SZK=0000
ZK1=0000
ZK2=0005
kMatrix [05 - 00 - 00 - 00 - 00 - 00 - 00 - 00]
Видимо я ошибся, хотя помню что это сообщение было.
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST: Device not yet validated
HOST: Setting device address.
HOST: Getting Config Descriptor size.
HOST: Getting Config Descriptor.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: Client driver found.
HOST: Client driver NOT found.
HOST: Client driver NOT found.
HOST: Client driver NOT found.
HOST: Parse Descriptor success
HOST: Determine OTG capability.
HOST: ...No OTG.
HOST: Set configuration.
HOST: Initializing client drivers...
HOST: Scanning interfaces.
HID: USBHostHIDInitialize(0x00)
HID: Checking descriptor 1 ...
HID: Checking interface...
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Interrupt endpoint IN: 84 Interrupt endpoint OUT: 00
HID: Memory for Report Descriptor: 60
HID-HOST: ... 2nd Parse
MAINk: Items-8, Rep-4
MAINk: ModKeys[RepItem-03,UsPage-0007,Report-03,StBit-08,Size-01,Count-08,iFace-00]
MAINk: Led[RepItem-05,UsPage-0008,Report-03,StBit-08,Size-01,Count-05,iFace-00]
MAINk: NorKeys[RepItem-07,UsPage-0007,Report-03,StBit-18,Size-08,Count-05,iFace-00]
HID: Memory for Report Descriptor: FC
HID-HOST: ... 2nd Parse
MAINk: Items-3, Rep-1
HID: Memory for Report Descriptor: A0
HID-HOST: ... 2nd Parse
MAINk: Items-2, Rep-1
HID: Memory for Report Descriptor: 92
HID Error Reported : 01
Нужно попроще клавиатуру.
Подключил проводную
***** Anykey ZX USB Keyboard Controller 2015 *****
HOST: Initializing DETACHED state.
HOST: WAIT_FOR_POWER.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: TURN_ON_POWER_OK.
HOST: Starting settling delay.
HOST: Resetting the device.
HOST: Low Speed!
HOST: Reset complete.
HOST: Reset complete.
HOST: Getting Device Descriptor size.
HOST: Getting device descriptor.
HOST: Validating VID and PID.
HOST: Device not yet validated
HOST: Setting device address.
HOST: Getting Config Descriptor size.
HOST: Getting Config Descriptor.
***** EVENT_VBUS_REQUEST_POWER *****
HOST: Client driver found.
HOST: Client driver NOT found.
HOST: Parse Descriptor success
HOST: Determine OTG capability.
HOST: ...No OTG.
HOST: Set configuration.
HOST: Initializing client drivers...
HOST: Scanning interfaces.
HID: USBHostHIDInitialize(0x00)
HID: Checking descriptor 1 ...
HID: Checking interface...
HID: Checking interface...
HID: Valid device info
HID: Checking interface...
HID: Valid device info
HID: Interrupt endpoint IN: 82 Interrupt endpoint OUT: 00
HID: Memory for Report Descriptor: 34
HID-HOST: ... 2nd Parse
MAINk: Items-5, Rep-1
MAINk: ModKeys[RepItem-00,UsPage-0007,Report-00,StBit-00,Size-01,Count-08,iFace-00]
MAINk: Led[RepItem-02,UsPage-0008,Report-00,StBit-00,Size-01,Count-03,iFace-00]
MAINk: NorKeys[RepItem-04,UsPage-0007,Report-00,StBit-10,Size-08,Count-06,iFace-00]
HID: Memory for Report Descriptor: 4C
HID-HOST: ... 2nd Parse
MAINk: Items-5, Rep-3
Keyboard connected
HID: PC key - 28-
SZK=0601
ZK1=0601
ZK2=0000
kMatrix [00 - 00 - 00 - 00 - 00 - 00 - 01 - 00]
HID: PC key - 2C-
SZK=0701
ZK1=0701
ZK2=0000
kMatrix [00 - 00 - 00 - 00 - 00 - 00 - 00 - 01]
Пожелайте удачи. Пошел пробовать.
- - - Добавлено - - -
Коллеги. Оно работает.
Короткий вопрос. Файлы от расширенного варианта клавиатура на 58 клавиш в итоге работают на данной схеме или нет ?
А зачем? Нет, там схема другая и все под
расширенную схему сделано.
Ну кнопки tv mode, inv caps lock. И т.д
На одну PC кнопку можно назначить комбинацию из 2х zx кнопок.
Расширенный вариант для SAMcoupe
Поставлю вопрос по другому.
Расширенный вариант клавиатуры который у меня есть - стандартная клавиатура 58 клавиш которая используется во многих клонах.
Подключается стандартно D0-D4, K8-K15. Это означает, но нажатие расширенных клавиш эмулирует нажатие 2х клавиш 40 конопочной клавиатуры.
Как это сделано на мембране понятно, там видимо 3 слоя, нажимая на клавишу сначала замыкается верхний , потом нижний. Думаю так.
Для того чтобы мне реализовать это через USB контроллер я должен эмулировать двойное нажатие.
Из-за того что в прошлом у меня никогда не было 58х клавиатуры я по идее должен знать комбинации этих недостающих клавиш, но видимо плохо учился.
И так.
1. True Video - CS + 3
2. Inv Video - CS + 4
3. Delete - CS + 0
4. Graph - CS + 9
5. Ext. Mode - CS + SS
6. Edit - CS + 1
7. Caps lock - CS + 2
8. Break - CS + Space ?
9. ; - SS + O
10. " - SS + P
11. ← - CS + 5
12. → - CS + 8
13. ↑ - CS + 7
14. ↓ - CS + 6
15. , - SS + N
16. . - SS + M
17,18 - дублирование CS, SS
Поправьте если не так. Спасибо.
Из-за того что в прошлом у меня никогда не было 58х клавиатуры я по идее должен знать комбинации этих недостающих клавиш, но видимо плохо учился.
Во всем большом тырнете нашел только Spectrum 128K service manual - там рассказано как реализованы слои и их подключение. И вот тут комбинации клавиш: https://www.salkin.co.uk/~wiki/index.php/Spectrum_Keyboard
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot