USB клавиатура на ZX Evo

Железо, связанное с TS-Conf

Postby dsp » Fri, 13.03.2015 04:08:30

EVOVXN wrote:Когда же подключил через тот же переходник свою новую клаву, то она зажгла все три светодиода и далее работать отказалась.

Тогда дешевый переходник не пойдет раз с PC не заработало.
MVV wrote:Можешь глянуть мой порт для U16

Спасибо за ссылку. С удовольствием гляну, к сожалению только месяца через два. Сейчас нет физической возможности это сделать.
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby MVV » Mon, 16.03.2015 15:12:37

Разработка преобразователя USB to PS/2 идет полным ходом, автор Ewgeny7. Оставлю здесь ссылку.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby psb » Mon, 16.03.2015 18:30:30

Ewgeny7 wrote:Заслуги мы ценим и помним.
Но некоторых звёздная болезнь до цугундера доводит.

то бишь, пусть делает, но ... :)
User avatar
psb
 
Posts: 715
Joined: Tue, 30.12.2014 23:22:32

Postby dsp » Wed, 22.04.2015 12:43:36

В связи с просьбой глянуть портирование ZET на U16 - сделал свой порт так как по ссылке MVV только один файл spi_flash (вроде так). И как раз по теме возникла необходимость в переходнике USB-SPI (клавиатура и мышка) для этого порта. Клавиатуру сделал в первом приближении на базе того что было VNC2 + FPGA (основная идея работает, весь проект пристегнул), а вот для мышки пока под U16 ничего не видел еще. В ближайшее время посмотрю как сделать переходник USB-PS/2 на VNC2 только без FPGA.
Attachments
2015_04_22 U16_ZET.RAR
(375.97 KiB) Downloaded 343 times
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby dsp » Mon, 11.05.2015 09:03:57

Цель проекта – сделать конвертор USB to PS/2 для мышки и клавиатуры на базе VNC2. Для тестирования использовал U16 и конфигурацию ZET (MS DOS).
На первом тапе - план сделать и протестировать переходник для мышки (так как клавиатура уже подключена по RS232 и интерпретатор кодов USB to PS/2 уже сделан в FPGA). После отладки сделать то же самое для клавиатуры (по существу перенести из FPGA в VNC2). На последнем этапе спаять отдельно платку для VNC2 и протестировать на Pent EVO.
Текущее состояние (первый этап):
Мышка работает с нортон коммандером и в Win3 (в проекте ZET).
Что сделано:
1) совместимость с проектом от MVV (клавиатура к Host 2 и RS232 )
2) USB клавиатура подключена через RS232 (оригинале от MVV) Host 2
3) USB мышка через PS/2. Host 1
Если подключать и клавиатуру и мышку, то значения не имеет в какой разъем что подключать. Если только Клавиатуру то надо подключать как в оригинале от MVV – Host2.
Если только клавиатура подключена то допускается подключать клавиатуру в любой момент, если и клавиатура и мышка то надо подключать мышку до подачи питания или до того как клавиатура будет подключена.
Что сделано:
1) Интерпретатор принятых от USB мышки байт на основе HID Report. Тестировал c мышками, которые по USB передают и 4 и 7 байт и разрядность Xpos Ypos была от 8 до 12 байт. Также байт кнопок передавался как первым так и вторым по счету в пакете от USB мышки.
2) PS/2 интерфейс пока в версии для тестирования. Сделан на базе PS2 mouse interface for Arduino.
Замеченные глюки текущей реализации моего конвертора
1) Скорее всего по PS/2 не все команды от хоста обрабатываются. В момент загрузки NC (нортон командера) или Win3 мышку лучше не трогать (я вообще переворачивал мышку чтобы она не генерила данные на выходе). В оригинальном проекте Arduino такого не происходит скорее всего из-за того, что в момент инициализации никто кнопки лихорадочно не нажимает на псевдо мышке.
2) Скорость перемещения курсора для разных мышек разная
3) может и еще есть какие, но не все сразу это пробный вариант. Возможно надо пересмотреть синхронизацию между двумя потоками в VNC2 (один обрабатывает USB соединение а второй - PS/2).
Attachments
Shunt.JPG
Host 1 2 - no dev.JPG
Host 2 - kb.JPG
MSDOS-MS-no.JPG
Host  1-ms 2-kb.JPG
MSDOS-MS-yes.JPG
2015_05_10 U16_ZET.RAR
(861.31 KiB) Downloaded 329 times
VNC2 (USB mouse).rar
(161.88 KiB) Downloaded 367 times
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby MVV » Mon, 11.05.2015 09:18:19

