PDA

Просмотр полной версии : ZX HID Keyboard Controller



Anykey
09.10.2014, 20:25
Предлагаю контроллер 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)

alvis
09.10.2014, 22:27
подобная работает на PROFI 5.06
Уточни насчет работы с Профи, как контроллер работает с дополнительными и функциональными клавишами? Какая раскладка относительно фирменного контроллера? (работа клавиатуры в ср/м и пр...)

---------- Post added at 21:27 ---------- Previous post was at 21:24 ----------


Предлагаю контроллер USB клавиатуры
Если уже проверял, расскажи как ведет себя при использовании различных комбинаций одновременно нажатых клавиш?

Anykey
10.10.2014, 08:37
Уточни насчет работы с Профи, как контроллер работает с дополнительными и функциональными клавишами? Какая раскладка относительно фирменного контроллера? (работа клавиатуры в ср/м и пр...)
Я пока не задействовал дополнительные и функциональные клавиши (сделал только курсорные, 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 ставить.

Вот пока как-то так.

Anykey
19.10.2014, 22:53
Обновил архив.

Чуть поправил схему, подтянул к 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.

Anykey
23.10.2014, 10:57
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

fifan
23.10.2014, 10:57
А нельзя ли попросить автора скинуть исходники для пика и для ПЛИС?

Anykey
23.10.2014, 16:08
А нельзя ли попросить автора скинуть исходники для пика и для ПЛИС?

Для 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.

Anykey
23.10.2014, 22:34
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ки т.к. они стали дешевле, а для таким ёмких задач их хватает с запасом.

Anykey
30.10.2014, 09:31
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 думаю возможно.

Ewgeny7
30.10.2014, 23:48
Я тоже зацепился за тему стм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).

Ewgeny7
31.10.2014, 10:16
Да, проектов полно, только там одна затыка - в 99% это проекты, где микроконтроллер выступает в роли slave, т.е. рулит всем процессом ПЦ, а не сам микроконтроллер. А это уже две большие разницы :)
Ладно, я ушел ковырять эту тему...

VELESOFT
09.11.2014, 14:33
What about mouse support ? (wireless set - keyboard + mouse).

Anykey
09.11.2014, 15:06
What about mouse support ? (wireless set - keyboard + mouse).

While this problem

Anykey
30.01.2015, 22:44
Немножко изменил схему, добавил еще один
выход(теперь их 4). Добавил программу редактирования раскладок.
Сейчас можно загружать 2 раскладки, переключаемые заданной
клавишей.

Сначала программатором прошиваем loader.hex.
Делаем переходник на X1 USB-B, на разьем X3 ставим джампер на
контакты 3-4 и подключаем к PC. Устанавливаем драйвер. Теперь ZX HID Keyboard Layout должна найти контроллер как Anykey Data Loader. Обновляем прошивку контроллера из файла "ZXHIDKeyboard.hex". Создаем раскладку клавиатуры и записываем ее в контроллер.
Теперь подключаем к X1 переходник USB-A снимаем джампер с X3 и подключаем
к Спектруму. Пользуемся.

Расширенная клавиатура заложена, но под нее нужен немного другой контроллер, надеюсь появится позже.

Anykey
31.01.2015, 10:57
Нашел ошибку в 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)

Anykey
01.02.2015, 21:21
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 :-)

Anykey
02.02.2015, 19:36
Попробовал в бейсике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.

Anykey
04.04.2015, 19:05
Обновил архив. Изменен загрузчик и 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

Anykey
11.11.2015, 16:46
А где посмотреть схему Scorpiona?

Felix_73
11.11.2015, 19:14
А где посмотреть схему Scorpiona?

https://yadi.sk/d/y2emq2GokPUAW вот тут схема + монтажка.
Просьба прямо по пунктам ,как правильно прошить МК.

Anykey
11.11.2015, 19:50
Порядок прошивки встроенного в Скорпион контроллера
перенес в тему: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 отсутствует.

Anykey
11.11.2015, 21:18
Я думаю подойдет, если аналог.
Есть куча других программаторов под PIC,
но надо смотреть поддерживает ли конкретно PIC24.