dsp, ты не разбирался с составными HID дескрипторами, к примеру есть радио комплекты клавиатура + мышь с одним приемопередатчиком USB? Я в отпуске, думаю будет больше времени разобраться с VNC2 и попробовать сделать поддержку HID устройств (keyboard+mouse+gamepad). И еще, по поводу загрузчика и OSD контроллера, планирую сделать его на J1, как ты на это смотришь? И какие файлы в какой последовательности и на какую флешку (FAT16/32, <=2GB, >2GB) нужно записать для старта zet? Я пробовал записывать образ диска С, около 50МБ, не запускается zet. Да, и припаяй правильно кварц 32.768кГц и разъемы.
Last edited by MVV on Mon, 11.05.2015 09:36:03, edited 1 time in total.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby evovxn » Mon, 11.05.2015 09:35:01

dsp wrote:Цель проекта – сделать конвертор USB to PS/2 для мышки и клавиатуры на базе VNC2.

Супер! Очень радует, что проект продвигается. Вещь должна получится крайне полезная!
dsp wrote:На последнем этапе спаять отдельно платку для VNC2 и протестировать на Pent EVO.

А это вообще будет то, что надо! Кстати, тут в недрах темы этот вопрос уже поднимался - а можно будет, в процессе разработки этого адаптера для Евы, попробовать навешать его на разъём мех. клавиатуры, который на атмеге висит? Тем более, что TS-Labs обещал такое начинание поддержать. :applause:
TS-Labs wrote:Если сделаете на разъеме для механической клавы, обещаю поддержать в прошивке АВР, коль такое дело :beer:
User avatar
evovxn
 
Posts: 278
Joined: Thu, 14.11.2013 12:31:23
LOCATION: Kursk

Postby noleg » Mon, 11.05.2015 11:52:27

на еве есть свободный разъем spi (i2c?) атмеги
[16:36:13] <TSL> 3. плаг под ВЦ будет писать пушкин. я ему звонил, он согласился
User avatar
noleg
 
Posts: 38
Joined: Mon, 12.08.2013 17:51:25

Postby dsp » Mon, 11.05.2015 12:47:32

MVV wrote:dsp, ты не разбирался с составными HID дескрипторами

В описании устройства есть конфигурационный дескриптор, в котором прописано количество интерфейсов. Потом идет дескриптор интерфейса. В каждом дескрипторе интерфейса есть описание количества конечных точек. Потом идет описание конечной точки – ее адрес и макс количество байт которое может она принять в пакете.

Собственно когда надо записать некую информацию в устройство на физическом уровне или считать из устройства, надо знать адрес устройства который присваивается в момент подключения его к хосту и номер конечной точки (конечно надо еще знать сколько сколько байт туда можно послать – размер пакета конечной точки ). Для пользователя важно не само физическое устройство а некое логическое, типа мышка или клавиатура. Поэтому нам надо знать именно номер интерфейса мышки или клавиатуры. Конечно, может быть в одной физической клавиатуре или мышке два логических устройства – две мышки или клавиатуры. Скажем для загрузки компьютера нам надо использовать простую мышку (boot device), чтобы долго не разбираться с какие битики или байтики за что отвечают а использовать уже стандартное описание для boot device.
Составные устройства (типа в одном физическом несколько логических) особо не сильно отличаются от простых. Тут как бы я засады не вижу. Тем более есть пример готовый для VNC2: USBDescriptors.vproj – он все дескрипторы считывает из устройства.


Для создания под ZET я использовал 2GB SD (не HC), SDHC работать не будут ( я так думаю по крайней мере). Отформатировать в FAT16 (в конечном итоге это будет FAT16). Потом с помощью утилиты по копированию изображения (я пристегнул) перенести изображение на SD. Разделы эта утилита переносит тоже. после копирования будет один раздел на 50G (вроде). Потом при желании с помощью какй нить утилиты (я использовал Acronis) добавить разделы. Для проверки мышки надо потом добавить еше директорию на диск С [Mouse] c драйвером и обновить AUTOEXEC.BUT. Я все что было на моем диске в корневой директории и папку [Mouse] пристегнул - SDcard(mouse).rar
Все файлы что в коревой директории копировать не надо. Файл что и как я делал я пристегнул ReadMeSD.rar Все это работает стабильно. Я делал так неоднократно, так что это не случайный результат. Просто копировать на SD нельзя надо именно использовать утилиту по копированию изображения.


На счет J1 и всего остального – положительно смотрю, а там может кому и пригодится.
После того как конвертор сделаю, займусь USB sound и считыванием и записью на USB носитель информации. Как то на ARM запускал примеры USB sound card и USB Flash memory, так что представление как работает со стороны Slave есть. Co стороны HOST есть VNC2, для отладки свяжу ARM (USB audio) c VNC2 (USB Host). С VNC2 в первом приближении разобрался. Слишком сложные структуры не переваривает и двухмерные массивы не показывает при работе дебагера. (как и структуры тоже) поэтому использую симулятор от VS6, так как размерность данных совпадает. Да и для написания программ редактор от visual studio лучше. Положительный момент VNC2 – готовая операционная система и работа с драйвером напоминает все тоже в виндоус.
Attachments
win32diskimager-v0.7-binary.zip
(5.68 MiB) Downloaded 348 times
SDcard(mouse).rar
(126.11 KiB) Downloaded 322 times
ReadMeSD.rar
(919.67 KiB) Downloaded 327 times
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby dsp » Mon, 11.05.2015 13:14:12

EVOVXN wrote:А это вообще будет то, что надо! Кстати, тут в недрах темы этот вопрос уже поднимался - а можно будет, в процессе разработки этого адаптера для Евы, попробовать навешать его на разъём мех. клавиатуры, который на атмеге висит? Тем более, что TS-Labs обещал такое начинание поддержать


Может я не правильно чего понимаю. Есть VNC2 контроллер, он переваривает информацию от USB мышки и клавиатуры и выделяет то что нам нужно - какая кнопка нажата например. Дальше это надо завести на PentEvo. Я предполагал что просто использовать два PS/2 интерфейса. На сколько я понимаю, PS/2 мышка и клавиатура у Pent EVO подключаются по PS/2. Если что либо другое, то надо перепрограмировать атмегу (мех клавиатуоа - не надо). В случае мех клавиатуры - навешать можно ))). Я не имею Pent Evo так что мне все рано. Eсли надо так то буду делать в расчете на мех клавиатуру. Я не сильно понимаю зачем это надо. Вот SPI - 4 проводка и скорость это логично для меня. PS/2 - вроде как проще для совместимости с тем что есть. Мне лично все равно (если механическая то надо посмотреть по количеству выводов VNC2 32pin - выводов всего 12 свободных, надо в другом корпусе VNC2 покупать). Наверное какой то смыл в этом есть, просто у меня нет Pent Evo и я не понимаю для чего так делать. Нужно задействовать 13 выводов для клавиатуры.
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby MVV » Mon, 11.05.2015 13:30:23

EVOVXN wrote:а можно будет, в процессе разработки этого адаптера для Евы, попробовать навешать его на разъём мех. клавиатуры, который на атмеге висит? Тем более, что TS-Labs обещал такое начинание поддержать.

Можно уже давно было взять VNC2 и подключить к zxevo вместо контроллера, уже писал об этом, но не имея в наличии zxevo мне это не нужно. Но раз уже TS-Labs обещал такое начинание поддержать... ждать немного осталось. Хотя смысла в этом я не вижу, там вообще лучше ничего не трогать, дороже будет...
dsp wrote:Положительный момент VNC2 – готовая операционная система и работа с драйвером напоминает все тоже в виндоус.

Думаю, практично было-бы разработать связку на U16 - VNC2[VDAP] <-> FPGA[периферийный контроллер(OSD) <-> интерфейсы: (ps/2) клавиатура, мышь, джойстик, диск, принтер, модем...] Т.е. чтобы периферийный контроллер занимался инициализацией, перенаправлением, преобразованием и обслуживанием запросов для разных конфигураций. Если ОС умеет работать через драйвер с VNC2, периферийный контроллер можно не использовать в конфигурации. Да и помощь от ПК с OSD при отладке конфигурации будет.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby evovxn » Mon, 11.05.2015 17:52:04

dsp wrote:Может я не правильно чего понимаю. Есть VNC2 контроллер, он переваривает информацию от USB мышки и клавиатуры и выделяет то что нам нужно - какая кнопка нажата например. Дальше это надо завести на PentEvo. Я предполагал что просто использовать два PS/2 интерфейса. На сколько я понимаю, PS/2 мышка и клавиатура у Pent EVO подключаются по PS/2. Если что либо другое, то надо перепрограмировать атмегу (мех клавиатуоа - не надо). В случае мех клавиатуры - навешать можно ))). Я не имею Pent Evo так что мне все рано. Eсли надо так то буду делать в расчете на мех клавиатуру.