У PicKit 6ой вывод используется для других целей,
в программировании он не участвует.

Felix_73
11.11.2015, 21:42
Да,PIC24 есть в списке поддерживаемых устройств.
А какие и где посмотреть другие программаторы под PIC?

Anykey
11.11.2015, 22:12
Вот такой нашел, но не пользовался (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 на клавиатуре реализованы?

Anykey
12.11.2015, 23:19
С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

Anykey
29.11.2015, 18:15
Small problem with text in menu. Can you fix it please ?

Вот55053, пока только меню, без сообщений.

Anykey
28.02.2016, 17:17
Получил пару чистых платок от 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 ?

Anykey
08.02.2017, 17:45
можно вместо pic24fj64gВ002 использавать pic24fj64gА002?
У этой нет USB


а вот эту PIC24FJ64GB004 ?
а у этой ног больше.

azx987sa
08.02.2017, 17:58
У этой нет USB

а у этой ног больше.

Больше не меньше. Мне ее проще и дешевле достать. Главное что бы прошивка подошла.

Anykey
08.02.2017, 21:05
Прошивка тоже просто так не подойдет.

azx987sa
09.02.2017, 10:53
Прошивка тоже просто так не подойдет.

Понял. Спасибо!

Grand
25.09.2019, 16:56
Нет ли у автора идеи сделать такой же контроллер, только для USB-мыши?

Ramm13
02.10.2019, 21:08
Доброго всем времени суток ! Очень заинтересовала данная разработка ! В первую очередь
тем , что есть возможность загружать свои раскладки да еще и в двух вариантах !
Это очень удобно при использовании цифровой части стандартной клавиатуры ,
я например в основной раскладке настроил ее как синклайр джойстик - для игрушек ,
а в дополнительной - как клавиши 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 с такой удобной опцией - загрузка
своих собственных раскладок без изменения кода прошивки .
В общем не все оказалось так шикарно - беспроводные клавы не поддерживает (((
В связи с этим вопрос к Автору : куда копать ? в чем может быть причина ? вроди говорилось что работают беспроводные ?

Grand
03.10.2019, 17:19
у меня сложилось ощущение , что кроме автора так никто и не
попробовал повторить этот девайс.Ну, почему же? Ныне этот контроллер, например, интегрирован в плату Скорпиона. Однако, лично я пользуюсь родной шинной 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)

Anykey
03.10.2019, 18:59
USB разъем специально делал через переходник,
не думал что кто-то будет запаивать его в плату.

С разъема X5 можно снять лог подключения USB устройств
через RS232.

Конденсатор C6 возле разъема USB желательно полярный.

Ramm13
03.10.2019, 22:18
С разъема X5 можно снять лог подключения USB устройств
через RS232.
Конденсатор C6 возле разъема USB желательно полярный.
конденсатор заменил на полярный - не помогло
лог при включении питания с передатчиком лоджитек унифай:
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191003220106.log
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191003220537.log

Anykey
04.10.2019, 03:44
Лог должен быть текстовый,
передается на скорости (115к или 57к) 8bit,
можно снимать программой terminal

Ramm13
04.10.2019, 08:15
Лог должен быть текстовый,
передается на скорости (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 проинвертировать.

Ramm13
04.10.2019, 10:09
на 95% уверен что там UART, а не RS232. поэтому если переходник именно RS232 (или СОМ-порт на мамке) - надо RXD проинвертировать.

Вы оказались правы ! Спасибо . проинвертировал сигнал и получил нормальной текст :

http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191004100302.log

Anykey
05.10.2019, 12:29
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)

Ramm13
05.10.2019, 14:01
В этой прошивке включил лог в парсере, может что-то прояснит.
(надо просто убрать расширение zip)


прошил , подключил , вот что получилось :
http://xn--80aaigddfkc3conk2a.xn--p1ai/PIC/LOG/20191005135612.log

Ramm13
09.11.2019, 13:48
Anykey, посмотрите пожалуйста лог , может там "фигня" какая-нить , которую можно решить за пару минут ... если нет - напишите модели беспроводных клавиатур , которые у вас точно работают - буду искать

Anykey
12.11.2019, 15:27
Точно работает Rapoo E2700 и a4Tech GL-6 со свистком RN-10B.

A4Tech G6 Saver со свистком RG-20KM выдает такую же ошибку - 0С.
Будет время поковыряюсь, так просто не получится.

Anykey
13.11.2019, 12:58
Ramm13, попробуй эту прошивку - ZXHIDKeyboard.hex (https://yadi.sk/d/PrFSB5p1gDsluQ)

Ramm13
13.11.2019, 17:32
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

Anykey
13.11.2019, 17:59
Со старой прошивкой до парсера грузился.
С питанием все нормально?
Другие устройства как определяются?
Если старую прошивку обратно залить?

У меня сейчас тот свисток, что выдавал ошибку нормально подключается.
Было две ошибки в парсере, остальное я не менял.

Ramm13
13.11.2019, 18:27
Со старой прошивкой до парсера грузился.
С питанием все нормально?
Другие устройства как определяются?
Если старую прошивку обратно залить?

У меня сейчас тот свисток, что выдавал ошибку нормально подключается.
Было две ошибки в парсере, остальное я не менял.
я проверил сразу -
с этой прошивкой обычная клавиатура работает и работает китайский свисток для которого нет клавиатуры ( я купил его на алиэкспресе , думал он подойдет вместо сгоревшего - внешне один в один . но клавиатура его не увидела ))))
а вот лоджитек выдает вот такое .... питание нормальное точно

Anykey
13.11.2019, 19:57
А с другой прошивкой лоджитек работает?

Ramm13
13.11.2019, 20:22
А с другой прошивкой лоджитек работает?

нет , лоджитек как раз изначально не работал - выдавал ошибку 0C ..... я не знаю , что за глюк такой у меня произошел , сейчас опять подключил - РАБОТАЕТ ЛОДЖИТЕК !!! включил , выключил раз 10 - не могу добиться , чтоб не работал !!! может как-то неудачно его вставил первый раз и контакта не было ....
Ну в общем типа УРА !!! )))