Не, не, не. :) Вероятно я коряво сформулировал. Речь велась именно о перепрограммировании авр Евы чтобы часть пинов с мех. клавы заставить получать данные от VNC2 по SPI. И именно эту фишку в случае реализации, насколько я понял, согласился поддержать TS-Labs. :)
dsp wrote:Я не сильно понимаю зачем это надо.

Полностью согласен, заставлять VNC2 эмулировать нажатия мех.клавы точно не надо. Мех. клава, по сути своей, вообще никому нах не впилась. Просто это единственный разъём на Еве, на который можно попытаться что-то повесить без допайки.
dsp wrote:просто у меня нет Pent Evo

Ой-вэй! Тогда, наверное, упс... Не имея хардваре виртуально переписать прошивку атмеги Евы для сопряжения с VNC2 наверняка не получится. :(
User avatar
evovxn
 
Posts: 278
Joined: Thu, 14.11.2013 12:31:23
LOCATION: Kursk

Postby TS-Labs » Mon, 11.05.2015 19:44:00

EVOVXN wrote:Тем более, что TS-Labs обещал такое начинание поддержать.

Поддержу.
noleg wrote:на еве есть свободный разъем spi

Есть на джтаге. Я его использовал для спи-флэша. Лоулевел у меня там весь написан.
dsp wrote:Если что либо другое, то надо перепрограмировать атмегу

Конечно, но я это могу сделать. Для поддержки мыши/клавы надо дописать существующий функционал.
Предлагаю сделать обсуждаемое уст-во в виде SPI-слейва с набором внутренних регистров.
Степень "лоулевельности" уст-ва может быть в принципе любой: от доступа до регистров юсб до наружу выдаются нажатые кнопки. Атмега асилит, вопрос экономии на железе уст-ва.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby evovxn » Mon, 11.05.2015 20:03:22

noleg wrote:на еве есть свободный разъем spi

TS-Labs wrote:Есть на джтаге. Я его использовал для спи-флэша. Лоулевел у меня там весь написан.

TS-Labs wrote:Предлагаю сделать обсуждаемое уст-во в виде SPI-слейва с набором внутренних регистров.

Wow! Это ж, если будет задействован spi, который на джетаге, да плюс VNC2... Это ж разъём мех.клавы уже и не нужен?
А если (если помечтать :) ) к функционалу поддержки юсб мыши и клавы рассмотреть поддержку простенького юсб джойпада? А ещё поддержку юсб дата сторэдж? Тогда вообще огонь будет - флешкой тягаем дату с пц и закидываем её на сд-карту. Тем более, что у большинства микро-ATX и мини-ITX корпусов, в которые ставят Еву, на морде есть пара симпатичных разъёмов юсб. :)
User avatar
evovxn
 
Posts: 278
Joined: Thu, 14.11.2013 12:31:23
LOCATION: Kursk

Postby TS-Labs » Mon, 11.05.2015 21:40:51

Мечтай. Я на себя беру атмегу, остальное - добровольцы.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby dsp » Tue, 12.05.2015 03:38:41

EVOVXN wrote:Предлагаю сделать обсуждаемое уст-во в виде SPI-слейва с набором внутренних регистров

Я так и планировал для железа U16, для поддержки USB sound и FLASH. Так что автоматически попаду в разряд добровольцев ))).
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby MVV » Tue, 12.05.2015 11:19:25

dsp, в общем завелась Zet, пришлось немного подшаманить настройки SDRAM, у тебя смотрю 32Мх16, что не соответствует заявленной мною спецификации, отсюда и нестыковки, хз где взять такую память. Сейчас изображение выводится в текстовом режиме через VGA переходник, так что пока 8 цветов :) Дальше уже понятно что нужно доделать...

20150512_104833.jpg
20150512_110235.jpg
20150512_105826.jpg


Интро прикольное :)
20150512_112855.jpg
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby dsp » Tue, 12.05.2015 12:03:26

MVV wrote:dsp, в общем завелась Zet

MVV, ты меня порадовал.
Я уже кроме теста памяти начал писать загрузчик ZET и VGA биос через RS232. На счет памяти, так на первой странице же написано что поддерживает ))).
SDRAM 16MB x 16 bit (supports 4/16/32MB x 16 bit)
У меня другой нет.