AndyP
13.11.2019, 23:15
Добрый день.
Хотел купить такую плату на барахолке, но там единственный продавец :) На форум заходит, читает но не отвечает. Возможно занят.
Решил сам заказать плату в китае, но прилагаемых файлах - плата в формате PCB. Открыть то открыл и посмотрел а pcbway и все остальные просят gerber.
Кто сможет сконвертировать ? Ради одного раза ставить Altium или еще что не очень хочется, может кто поможет ?
Спасибо.

AndyP
15.11.2019, 08:55
Altium Designer 19.1.8 не смог импортировать данный файл :(

Anykey
16.11.2019, 18:23
Это в Accel PCB

fifan
17.11.2019, 20:28
Лучше бы выкладывали гербер-файлы.

AndyP
19.11.2019, 09:34
Лучше бы выкладывали гербер-файлы.

Попробовал экспортировать в P-CAD 2006. Вроде получилось.
Разместил заказ. Посмотрим что получится.
Единственно что на обратной стороне надписи зеркальные получились, исправить не смог :)

solegstar
19.11.2019, 09:56
Попробовал экспортировать в P-CAD 2006. Вроде получилось.
Разместил заказ. Посмотрим что получится.
Единственно что на обратной стороне надписи зеркальные получились, исправить не смог :)
На нижнем слое они и должны быть зеркальные относительно верхнего. Во всяком случае когда смотришь в редакторе. После создания герберов слои можно глянуть на сайте jlcpcb в разделе calculate.

AndyP
19.11.2019, 10:01
На нижнем слое они и должны быть зеркальные относительно верхнего. Во всяком случае когда смотришь в редакторе. После создания герберов слои можно глянуть на сайте jlcpcb в разделе calculate.

В редакторе они не зеркальные. Перевернутые только когда гербер создал и в jlcpcb посмотрел. Там Bottom слой наоборот.
Да и черт с ним.

AndyP
19.11.2019, 12:42
Платы заказал. 3.35 за все.
Самые дешевые чтобы проверить работоспособность.

Ramm13
19.11.2019, 14:44
Платы заказал. 3.35 за все.
Самые дешевые чтобы проверить работоспособность.

надо было разъем USB перевернуть - неудобно его с обратной стороны запаивать ))

AndyP
19.11.2019, 15:53
надо было разъем USB перевернуть - неудобно его с обратной стороны запаивать ))

Там не должно быть разьема USB. Обычные 2,54 штырьки

Ramm13
20.11.2019, 13:24
Там не должно быть разьема USB. Обычные 2,54 штырьки

ага , особенно вот тут должны быть эти штырьки ))
http://www.xn--80aaigddfkc3conk2a.xn--p1ai/PIC/ZXKBD/plata_USB.jpg

развести нормальный разъем USB дело 5 минут , думаю многие отдадут предпочтение именно такому разъему а не штырькам . да и кто мешает запаять в него при желании просто штырьки ? получилось бы универсальное решение .

AndyP
21.11.2019, 06:38
Вам уже про это писали и показывали фото.
То что вы демонстрируете это полет фантазии продавца платы.
Купленная вами плата просто сделана на основе этой схемы и не более.
Вот оригинал P-CAD.
https://i.ibb.co/xgdTvPW/ZX-HID.jpg
Нет там этих отверстий.

Ramm13
21.11.2019, 07:55
это полет фантазии продавца платы.
Купленная вами плата просто сделана на основе этой схемы и не более.
Вот оригинал P-CAD.Нет там этих отверстий.

блиннннн .... мне подсунули поддельную плату ... все , писец , нужно срочно выпаивать USB разъем и запаивать штырьки , чтоб все как в оригинале было ...

AndyP
21.11.2019, 08:20
Да это все не важно по сути. Главное чтобы работало.
Я просто не смог заказать плату у того продавца у которого купили вы и по этому разместил заказ на jlcpcb и все.
Ничего не меняя а просто для теста. Вот и все.
Посмотрим что получится в итоге.

AndyP
07.12.2019, 12:02
https://uploads.tapatalk-cdn.com/20191207/e51edce82aa4bdefecee3180c799bcfb.jpghttps://uploads.tapatalk-cdn.com/20191207/541af92cd272b138448a9d7282f86f37.jpg
Пришли платки. Жду логику :)

Ramm13
07.12.2019, 12:18
Пришли платки. Жду логику :)

сколько стоило изготовление 5 платок ?

AndyP
07.12.2019, 12:23
Блин. Выше написано и отвечали вы на это сообщение. Что надо было разъём перевернуть.
3,35$

Ramm13
07.12.2019, 12:44
Блин. Выше написано и отвечали вы на это сообщение. Что надо было разъём перевернуть.
3,35$

ну я тупой значит , "3,35 за все" для меня ничего не значит - видел , никак не мог подумать , что это стоимость в долларах США ...

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


3,35$

это примерно 200 руб ... благотворительностью они что-ли занимаются .... мне кажется одна доставка стоит дороже . а тут еще и платки сделали ))))

AndyP
16.12.2019, 08:31
Ну у меня 5$ вроде как купон был.
В общем пришли пик и атмел. Буду пробовать собрать.