Это здорово что завелось, значит народу будет проше адаптировать под различную память. Если у двух человек ZET работает на U16, это уже закономерный результат (почти). Теперь и клавиатуру проще протестировать и отладить.
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby MC68k » Wed, 13.05.2015 09:14:47

dsp wrote:конфигурацию ZET (MS DOS).

где взял?
An invisible thread connects those who are destined to meet, regardless of time, place, and circumstance. The thread may stretch or tangle. But it will never break.
User avatar
MC68k
 
Posts: 177
Joined: Sun, 22.12.2013 13:54:17
LOCATION: 3rd planet from sun

Postby dsp » Thu, 14.05.2015 03:35:06

ZET (MS-DOS) использую для проверки переходника USB -PS/2, так как для PS/2 периферии в проекте используется 8042 контроллер.
http://zet.aluzina.org/index.php/Zet_processor
https://github.com/marmolejo/zet
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby dsp » Thu, 14.05.2015 21:18:27

ZET(FPGA) не меняю ничего, так как все до этого момента работало c PS/2 мышкой и клавиатурой. Пока все измения это VNC2 - PS/2 интерфейс. При попытке перебора всех бредовых идей, случайно получил устойчивый результат с мышкой на ZET (На TS-Conf позже попробую). Мышка не подвисала в момент ее инициализации и запуска NC и Win3 при ее лихорадочном перемещении по столу ))). Откомпилировал в дебаг режиме и прошил VNC2. Дальше дебагер отключил и все работало автономно (включал и выключал питание). Испытывал на трех различных мышках в течение часа. В Release версии все гораздо хуже (поэтому и случайный результат). Пока разбираться нет времени (по осциллографу вроде как все очень похоже для Debug и Release). С учетом того, что я эту среду с компилятором для VNC2 токо начал изучать, это уже не плохо. Пока займусь PS/2 командами по настройке устройства, потом портирую клавиатуру и затем SPI (вместо PS/2).
Attachments
2015_05_15 VNC2(mouse) DebMode.rar
(408.16 KiB) Downloaded 289 times
dsp
 
Posts: 127
Joined: Wed, 25.06.2014 05:53:32

Postby MVV » Fri, 15.05.2015 21:05:11

dsp wrote:На счет J1 и всего остального – положительно смотрю, а там может кому и пригодится.

Немного погонял J1, дает 80МIPS. Скорей всего это граница быстродействия камня :( Ядро занимает около 600LE, регистры, стек и код в M9K. Как-раз несколько таких можно использовать как видео ядра или для обработки потоковых данных.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby TS-Labs » Sat, 16.05.2015 17:40:39

Что за J1?
A forth... :facepalm:
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby MVV » Sat, 16.05.2015 18:06:31

TS-Labs wrote:A forth...

А что делать :( Всё что было из корок перепробовал, только это маленькое 600LE и быстрое 80MIPS. Может есть что?
Хочу попробовать сделать похожее на это:
Video from : youtube.com
Video from : youtube.com
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

Postby TS-Labs » Sun, 17.05.2015 06:30:24

MVV wrote:Может есть что?

Я себе собирался взять одну из AVR корок. Собралась для С2 на 1700 ЛЕ, 60МГц.
Плюсы: вменяемые С-компилеры, нетупой набор команд.
MVV wrote:Хочу попробовать сделать похожее на это:

FT800 это моя мечта идиота. Я купил себе борду с экранчиком, написал для стм32 драйвер, запускал демки.
Идея у сабжа отличная, сам сабж крут без меры, но ни в какие ФПГА не влезет как есть, займет по моим прикидкам 70кЛЕ+, частота получится 15-20МГц.
Плохо то, что на нем видяху не сделать по дурацкой причине: он забит на ТВ развертку, а на ВГА либо поднимать ему частоту строк - тогда упадет продуктивность, при этом он не может выдать более 512 строк по вертикали, либо ставить даблер, а это надо ФПГА, любую самую тупую как минимум.
А вот похожее (поменьше фич) - это отличная идея. Предложения: уменьшить антиалайсинг с 1/16 до хотя 1/2 или 1/4, упростить набор примитивов, можно попытаться обойтись без сопра. В общем - это именно то направление, в котором бы я двигался.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

PreviousNext

Return to Hardware

Who is online

Users browsing this forum: No registered users and 1 guest

x