AndyP
22.12.2019, 18:49
Добрый день коллеги.
Столкнулся трудностями так сказать. Во первых у меня нет схемы. Та что есть в архиве мне не совсем понятна. Там нет распиновки разьемов. Вообще.
Ни для клавиатуры ни для чего. Либо я ее не умею читать. Так-же разьемы X6 и X7 я не пойму для чего они.
И второе не могу найти SN74ALS05A, инвертор с открытым коллектором. Нашел только 74HC05 он немого не такой :(.
1117 - на 3,3V надо на сколько я понимаю ?

Спасибо.

Freiwind
22.12.2019, 19:54
Я ставил 1533ЛН2 и 74HCT05.

AndyP
23.12.2019, 07:18
Спасибо, попробую. У нас 1533ЛН2 в ЭКФ корпусе не найти.
Вот со схемой еще не разобрался :( JTAG и PIC programming еще понятно. Выход для логов да а вот X1 и X6/7 не понятно. Как соответствует X1 разьем спековской клавы ? Там еще и питание надо и возможно еще что-то.

Ramm13
23.12.2019, 11:13
Спасибо, попробую. У нас 1533ЛН2 в ЭКФ корпусе не найти.
Вот со схемой еще не разобрался :( JTAG и PIC programming еще понятно. Выход для логов да а вот X1 и X6/7 не понятно. Как соответствует X1 разьем спековской клавы ? Там еще и питание надо и возможно еще что-то.

Х6 Х7 - это джойстики , их можно не подключать , а у Х1 назначения контактов подписаны с обратной стороны - (для данных на входах инверторов) - D0-D4 , ну и старшие 8 адресов A8-A15 - все как на спековской клаве

AndyP
24.12.2019, 13:07
X1 я понял. Это же USB, думал это разьем для спека. Просто под рукой не было ни схемы ни платы.
Почти понял что куда :)
На X6/7 на схеме видно , u,d,l,r,f :)
Куда D0-D4/A8-A15 понял. Обьясните по SK1-3/4 ? Куда это. Reset,Turbo,Magic ?

Anykey
24.12.2019, 15:47
Обьясните по SK1-3/4 ? Куда это. Reset,Turbo,Magic ?

Их можно не подключать, а можно подключить вместо кнопок Reset, turbo и magic
Как и куда, зависит от модели компа

AndyP
06.01.2020, 18:33
https://uploads.tapatalk-cdn.com/20200106/dbee075654b4d815bb0e33cf5da269bb.jpghttps://uploads.tapatalk-cdn.com/20200106/0e6a377d0a9124daa4f45a37e7380743.jpg

Получилось так. Плохо отмыл. На удивление китайские плис и пик прошились ;) Буду пробовать залить раскладку и в бой. Только светодиод не светится :) может он на 5V , просил дать любой на 3,3 хотя черт их знает этих продаванов :)

AndyP
06.01.2020, 19:29
И ещё. В этой теме путают USB-A Male и USB-B ;) USB-B это здоровый квадрат ;)

AndyP
04.04.2020, 15:54
Привет всем.
Из за того что оригинальная клавиатура моего спека "поломалась" , решил воспользоваться этим контроллером.
Клава Apple - другой не было.
К сожалению с первого включения не заработало.
Думаю проблема в инверторе, но в настоящий момент взять негде. То что пришло с китая - по маркировке ОНО но по факту на дорожки не садиться ибо больше по размерам :(

AndyP
05.04.2020, 10:35
И ещё вопрос. Если просто подать на плату +5в и подключить usb клавиатуру, на ней должны работать caps lock и все такое ?

Ramm13
06.04.2020, 04:00
AndyP, а с компьютером контроллер работает ? раскладка заливается в пик ?

AndyP
06.04.2020, 06:24
Да работает. Раскладка заливается

Anykey
06.04.2020, 09:32
А по UART пробовали лог снимать с X5 ?

Ramm13
06.04.2020, 09:33
Да работает. Раскладка заливается

думаю лучше сделать как я - подключить 25 ногу пика через инвертор к ком порту компьютера и любой терминальной программой прочитать лог . сразу понятно будет работает огрызочная клава или нет . маловероятно , что инверторная сборка неисправна ....

AndyP
06.04.2020, 13:12
***** 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

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

При нажатии кнопок в лог ничего не сыпется :(

Anykey
06.04.2020, 18:08
В первой видимо внутри хаб стоит.
Вторая инициализировалась.

AndyP
06.04.2020, 18:29
Да. В первой хаб. А как проверить вторую без спека ? Есть какой вариант ?

Anykey
06.04.2020, 18:43
Только подавая на а8-А15 0, и смотреть что на D0-D4

AndyP
06.04.2020, 18:46
А логически там какой уровень ? Если просто подключить омметр к d0-k15 например и нажать пробел

Anykey
06.04.2020, 20:03
На один из входов A8-A15 лог 0, на D0-D4 перед инверторами при
нажатой кнопке будет 1.

AndyP
10.04.2020, 09:19
В общем не выходит каменный цветок. Пробовал еще раз прошить и Альтеру и Пик. Все прошивается, раскладка заливается.
Что не так не пойму. Инвертор DV74HC05A может он не подходит :( у него закрытый коллектор.
Я скажем так не очень хорошо разбираюсь в этом :(

Anykey
10.04.2020, 10:28
Инвертор нужен с ОК. Можно до инвертора проверить, как я выше писал.
У меня несколько алтер была глючных, прошивалась, но не все выходы работали.
Можно проверить, алтеру без PIC через джойстик Подав на А11 или А12 0.
При А12 - 0 считывается JK0 при A11- 0 считывается JK1.
На входы JK0_x или JK1_x тоже 0, можно на все сразу, а на D0-D4 должна появиться 1.

Ramm13
10.04.2020, 10:43
Инвертор нужен с ОК
в принципе должен и с обычным выходом работать инвертор - там же сигнал на вход мультиплексора обычно заведен с подтяжкой на +5 ... выдержит поди эту подтяжку )))

AndyP
10.04.2020, 11:05
Кроме инвертора. Ошибка которая в конце инициализации появляется не критичная ? Или ошибок быть не должно ? При нажатии кнопок в лог что-то должно сыпаться ?
Я пока не могу получить проводную для проверки, возможно этот Микрософт и не будет работать в принципе а я тут мучаюсь :)

Anykey
10.04.2020, 18:00
О, ошибку я не заметил.
Похоже памяти не хватило.
Попробуй прошивку (https://yadi.sk/d/XdbzkuoqgkOMmA)

AndyP
11.04.2020, 08:31
***** 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 *****


Или так.

Anykey
11.04.2020, 12:52
Попробуй эту (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

AndyP
11.04.2020, 13:03
Видимо надо искать проводную и пробовать. С обеими вариантами.
***** 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

Anykey
11.04.2020, 13:29
Да наверно.
Большой дескриптор, памяти не хватает.

AndyP
11.04.2020, 18:10
https://uploads.tapatalk-cdn.com/20200411/bd747ee2c3710883d3be6fca89f9ad35.jpg

Пробовал это. Пишет Keyboard connected но не работает. Но это вообще странный девайс :)

Anykey
11.04.2020, 23:19
А при нажатии клавиш что пишет?

Должно быть примерно так:

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]

AndyP
12.04.2020, 07:26
Видимо я ошибся, хотя помню что это сообщение было.
***** 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
12.04.2020, 12:10
Нужно попроще клавиатуру.

AndyP
14.04.2020, 09:03
Подключил проводную

***** 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]

Пожелайте удачи. Пошел пробовать.

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

Коллеги. Оно работает.

AndyP
14.04.2020, 15:55
Короткий вопрос. Файлы от расширенного варианта клавиатура на 58 клавиш в итоге работают на данной схеме или нет ?

Anykey
14.04.2020, 18:51
А зачем? Нет, там схема другая и все под
расширенную схему сделано.

AndyP
14.04.2020, 20:21
Ну кнопки tv mode, inv caps lock. И т.д

Anykey
14.04.2020, 20:41
На одну PC кнопку можно назначить комбинацию из 2х zx кнопок.

Расширенный вариант для SAMcoupe

AndyP
16.04.2020, 11:53
Поставлю вопрос по другому.
Расширенный вариант клавиатуры который у меня есть - стандартная клавиатура 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

Поправьте если не так. Спасибо.

Alfishe
29.07.2020, 06:40
Из-за того что в прошлом у меня никогда не было 58х клавиатуры я по идее должен знать комбинации этих недостающих клавиш, но видимо плохо учился.


Во всем большом тырнете нашел только Spectrum 128K service manual - там рассказано как реализованы слои и их подключение. И вот тут комбинации клавиш: https://www.salkin.co.uk/~wiki/index.php/Spectrum_Keyboard