Просмотр полной версии : Конвертер USB -> PS/2 для клавиатуры
Приехали из китаев микросхемки STM32F105RBT6 (по 150рэ), и я собрал наконец-то законченный вариант конвертера.
Платка сделана односторонним ЛУТом. Три перемычки по питанию.
Суть девайса - подключение к нашим спектрумам (и прочим машинкам) со встроенным контроллером PS/2-клавиатур, коих сегодня уже не очень просто найти, ширпотребных USB-клавиатур, которые продаются на каждой помойке.
Инструкция по применению - втыкаем хвост USB-клавы в конвертер, а торчащий из него хвост - в любимый Спектрум (Орион, Радио-86РК, Микро-80.......). И работаем как обычно.
http://savepic.net/6576240m.jpg (http://savepic.net/6576240.htm)
http://savepic.net/6574192m.jpg (http://savepic.net/6574192.htm)
Девайс собран на микроконтроллере STM32F105RBT6, на сегодня это - самый дешевый из контроллеров со встроенным USB-хостом.
Два полевых транзистора, несколько резисторов и конденсторов, кварц на 12МГц.
Схему устройства можно глянуть здесь (https://yadi.sk/i/Z3sW1wS2fGZzo).
Прошивка помаленьку ковыряется, но уже достигла стадии выкладки.
Взять текущую можно здесь (https://yadi.sk/d/IVAOtvElfrdCx). Версия от 08/04/2015.
Лайка платы - здесь (https://yadi.sk/d/CtYZyr6RfgFiX).
На данный момент контроллер проверен в работе с ZX-Evolution, Спекки-2007, ZXMC от Камиля Каримова, она же встроена в ZXM-Phoenix. Работает с контроллерами на Мега48 от Камиля, которые используются на Орионах, РКшках, Микро-80. Без проблем работает с uX-Reverse и прочими девайсами на FPGA.
При работе контроллер эмулирует (не полностью) стандартную PS/2-клавиатуру. Охотно откликается на запросы компьютера о переключении раскладок сканкодов. В общем, ведёт себя прямо как настоящая клава. Даже ПЦ не заметил подмены :)
Со стороны USB работа была проверена всего на трех USB-клавиатурах, больше у меня их просто нет.
Ходят слухи, что не все USB-клавы хорошо дружат с микроконтроллерами. Тут я ничего сказать не могу. Слухи не на пустом месте возникают. У меня проблем не появлялось.
Относительно беспроводных клавиатур. Теоретически - должно работать. При условии, что "свистулька", вставляемая в ПЦ-комп, представляется именно USB-HID-устройством aka клавиатура.
У меня есть беспроводная Perfeo, но работать с контроллером отказывается. Больше проверить пока не на чем...
Viktor2312
01.04.2015, 17:52
Приехали из китаев микросхемки STM32F105RBT6 (по 150рэ),
Ай молодца!
По приборчику могу сказать только одно, СУПЕР!!!
Недавно искал нечто подобное по китайским магазинам, в виде законченного девайса, обломался. А тут такое! Ябкупил.
HardWareMan
01.04.2015, 18:15
USB клавиатруа => PS/2 клавиатура => нативная клавиатура...? Где-то я уже это видел! А, вот:
http://static.fjcdn.com/pictures/We_2cfc0e_2179370.jpg
А в остальном - зачет, но на STM32F105 можно исключить эту PS/2 ступень, правда?
А в остальном - зачет, но на STM32F105 можно исключить эту PS/2 ступень, правда?
Было бы очень здорово иметь zx-evo с usb портами для мыши и клавы.
Убирание ps/2 нафик - в творческих планах.
Была попытка сделать нахрапом USB-матрица.
Всё взлетело, но с одной оговоркой - не успеваем отэрегировать на запрос компа.
Обработка юсб идет на жестких прерываниях, и они таки кушают время...
Тут или вейтить надо, используя дополнительный внешний что-нибудь (используя сигнал выборки клавиатуры) или лепить внешнюю матрицу с нулевым откликом, типа cpld.
Пока вот так... Конечно, у меня пока и знаний не хватает, чтобы что-то категорично заявлять, я пока начинающий армовод :)
HardWareMan
01.04.2015, 20:11
Замена PS/2 прослойки на CPLD-нативную матрицу логичное и экономное решение. Это отвяжет ядро ARMа от необходимости следить за компом. А это даст возможность переключить его на обслуживание USB хоста полностью, не только HID но и Mass Storage. Это была бы бомба.
Мне тут пришла пачка STM32F407VG, и я таки буду что-то делать с ними. ;)
матрицу на цплд я уже сколхозил, даже прошивка почти готова. С этим проблем нет. Просто неприятно, что с одним только МК пока не получается...
---------- Post added at 20:27 ---------- Previous post was at 20:26 ----------
407-е вообще бомба, можно квейк на нем гонять :)
---------- Post added at 21:14 ---------- Previous post was at 20:27 ----------
Ябкупил
Сам я просто не умею заниматься производством.
Если кто-нибудь, zorel или zst, или другой желающий, захотят - пожалуйста.
Вышлю производителю почтой работающий образец для оценки и бетатестирования, чтобы не делали "кота в мешке".
Viktor2312
01.04.2015, 21:26
или другой желающий, захотят
Эх, жаль у меня сейчас времени нет, а то можно было б заняться, платка маленькая, я так понял, на ней один разъём USB, второй PS/2, а между ними микроконтроллер и немного обвязки. Даже корпус для такой мелочи можно подобрать, чтобы платку сразу для него забацать, ну чтобы она не болталась в нём, как сопля, а была прикручена на четыре винтика.
---------- Post added at 21:26 ---------- Previous post was at 21:24 ----------
А питание она с PS/2 берёт?
Да, от компа-донора.
Я сегодня нашел почти годную коробочку, BOX-G026.
Но она великовата все равно, надо растопырки внутри делать... Зато из одной коробочки можно сделать сразу два корпуса, там две половинки достаточной глубины.
http://savepic.net/6586279m.jpg (http://savepic.net/6586279.htm)
Error404
01.04.2015, 23:00
Убирание ps/2 нафик - в творческих планах.
Была попытка сделать нахрапом USB-матрица.
Всё взлетело, но с одной оговоркой - не успеваем отэрегировать на запрос компа.
Скорее всего алгоритм неверный.
Что производишь при выставлении компиком кода матрицы по X/Y ?
Там от контроллера надо то: от изменения Х по прерыванию взять адрес в таблице и выдать ее ячейку в выходной порт (Y). Пяток тактов на все про все. А вот поддержание таблицы вариантов порта Y актуальной - уже действительно требует времени и непростого алгоритма. Но это то делается непрерывно и неспеша спокойно прерываясь на что угодно.
Там от контроллера надо то: от изменения Х по прерыванию взять адрес в таблице и выдать ее ячейку в выходной порт (Y). Пяток тактов на все про все.
Я для кого писал про прерывания USB?
Там частота 100Гц на обслуживание USB-хозяйства. Обменяться данными с устройством, распарсить полученный пакет и разместить его в буфере. Это минимальная задача на каждом вызове.
Что производишь при выставлении компиком кода матрицы по X/Y ?
Пытаюсь уйти на прерывание, если более приоритетные не скажут ждать в уголочке своей очереди.
Error404
01.04.2015, 23:45
Я для кого писал про прерывания USB?
Там частота 100Гц на обслуживание USB-хозяйства. Обменяться данными с устройством, распарсить полученный пакет и разместить его в буфере. Это минимальная задача на каждом вызове.
Ну и что? И занимайся этим непрерывно, как основной цикл. Я именно про опрос USB-устройства и писал в
А вот поддержание таблицы вариантов порта Y актуальной - уже действительно требует времени и непростого алгоритма. Но это то делается непрерывно и неспеша спокойно прерываясь на что угодно.
Где "что угодно" и есть выдача кода на матрицы из заранее приготовляемых вариантов, как раз на основе того 100-герцового опроса кнопок. Подумаешь не реже 100Гц это надо делать - небось частота контроллера не 100кГц.
Error404, хорошо, продолжу ныть :)
Ты знаком с системой прерываний СТМ32, в особенности - прерываний по внешнему фронту?
Вкратце, там контроллер прерываний настолько совершенен, что убиться можно.
Там нет такого понятия как на AVR, что прерывание любого пина порта вызовет предсказуемое одно-единственное прерывание. На Меге48 так и происходит, в обработке просто читаешь значение с этого порта и тупо берешь значение из матрицы состояний и выплевываешь в другой порт. Всё, задача выполнена. Разумеется, на ассемблере, да. Правда, говорят что и на С можно успеть.
На асме я делал.
В СТМ32 в каждом порту 16 пинов. Прерывания по фронту разделены на группы. Одна группа щупает пины с 0 по 3, причем - по всем портам, а не по одному.
Вторая группа слушает пины 4. третья - пины пять... Последняя - пины с 10 по 15.
Если тебе надо "слушать" с 0 по 7, к примеру, то уже точек выхода на прерывание будет куча. Далее, нужно "вычленить" из порта нужный байт. Дальше матрица, как обычно, затем упихнуть данные в кусок порта I/O.
Причем, код пишется на Си...
---------- Post added at 23:59 ---------- Previous post was at 23:57 ----------
Подумаешь не реже 100Гц это надо делать - небось частота контроллера не 100кГц.
Ага. А ничего, что в это время, когда комп хочеть прочитать клаву, контроллер работает с обслуживанием USB?
---------- Post added 02.04.2015 at 00:12 ---------- Previous post was 01.04.2015 at 23:59 ----------
Еще бы в исходники прошивки хотелось бы подсмотреть, с целью адаптировать/поправить это устройство не только для PS/2 (и AT DIN-5), но и для выдачи параллельного кода КОИ-8.
Разработчикам дам, на всеобщее - не буду.
Viktor2312
02.04.2015, 00:58
А может лучше всё же родная, механическая. Чем эти костыли протезы?
Не для практики и освоения STM32 поковырять это здорово, но вот раскладка же на клавиатуре не совпадает как вроде.
zorel[/B] или zst, или другой желающий, захотят - пожалуйста.
Вышлю производителю почтой работающий образец для оценки и бетатестирования, чтобы не делали "кота в мешке".
Можно этим заняться. Конструктор для пайки с бесплатной доставкой и беспроцентным переводом денег обойдется около 550 рублей. Такая цена приемлемая ?
HardWareMan
02.04.2015, 07:27
Error404, хорошо, продолжу ныть :)
Ты знаком с системой прерываний СТМ32, в особенности - прерываний по внешнему фронту?
Вкратце, там контроллер прерываний настолько совершенен, что убиться можно.
Там нет такого понятия как на AVR, что прерывание любого пина порта вызовет предсказуемое одно-единственное прерывание. На Меге48 так и происходит, в обработке просто читаешь значение с этого порта и тупо берешь значение из матрицы состояний и выплевываешь в другой порт. Всё, задача выполнена. Разумеется, на ассемблере, да. Правда, говорят что и на С можно успеть.
На асме я делал.
В СТМ32 в каждом порту 16 пинов. Прерывания по фронту разделены на группы. Одна группа щупает пины с 0 по 3, причем - по всем портам, а не по одному.
Вторая группа слушает пины 4. третья - пины пять... Последняя - пины с 10 по 15.
Если тебе надо "слушать" с 0 по 7, к примеру, то уже точек выхода на прерывание будет куча. Далее, нужно "вычленить" из порта нужный байт. Дальше матрица, как обычно, затем упихнуть данные в кусок порта I/O.
Причем, код пишется на Си...
NVIC работает достаточно шустро, а с применением приоретизации будет совсем хорошо. Думаю, на джиттер на УСБ хосту устройства ругаться не будут. Далее, а кто тебе мешает писать на асме? Он там еще проще, я даже доки по командам могу дать, если уж так хочется.
А вообще, все зависит от того, какие тайминги у опроса клавиатуры. У спека я так понимаю одна команда чтения по адресу процессором, а это очень узко. А ежели кто-то турбирует так и вообще. Так что, чтобы быть совсем универсальным, я все же настаиваю на CPLD или специально выделенным контроллером с простым управлением (УАРТ например). А СТМку нагружать действительно полезными вещами: обработка ХИД а и сторожа, причем вместе с ФС, сразу на порт грузить тапки. ;)
Не, про асм на стм я даже не заикаюсь.
Тем более, фирмваре для юсб предоставлено исключительно на Си. Ты сможешь завести его на асме?
Я вот относительно себя (и 99% прочих армоводов) сильно сомневаюсь...
---------- Post added at 09:31 ---------- Previous post was at 09:29 ----------
zst, если цена устроит народ, то вышлю тебе конвертер на "обнюхивание" :)
Error404
02.04.2015, 13:01
Error404, хорошо, продолжу ныть :)
Ваше право. :)
Ага. А ничего, что в это время, когда комп хочеть прочитать клаву, контроллер работает с обслуживанием USB?
Клава на реале опрашивается обычно с частотой много раз в секунду - чтобы реагировать на нажатия когда они происходят, а не абы как.
Ну пропустит твой контроллер одно прерывание от ZX-хоста, или отработает его на милисекунду медленнее (отвлекаясь на USB) - это для ZX-хоста экивалентно тому, что пользователь нажал кнопку на милисекунду позже, т.е. фиолетово как для хоста, так и для пользователя. Задача только в том чтобы матрица состояний поддерживалась актуальной нажатым кнопкам.
Сергей, хорошо, уговорил! :)
Да я и так продолжаю рыть в эту сторону.
---------- Post added at 13:22 ---------- Previous post was at 13:21 ----------
У спека я так понимаю одна команда чтения по адресу процессором, а это очень узко. А ежели кто-то турбирует так и вообще.
Вот что грамотные люди про это говорят :)
HardWareMan
02.04.2015, 15:37
Вот уж спасибо за грамотных людей.
Не, про асм на стм я даже не заикаюсь.
Тем более, фирмваре для юсб предоставлено исключительно на Си. Ты сможешь завести его на асме?
Я вот относительно себя (и 99% прочих армоводов) сильно сомневаюсь...
Как и в AVR все там сводится к изменению данных в регистрах согласно алгоритма. HID девайс, например, очень прост: 80% программы занимают таблицы с данными дескрипторов, которые надо отдать хосту на стадии инициализации. Сам алгоритм на пару экранов, причем полностью в процедуре глобального прерывания. Хост, конечно, посложнее будет, ну и Б-г с ним. В любом случае, если хотите безвейта - нужно продумывать и делать сопряжение, вне зависимости от крутости контроллера. Проблема схожа со Специалистом, но у того хотя-бы клок всего 2МГц.
Viktor2312
02.04.2015, 16:36
Не лучше
Ну это для кого как, для меня лучше.
Error404
02.04.2015, 17:20
Сергей, хорошо, уговорил! :)
Да я и так продолжаю рыть в эту сторону.
У спека я так понимаю одна команда чтения по адресу процессором, а это очень узко. А ежели кто-то турбирует так и вообще.
Вот что грамотные люди про это говорят :)
Конкретно для Спека, где надо по первому такту проца сгерить прерывание и уже через 2 такта Z80 выдать результат из таблицы состояний, надо к схеме контроллера добавить всего лишь один 8-битный регистр с Z-состоянием (ИР22/23/33): контроллер по прерыванию в нее пишет как успеет, а Спек из него читает когда хочет, управляя Z-состоянием (Z80.RD->ИР23.OE).
При такой реализации не важно сразу ты отработаешь прерывание от ZX и запишешь в регистр, или по приоритетам спустя несколько милисекунд, или отвлекаясь на обработку USB. Ибо регистр хранит данные уже актуальные (если успели ответить) или предыдущего "запроса" (если моментально ответить не успели). Т.е. опять все тот же некритичный (для человеческого восприятия) случай когда со стороны ZX-хоста выглядит что кнопка нажата или отпущена на пару милисекунд позже чем есть.
В любом случае, схема "контроллер + регистр" выглядит куда как более здраво чем схема с двумя последовательно включенными контроллерами где один делает преобразование "USB-PS2", а второй "PS2-матрица". Кстати, два контроллера тоже не будут успевать отрабатывать без задержки, т.к. в последовательных схемах задержки складываются.
В любом случае, если хотите безвейта - нужно продумывать и делать сопряжение, вне зависимости от крутости контроллера.
Ну так а я об чем.
Да и Wait не так страшен, КМК.
HardWareMan
02.04.2015, 18:04
Конкретно для Спека, где надо по первому такту проца сгерить прерывание и уже через 2 такта Z80 выдать результат из таблицы состояний, надо к схеме контроллера добавить всего лишь один 8-битный регистр с Z-состоянием (ИР22/23/33): контроллер по прерыванию в нее пишет как успеет, а Спек из него читает когда хочет, управляя Z-состоянием (Z80.RD->ИР23.OE).
При такой реализации не важно сразу ты отработаешь прерывание от ZX и запишешь в регистр, или по приоритетам спустя несколько милисекунд, или отвлекаясь на обработку USB. Ибо регистр хранит данные уже актуальные (если успели ответить) или предыдущего "запроса" (если моментально ответить не успели). Т.е. опять все тот же некритичный (для человеческого восприятия) случай когда со стороны ZX-хоста выглядит что кнопка нажата или отпущена на пару милисекунд позже чем есть.
Есть подводный камень: Z80 делает серию чтений, при этом сдвиг "неуспевших" данных означает сдвиг кнопок по матрице клавиатуры. Если делать строго 1 регистр, то заполнять его надо актуальными данными. А если обеспечить Z80 полным набором регистров на всю клаву, тогда да, обновлять ее можно на любой скорости, хоть 10фпс, для человека это не особо важно. Родной опрос на 50фпс, конечно.
А что, спек сам не может через драйвер работать с новым устройством в слоте? Что получается, нужно все так устройства эмулировать с помощью дополнительных плат с микроконтроллерами - порт клавиатуры, мыши, магнитофона, интерфейс 1, интерфейс 2, микродрайв, дигитайзер, мультифейс...? Это уже не спектрум, а обвешанная новогодняя ёлка какая-то :) А как же драйвера? Или никто не слышал про аппаратную/программную виртуализацию? Вот к примеру как DivMMC работает с образами TRD, TAP... эмулируя магнитофон, дисковод, джойстик.... или там на плате микроконтроллеры для каждого устройства?
Конструктор для пайки с бесплатной доставкой и беспроцентным переводом денег обойдется около 550 рублей. Такая цена приемлемая ?
Вполне приемлемо.
А что, спек сам не может через драйвер работать с новым устройством в слоте?
А 146% софта переписывать под драйвер кто будет?
---------- Post added at 21:41 ---------- Previous post was at 21:13 ----------
Ну так а я об чем.
Ты не понял коллегу.
Сопряжение - подразумевается внешний чип типа CPLD или второго МК, который и будет потеть над проблемой "успеть".
---------- Post added at 22:15 ---------- Previous post was at 21:41 ----------
"Матрицу" ЮТ-88 (Орион, Радио-86РК, Специалист...) успеваем обслужить, работает.
Скорпион-турбо - не успеваем.
Ну хоть такой прогресс пока...
---------- Post added at 22:19 ---------- Previous post was at 22:15 ----------
"Испытательный стенд" :)
http://savepic.net/6609766m.jpg (http://savepic.net/6609766.htm)
А 146% софта переписывать под драйвер кто будет?
А почему Вы решили, что нужно будет переписывать софт? Вот на Evo клавиатура PS/2 работает, кто-то хоть что-то из софта переписал? Вот смотри, есть игры для двоих, тетрис2 к примеру. Получится ли вдвоём на одной USB клавиатуре подключенной к этому устройству в него сыграть?
На Эво эмулируется порт 0xXXFE, который порт клавиатуры. Точнее, восемь портов.
Матрицы и прочие контроллеры клавиатуры делают то же самое.
Тогда я не понимаю сути Вашего вопроса/предложения.
---------- Post added at 22:54 ---------- Previous post was at 22:52 ----------
Получится ли вдвоём на одной USB клавиатуре подключенной к этому устройству в него сыграть?
Скорее всего - да. Но тут и ёжику понятно, что ни PS/2, ни USB не дадут поддержки такого количества одновременно нажатых клавишь, как механика. Но шансы - велики :)
Тогда я не понимаю сути Вашего вопроса/предложения.
Вот смысл в этой статье (http://cyberfight.ru/offline/articles/88441/), надеюсь прояснит суть.
Ленинград-2012 - работает с USB-контроллером/матрицей, но немножко не успевает, "рваные" нажатия. Еще поднажмем...
---------- Post added at 23:00 ---------- Previous post was at 22:55 ----------
Вот смысл в этой статье, надеюсь прояснит суть.
Имеешь ввиду это - "NKRO – принцип, при котором вы можете одновременно нажать сколько угодно клавиш на клавиатуре и сигнал от каждой из них поступит в компьютер."?
USB-HID вроде как намертво ограничен 6 байтами и 6 кнопками, соответственно.
При этом не все USB-клавы в принципе поддерживают даже такое количество.
Я, собственно, считал что и PS/2 действует аналогично.
---------- Post added 03.04.2015 at 00:04 ---------- Previous post was 02.04.2015 at 23:00 ----------
Еще поднажмем...
Поднажал.
Сам не понял, как вышло, но Спектрум на 3,5МГц (Ленинград-2012) заработал нормально с адаптером, без "провалов" и тормозов.
Ищу, где я так удачно накосячил, для собственного понимания процесса :)
А чистые платки во сколько обойдутся? Или не предусматриваются такие?
Отдельно рублей 200 за одну пустую плату с учетом пересылки, каждая последующая по 130 руб.
---------- Post added at 08:25 ---------- Previous post was at 08:17 ----------
Спектрум на 3,5МГц (Ленинград-2012) заработал нормально с адаптером, без "провалов" и тормозов.
Это хорошо, но у большинства компьютеров есть PS/2 вход для клавиатуры.
Можно предусмотреть разъемы IDC-16M и IDC-10M по распайке как у LENINGRAD-2012. Чтобы можно было подключить шлейфами к нему или аналогичного класса компьютерам.
Еще желательно сделать разъемы WF-04M UART и IDC-10M для подачи сигналов на регистры сдвига как на плате SUPER JOYSTICK PORT2 & PS/2 KEYBOARD. Тогда можно было бы USB-часть контроллера клавиатуры c STM32 закрепит\ь на корпусе компьютера с внутренней стороны.
Это позволит при разных прошивках подключаться:
1. К разъему PS/2 клавиатуры компьютера (пайкой к плате или через кусок шнура PS/2)
2. Подавать данные через UART на платы типа SUPER JOYSTICK PORT2 & USB KEYBOARD.
3. Подавать данные на регистры сдвига или аналогичную схему на ПЛИС/FPGA
4. К компьютерам без TURBO типа Ленинград (без PS/2) шлейфами IDC-16 и 10.
Этот конвертер надо подружить с zx-evo под турбой на 14МГц, и желательно с подключением к разъёму для оригинальной клавы. Хотя и с подключением к PS/2 мне уже нравится.
Этот конвертер надо подружить с zx-evo под турбой на 14МГц, и желательно с подключением к разъёму для оригинальной клавы
Не, этого точно не будет. Только через PS/2.
Поднажал.
отпускаю...
Не, все равно не кошерно. Проскоки частые. Ладно там в бейсиках сидеть, но в игрушки играть - не кошерно. Надо CPLD цеплять...
Для наших компов с ВВ55 на порту клавиатуры можно оставить и как есть, они успевают получить свои данные. А спектрумы - не потянуть.
---------- Post added at 21:04 ---------- Previous post was at 21:02 ----------
zst, отправь пожалуйста свои почтовые координаты в личку.
Небольшой апгрейд. Или даунгрейд? В общем, убрал преобразователь уровней на полевиках.
Лапы микроконтроллера - толерастны к 5 вольт, поэтому оставив подтяжку к +5в и переключив их в режим ОК, всё работает прекрасно и без транзисторов. Платка стала чуть меньше по габаритам.
http://savepic.net/6663672.png
Лайку и прошивку выложу чуть позже, гоняю платку в работе на разных компах.
---------- Post added at 23:42 ---------- Previous post was at 23:37 ----------
Да, кстати... Образовался один свободный конвертер. 200р + пересылка. Заранее извиняюсь, но нового хозяина я выберу генератором случайных чисел, если будет больше одного желающего.
Небольшой апгрейд. Или даунгрейд? В общем, убрал преобразователь уровней на полевиках.
Лапы микроконтроллера - толерастны к 5 вольт, поэтому оставив подтяжку к +5в и переключив их в режим ОК, всё работает прекрасно и без транзисторов. Платка стала чуть меньше по габаритам.
http://savepic.net/6663672.png
Лайку и прошивку выложу чуть позже, гоняю платку в работе на разных компах.
---------- Post added at 23:42 ---------- Previous post was at 23:37 ----------
Да, кстати... Образовался один свободный конвертер. 200р + пересылка. Заранее извиняюсь, но нового хозяина я выберу генератором случайных чисел, если будет больше одного желающего.
Предложения по модернизации конструкции и схемы:
Рядом с разъемом USB место не занимать. Лучше там разместить два мебельных уголка 20х20 (шириной по 16 мм) для крепления конвертера на стенку корпуса изнутри. Для этого высоту платы увеличить до 38 мм. Сами уголки будут на треть торчать по бокам платы, хотя плату можно еще увеличить в высоту, но уменьшить в ширину.
Добавить:
1 джампер KEYBOARD/MOUSE - вдруг эту плату потом можно будет использовать универсально и для подключения мышки.
2 джампера SCALE MOUSE
2 джампера ВЫБОР ВЫХОДА: PS/2, UART, REGS, CPLD
Разъем UART WF-04M: 1 - GND, 2 - RX, 3 - +5V, 4 - TX
Разъем IDC-10M для подключения к плате с регистрами или CPLD:
1 - REG_L
2 - +5V
3 -
4 - GND
5 -
6 - GND
7 - REG_S
8 - GND
9 - REG_D
10 - GND
Ewgeny7, микроконтроллер будет прошиваться с помощью девборды с STM32F и программатором ST-LINK/V2 ?
Светодиоды можно убрать. Освободятся выводы MK и место на плате.
Вместо MDN-6J можно оставить WF-04M (1 - GND, 2 - CLK, 3 - +5V, 4 - DAT) и рядом 4 отверстия без металлизации диаметром около 1 мм пропускать провода перед пайкой без разъема.
Предлагаю все резисторы и конденсаторы сделать типаразмера 0805.
Изменения на плате я могу сделать сам перед заказом. Нужно решить по схеме куда подключить джамперы и новые разъемы.
HardWareMan
05.04.2015, 06:31
Тогда уже сделайте его в форм-факторе кабельного переходника. Помните были такие пассивные для двухстандартных клавиатур?
http://texno.com.ua/upload/shop_1/8/7/0/item_87090/shop_items_catalog_image87090.jpg
И в комп не надо лезть и размеры не большие.
Примерное размещение уголков и разъемов:
http://s012.radikal.ru/i319/1504/d2/bf6e51b5e08at.jpg (http://s012.radikal.ru/i319/1504/d2/bf6e51b5e08a.png)
Во вложении файл в формате LAYOUT.
Тогда уже сделайте его в форм-факторе кабельного переходника. Помните были такие пассивные для двухстандартных клавиатур?
И в комп не надо лезть и размеры не большие.
На мой взгляд, лучше убрать USB-PS/2 конвертер в корпус компьютера, чтобы не торчало ничего лишнего снаружи. Можно положить в небольшую коробочку с обрезком PS/2 кабеля рядом с компом. Выбор остается - кому как удобнее.
Хотя, если разместить резисторы и конденсаторы на другую сторону, то можно будет ужать плату до 19 мм и разместить в корпусе для USB-флешки (http://www.gainta.com/pdf/g1901c_g1901_g.pdf). К PS/2 подключать обрезком провода.
Зато не лезть внутрь компьютера. Такой вариант достаточно хорош. То есть не надо никаких дополнительных разъемов, режимов, только выход PS/2.
В корпусе есть направляющие для платы. Размер платы 19х45 мм.
http://s020.radikal.ru/i720/1504/85/c7b0b039f444t.jpg (http://s020.radikal.ru/i720/1504/85/c7b0b039f444.png)
Хотя, если разместить резисторы и конденсаторы на другую сторону, то можно будет ужать плату до 19 мм и разместить в корпусе для USB-флешки (http://www.gainta.com/pdf/g1901c_g1901_g.pdf). К PS/2 подключать обрезком провода.
Зато не лезть внутрь компьютера. Такой вариант достаточно хорош. То есть не надо никаких дополнительных разъемов, режимов, только выход PS/2.
zst, я на второй же день накидал плату, правда по первоначальной схеме, может пригодится:
51727
Предложения по модернизации конструкции и схемы
В этом плане я полностью доверяю тебе, у тебя опыта больше :)
1 джампер KEYBOARD/MOUSE - вдруг эту плату потом можно будет использовать универсально и для подключения мышки.
Вот в этом смысла нет. МК сам прекрасно видит, что ему воткнули, клаву или мышку. В соответствии с этим можно будет и логику "симуляции" менять, джампер для этого не нужен.
2 джампера ВЫБОР ВЫХОДА: PS/2, UART, REGS, CPLD
А как будет работать UART? И зачем оно?
В общем... насчет GPIO для подключения дочки с CPLD - согласен. Это дело придумаем и подключим.
Все остальные интерфейсы, кроме PS/2 - выхода, считаю излишним.
Прошивание контроллера делаем или девбординами с STM32, или более бюджетно - на алиэкспресс, ебее или еще где находится ST-LINK V2. Он стоил еще недавно 100 рублей, сейчас - подороже. Возможно, получится обновлять прошивку через UART, у многих СТМ такая фича присутствует.
HardWareMan
05.04.2015, 14:55
А как будет работать UART? И зачем оно?
Ну выдавать голый ASCII как вариант. Очень прикольно для поделок на мелкоконтроллерах - считай у тебя малой кровью появится пульт на 105+ клавишь ;)
Возможно, получится обновлять прошивку через UART, у многих СТМ такая фича присутствует.
Или с USB флешки, да. ;)
Для сопряжения с CPLD предлагаю I2C, те же 2 провода что и PS/2, легко реализуем даже в мелкой CPLD. Рекомендую использовать пины с аппаратным I2C, все равно PS/2 ты программно делаешь. ;) Я вот тут (http://zx-pk.ru/showpost.php?p=754272&postcount=28) использую его.
Ну выдавать голый ASCII как вариант. Очень прикольно для поделок на мелкоконтроллерах - считай у тебя малой кровью появится пульт на 105+ клавишь
Если только для этого. А на ретро-компах оно нафига? Делать подобие компорта? А как оно будет стыковаться с компом? И для этого понадобится полный перезапуск микроконтроллера в режиме USB_device_CDC, что совсем не хочется, ибо придется еще и обвеску резисторную лепить с транзисторным ключом.
Проще тогда предусмотреть совершенно левую прошивку, заточенную под эти нужды, и напаивать стационарно допрезистор 2к между +Vcc и DМ разъема USB.
Или с USB флешки, да
Да, давайте еще годик помечтаем, попридумываем, глядишь там и Апокалипсис уже наступит, и все наши компы сгорят вместе с нами :)
Для сопряжения с CPLD предлагаю I2C, те же 2 провода что и PS/2, легко реализуем даже в мелкой CPLD.
Можно сделать свой типа-SPI с блекджеком и так далее, чтобы было еще проще, обойтись одним сдвиговым регистром на 9 разрядов в CPLD. Девятый бит - признак нажатия/отпускания. Вроде как такой режим где-то попадался на глаза в мануалах STM.
---------- Post added at 21:41 ---------- Previous post was at 21:37 ----------
Хотя, если разместить резисторы и конденсаторы на другую сторону, то можно будет ужать плату до 19 мм и разместить в корпусе для USB-флешки.
Именно.
На платке заводского изготовления можно поизвращаться от души.
---------- Post added at 21:42 ---------- Previous post was at 21:41 ----------
правда, один светодиодик лучше бы оставить. Он хоть сообщит, что всё стартовало и USB-устройство опознано и работает.
Да, кстати... Образовался один свободный конвертер. 200р + пересылка. Заранее извиняюсь, но нового хозяина я выберу генератором случайных чисел, если будет больше одного желающего
Желающих не образовалось, свободный конвертер отправляется единственному заявителю - creator.
Сбрось, пожалуйста, координаты в личку.
---------- Post added at 11:12 ---------- Previous post was at 11:04 ----------
zst, у тебя есть программатор для STM32?
HardWareMan
06.04.2015, 12:27
Можно сделать свой типа-SPI с блекджеком и так далее, чтобы было еще проще, обойтись одним сдвиговым регистром на 9 разрядов в CPLD. Девятый бит - признак нажатия/отпускания. Вроде как такой режим где-то попадался на глаза в мануалах STM.
SPI - много проводов. Без них нет никакой синхронизации к потоку. I2C за глаза.
SPI - много проводов
SCK + MOSI.
HardWareMan
06.04.2015, 14:54
SCK + MOSI.
А синхрить как?
Можно этим заняться. Конструктор для пайки с бесплатной доставкой и беспроцентным переводом денег обойдется около 550 рублей. Такая цена приемлемая ?Одобряю и "красным революционным карандашом": "Разрешаю!"
Надо делать! Мне уже нужно три штуки!
А синхрить как?
Я прям и не знаю, как сказать... SCK не устроит? :)
Клок + данные 9 бит, что еще нужно, чтобы перекинуть данные?
Я не упертый, просто реализация обычного сдвигового регистра займет копейки ресурсов. А для I2C нужно чуть более, чем один регистр. Если I2C будет правильнее, то применю его, разумеется.
---------- Post added at 16:09 ---------- Previous post was at 16:00 ----------
Так, zst не отвечает, отправляю образец без программатора.
zst, у тебя есть программатор для STM32?
Нет, но есть девборды STM32F0DISCOVERY, STM32VLDISCOVERY, STM32F4DISCOVERY. Надо бы совместимость по разъемам соблюсти.
---------- Post added at 18:46 ---------- Previous post was at 18:31 ----------
Одобряю и "красным революционным карандашом": "Разрешаю!"
Надо делать! Мне уже нужно три штуки!
Можете заказывать. Надо собрать денег для заказа партии деталей. Скоро ко мне приедет рабочий образец. Я уже настроился заказать детали и платы (http://www.zxkit.ru/katalog-1/zxkit-030) для конструкторов. Схема вроде уже устоялась. Все работает. Надеюсь, что это была не первоапрельсакая шутка.
Так, моё сообщение о желаемом виде девайса выпилили...
А реализовать платку которая бы удобно крепилась в корпусе и имела два входа usb и два выхода ps/2 (клава, мышь), возможно? А то придётся две платы брать, опять колхоз и макароны.
Так, моё сообщение о желаемом виде девайса выпилили...
А реализовать платку которая бы удобно крепилась в корпусе и имела два входа usb и два выхода ps/2 (клава, мышь), возможно? А то придётся две платы брать, опять колхоз и макароны.
Два разъема USB или один двойной ? STM32 может только с одним разъемом работать. Значит их надо два. В принципе с уголками можно сразу делать двойной разъем USB и два арма. Цена увеличится рублей на 150. То есть 525+150=675.
Два разъема USB или один двойной ? STM32 может только с одним разъемом работать. Значит их надо два.
Один двойной разъём на входе конечно, ну и два STM32, всё же компактнее, чем две платы прикручивать.
HardWareMan
06.04.2015, 17:35
Я прям и не знаю, как сказать... SCK не устроит? :)
Клок + данные 9 бит, что еще нужно, чтобы перекинуть данные?
Я не упертый, просто реализация обычного сдвигового регистра займет копейки ресурсов. А для I2C нужно чуть более, чем один регистр. Если I2C будет правильнее, то применю его, разумеется.
Еще раз для не упертых. Как мы будем синхронизировать начало пакета данных? Не отдельного бита, а пакета в целом? У I2C есть позиции START/STOP, у SPI есть сигнал CS, который ты благополучно выкинул. Я же не зря применил I2C в клавиатуре своей: сдвиг на 1 бит посылки чреват сдвигу всей матрицы. А проводов нужно только 2. Тем более, в СТМке I2C есть аппаратный. А по твоей схеме нужно еще один провод LOAD и тогда ты получишь максимально простой автомат 74HC595.
Примерный вид двойного конвертера USB-PS/2:
http://s47.radikal.ru/i115/1504/5c/f8f7fe2cc5b6t.jpg (http://s47.radikal.ru/i115/1504/5c/f8f7fe2cc5b6.gif)
Тогда конструктив на один канал в корпусе от флешки не очень нужен.
Как мы будем синхронизировать начало пакета данных?
Хотел сказать "накуя оно надо, да и есть таймауты на крайняк", но не скажу :)
Хорошо, будем упихивать с I2C.
---------- Post added at 19:33 ---------- Previous post was at 19:32 ----------
А проводов нужно только 2.
А у нас их свободных... хоть параллельный интерфейс лепи.
---------- Post added at 19:35 ---------- Previous post was at 19:33 ----------
хоть параллельный интерфейс лепи.
Кзтате... надо набросать варианты для упихивания в 7064...
---------- Post added at 19:36 ---------- Previous post was at 19:35 ----------
Надеюсь, что это была не первоапрельсакая шутка.
Первоапрельская шутка отправлена почтой.
HardWareMan
06.04.2015, 20:39
А у нас их свободных... хоть параллельный интерфейс лепи.
А я почемуто подумал, что по ТЗ у нас ограничение в 2 провода. Ну а коли так, то ты у нас разраб и ведущий инженер этого проекта, тебе и решать. Фанта. :3
Или одна STMка не будет успевать и за мышью и за клавиатурой?
Не успевать, а просто не будет обрабатывать их вместе. Не умеет контроллер этого.
---------- Post added at 23:06 ---------- Previous post was at 23:05 ----------
Занимаюсь "мышиной" прошивкой.
Мышку видим, данные получаем, нужно привести их к удобоваримому виду для хоста.
---------- Post added at 23:08 ---------- Previous post was at 23:06 ----------
Можно сделать, чтобы адаптер мог работать с клавиатурой или мышкой, смотря что в него воткнуто, с одной общей прошивкой. Но не одновременно.
[QUOTE=Ewgeny7;795177]Не успевать, а просто не будет обрабатывать их вместе. Не умеет контроллер этого.[COLOR="Silver"]
Почему не умеет? PIC24 умеет, а STM нет?
Если RF свисток, то там для мыши и клавиатуры два интерфейса,
у каждого по одной входной EP, нужно лишь сначала определить
какая EP к чему относится, как в репортах данные расположены,
а потом по очереди опрашивать эти EP. Сейчас у меня на PIC24
можно хоть мышь, хоть клаву, хоть джойстик, хоть RF свисток подключить,
работают. И мышка с клавиатурой вместе пашут, осталось только
через хаб сделать, что бы можно было клавиатуру, мышь и 3 джойстика
одновременно пользовать.
В даташиты зарываться не буду, умеет или не умеет.
Если ставить цель в жизни допилить устройство до мегапуперсостояния, то ничему преград нет.
А мне оно уже поднадоело, я дал готовое устройство народу, пользуйтесь. Что я хотел - уже сделал и доволен этим.
Интересы у меня уже снова переключились на другое, поэтому мне и не скучно никогда.
Кто хочет - пускай делает с блекджеком и прочими женщинами...
HardWareMan
07.04.2015, 06:40
Хост он аппаратный и он полный у СТМки, причем честный 2.0. А вот обработка более чем одного устройства на шине это уже к прошивке отношение имеет. Поэтому это дело программиста. А если хотите одновременного обслуживания вам придется натаскать его на хаб. В общем, в аппаратном смысле ограничений не вижу.
petrov1962
07.04.2015, 13:34
SCK + MOSI.
Евгений, а будет ли этот конвертер работать с беспроводными клавиатурами?
Евгений, а будет ли этот конвертер работать с беспроводными клавиатурами?
->
Относительно беспроводных клавиатур. Теоретически - должно работать. При условии, что "свистулька", вставляемая в ПЦ-комп, представляется именно USB-HID-устройством aka клавиатура.
У меня есть беспроводная Perfeo, но работать с контроллером отказывается. Больше проверить пока не на чем...
Ковыряюсь с мышками.
Прошивка обновилась, ускорилась инициализация девайса, определяет что в него воткнуто - клава или мышь и работает по соответствующему алгоритму. Мышиный алгоритм пока в процессе написания.
Пришло сообщение, что Спекки-2010 тоже не против поработать с конвертером.
zst пока молчит, хоть и получил платку уже давно.
Устройство хорошее, но заказал только один человек. Собранную плату. Спросил, подходит ли для ZX-EVO. Про клавиатуру знаю, что подходит. Что ответить про мышку ? Прошивка пока не написана ?
Думал, наберется заказов тыщ на 20 рублей - закажу по сотне армов, разъемов и плат. Если бы выдали зарплату за январь - заказал бы на свои. Пока задерживают. Свободных денег пока нет. Надо как-то складываться или пусть заказывает кто-то другой. За детали и платы надо же как-то деньги будет возвращать. А если нет заказов, что я с ними делать буду. Устройство хорошее, но желающих приобрести нет.
Что ответить про мышку ? Прошивка пока не написана ?
Так ты молчишь, в теме - тишина. Я и задвинул эту мышку нафиг, ибо мне оно не надо.
Думал, наберется заказов тыщ на 20 рублей - закажу по сотне армов, разъемов и плат.
А кто-нибудь на форуме уже в курсе, что ты заказ набираешь? :)
Да и не будет в таком количестве.
Наверное, проще будет отЛУТить десяток.
Или ждать у моря погоды, пока ПС/2 совсем пропадут.
Ewgeny7, надо мышку. :)
Устройство хорошее, но заказал только один человек. Собранную плату. Спросил, подходит ли для ZX-EVO
Скоро ещё один закажет, то бишь я. Вообще мне их хочется взять несколько, к zx-evo и к AVR ZX как минимум.
Или ждать у моря погоды, пока ПС/2 совсем пропадут.
А я про что говорил, надуманная проблема с отсутствием PS/2 девайсов.
Но то что ты сделал, это хорошо, не надо потом заново придумывать.
Кстати, а ты не пробовал работать через USB хаб, чтобы так сказать и мышь и клаву через одну дырку?
Тогда не надо два ARM ставить, и в итоге дешевле выйдет конструкция.
perestoronin
24.04.2015, 18:52
Про заказ платок, не торопитесь много делать. Клавиатуры то разные бывают, надо охватить широкую номенклатуру usb-клавиатур. Грызунов оставим на закуску, когда кнопочки продавим, кроме клавиатур и мышей ещё и джойстики usb актуальны, особенно 3DConnexion SpaceNavigator.
Мысль на счёт хаба хорошая, есть ли недорогой чип хаба на 4 порта?
Качественных клавиатур PS/2 в продаже нет и с производства давно сняты. Про NIX - это свалка невостребованного железа :(
Качественных клавиатур PS/2 в продаже нет и с производства давно сняты. Про NIX - это свалка невостребованного железа :(
Ой да ладно. Этого ширпотреба в любом DNS хоть попой ешь. И под качественными это типа железные что ли.
У меня две клавы по 100 руб PS/2 (Colorsit) и ничего что то ломаться не хотят. Это господа вы зажрались малость.
Качественных клавиатур PS/2 в продаже нет давно уже.
Это что такое, кто мне может объяснить?
---------- Post added at 19:06 ---------- Previous post was at 19:03 ----------
DNS ещё хуже чем NIX.
Я и говорю зажрались вы господа. А я затариваюсь там иногда и ничего все устраивает.
---------- Post added at 19:07 ---------- Previous post was at 19:06 ----------
Гигиена и здоровье запястий отдельная спорная тема и хороших клавиатур даже среди usb ещё поискать надо.
О да, мы на спектруме работаем целыми днями, аж запястия устают.
Гигиена и здоровье запястий отдельная спорная тема и хороших клавиатур даже среди usb ещё поискать надо.
О да, мы на спектруме работаем целыми днями, аж запястия устают.
У большинства юзеров работа на клаве заключается в выборе стрелочками нужного образа и нажатие клавиши Enter для запуска программ.
Вообще спектрумисту и надо сейчас 10 клавиш
Самая дешевая хорошая клавиатура для меня:
MS Natural Ergonomic Keyboard 4000.
Ну она есть, как ты говоришь в еще хуже NIX - DNS
http://www.dns-shop.ru/catalog/i11031/klaviatura-microsoft-natural-ergonomic-keyboard-4000-chernyj#description
А где подобная PS/2 ? Были бы и вопрос не подымался.
Ну если так тебе очень сильно нужно, тогда спонсируй разработку.
А пока практика показывает, что все всех устраивает текущее положение. ;)
perestoronin
24.04.2015, 20:03
Ну если так тебе очень сильно нужно, тогда спонсируй разработку.
А пока практика показывает, что все всех устраивает текущее положение. ;)
Из меня спонсор? Никакой :) Я могу лишь наскрести на выпуск платок и небольшое число микросхемок, да разослать платки и микросхемки разработчикам в подарок.
Да и мне самому хочется этот проект реализовать. А по уже протоптанной тропинке всегда легче.
Развести микроплатку конвертера, чтобы прямо в клаву помещался, и выбирай себе любую. Вероятно, это и будет самым оптимальным решением.
cardimax
01.05.2015, 04:17
Хочу заказать готовый конвертер.
Есть в наличии?
Есть собранный, но кварцы на 12Мгц закончились. Надо в центр переться за ними. Это будет не сегодня.
cardimax
01.05.2015, 16:28
Ок.
Как будет, я первый на очереди.
Жду сообщения в ЛС.
Есть у меня KVM-переключатель от Aten, модель CS1784a, и если конвертер не умеет определять мышь, а в данном случае и с клавиатурой вместе на одном usb, то предполагаю облом :(
cardimax
06.05.2015, 04:38
Ну что, готов конвертер?
Кварц нашел, в старом "шнурке" для Сименса.
До магазинов не добраться, работаю в вечер эту неделю.
Можно будет отправить при первом удобном случае.
cardimax
06.05.2015, 20:50
Ок.
Буду ждать вашего сообщения в ЛС.
alex-eller
10.05.2015, 07:36
Жалко, такая жирная микруха, а используется ниочём( Неужели все её 72Мгц под завязку забиты?
А там мозгом рехнуться ещё сколько всего простаивает: 128кб Flash, 32кб ОЗУ, 2x SPI, 2x I2C audio class, 3xUSART, USB OTG, 2xCAN 2.0B, 2xАЦП 16 каналов.
Жалко, такая жирная микруха, а используется ниочём( Неужели все её 72Мгц под завязку забиты?
А там мозгом рехнуться ещё сколько всего простаивает: 128кб Flash, 32кб ОЗУ, 2x SPI, 2x I2C audio class, 3xUSART, USB OTG, 2xCAN 2.0B, 2xАЦП 16 каналов.
Сможете сделать чтобы она клавиатуру с мышью на одном usb корректно обрабатывала? Тогда это будет полноценный конвертер, который и с KVM переключателем сможет работать.
Я заказал деталей на 25 конструкторов для начала. Как придут - уточню размеры разъема и корпуса, чтобы развести печатную плату. Буду делать переходник внешний в корпусе типа "флешка". Это позволит подключать одну клавиатуру к нескольким компьютерам с PS/2 входами. Не одновременно, конечно, а подключая переходник к нужному компьютеру.
Макет переходника USB to PS/2 к корпусе типа "флешка":
http://s019.radikal.ru/i636/1506/0a/8ee97304bf7ct.jpg (http://s019.radikal.ru/i636/1506/0a/8ee97304bf7c.jpg)
Мышку я пока "задвинул" до прихода вдохновения. Мыши ведут себя сильно разнообразно, каждая по своему. Надо им отсылать пакеты инициализации, чтобы в чувство приводить.
Для начала сделаем переходник для клавиатуры. Корпус мелковатый, но можно втиснуться. Плату еще не сделал, только детали пришли.
Сейчас адаптеры есть у трех человек на бета-тестировании. Пока что отзывы только положительные. На этом раздачу образцов заканчиваю, дальше приобретайте у zst кому это будет нужно.
sergio78
24.10.2015, 19:06
а сразу распаять этот контралёр, на плату какого нибудь ленинграда или пентагона, можно наверное? и повесить на него, ещё и загрузку с флешкарты, чтоб контралёр только клавиатуры не выглядел в 10 раз сильнее самого обслуживаемого компа. это позволит не напрягаться от необходимости либо клавиатуры аж за 4000 рублей, либо кучи переходных платок, с ершами не контачащих разъёмов, и обламыващимися бородами мгтфа. а вообще я мечтаю, чтоб кто бы развёл простой 128 кбайтный спектрум с музпроцессором. и чтоб без всяких fpgaшек было, без не нужного нынче конталёра дисковода, такого же ненужного ide. только usb под клаву, мышь, и порт для sd, или вообще usb флешкарты.
sergio78
24.10.2015, 22:35
посмотрел ради любопытства даташит на STM32F105RBT6 и офигел. честное слово, на нем наверное хороший программист почти весь спектрум сделать может. ещё в придачу и с выходом в интернет. по крайней мере обвязку точно возьмет, если уровни сигналов 5в z80 с 3.3 в этого микроконтралёра возможно чем то несложным, согласовать.
Не сможет. Скорости не хватит для симуляции Z80. Я на этом чипе только 580ВМ80А смог реалтаймово сделать, в варианте эмулятора "ЮТ-88" (http://zx-pk.ru/showthread.php?t=25688). Конечно, если мутить на ассемблере, то - фиг его знает... Но мы - по старинке, на Си.
perestoronin
25.10.2015, 00:37
по старинке, на Си
по скорости работы программ, разницы между Си и асмом не много.
А на счет того, чтобы сделать некий шлюз на STM32 для выхода в w3 с любой 8-ки через консольного клиента типа links - мысль хорошая, но кто-бы взялся совершить этот подвиг ? :)
Опять в космос полетели... а между тем конвертер с мышью дружит? А с KVM и прочими подобными переключателями?
sergio78
25.10.2015, 00:57
Не сможет. Скорости не хватит для симуляции Z80. Я на этом чипе только 580ВМ80А смог реалтаймово сделать, в варианте эмулятора "ЮТ-88" (http://zx-pk.ru/showthread.php?t=25688). Конечно, если мутить на ассемблере, то - фиг его знает... Но мы - по старинке, на Си.я подразумивал, что z80 только настоящий желательно использовать, как самый что нинаесть ламповый. а чип Stm32f107vct6, который ненамного на али дороже получается, из того же даташита, но довольно жирнее получается, чем из темы. и он возьмёт на себя ula, переферию с флешкой, и звуковой процессор с сетью, если аудиокодек с PHY трансивером ещё до кучи развести. ну а про ассемблер,- к сожалению на ассемблере сейчас только индусы с китайцами мутят, а наши от него в основном плачут, говорят что быстрая кросплатформенность-наше всё, и вообще никто не имеет права так заставлять напригаться. поэтому надежда что разведут и спаяют подобный девайс у меня например уже есть, так как разводильщиков и паяльщиков тут довольно много. а вот програмной поддержки этого чуда, скорее всего уже совершенно не будет. из за этого например уже года 3 ни один fpga эмулятор dosboxа так из альфаверсии вылезти не может никак. в то время, как я сплю и вижу. чтоб получить такой девайс, за недорого, и навсегда забыть об линуксе, реальном досбоксе, и запуске его на пк, или хотя бы на малине-жестокой убийце флешек.
perestoronin
25.10.2015, 01:02
Опять в космос полетели... а между тем конвертер с мышью дружит? А с KVM и прочими подобными переключателями?
А разве из космоса не виднее что реально, а что нет, с чем дружит, а с чем само не станет работать, пока в прошивке на найдется кусок кода для поддержки той или иной железки, в том числе и мышей, да и не все клавиатуры будут работать с переходником :(, может потребоваться самостоятельное допиливание прошивки или подбор работающей клавиатуры.
Поэтому вопрос, кто пробывал имеющуюся прошивку (из первого поста) на совместимость с клавиатурой Microsoft Natural Ergonomic 4000 (http://ergosolo.ru/buy/keyboard/) ?
С какими клавиатурами прошивка работает и с какими не работает? Прошу поделиться земным опытом.
может потребоваться самостоятельное допиливание прошивки или подбор работающей клавиатуры
Я бы с радостью, с напильником дружу, но всякие fpga, cpld и прочие контроллеры допиливать не обучен.
---------- Post added at 01:07 ---------- Previous post was at 01:06 ----------
С какими клавиатурами прошивка работает и с какими не работает? Прошу поделиться земным опытом.
Надеюсь таки дождусь два девайса от zst, тогда смогу попробовать как и с чем работает.
sergio78
25.10.2015, 13:05
вообщем сегодня лазия по алиэкспресс, в поисках самого доступного Stm32f107vct6, я наткнулся на это http://ru.aliexpress.com/item/2015-MeeGoPad-T02-2GB-32GB-Mini-PC-Windows-8-1-HDMI-TV-Stick-MeeGoPad-T01-Upgraded/32379823854.html?adminSeq=222340689&shopNumber=1553074. бестолковые ведроидные флешки я ранще игнорировал, но видел, как совсем недавно жлобы интел с асусом такое же, но за 8-10 тысяч представили. тут же в два раза дешевле получается, вообщем сбылась мечта идиота. все порты usb, не надо никаких переходников, будет у меня теперь нормальная микроDOS-NES-ZX система, останется только нормальные наклейки на клавиатуру купить где нибудь. но всё же полазию ещё по интернету, в поисках разведённой схемы для Stm32f107vct6. уж больно чип хороший сам по себе, для всяких -умных лампочек и утюгов.
Hi All!
Ещё можно заказать собранный ZXkit-030 или уже все?
Побуду немного некропостером :)
Востребовано ли подключение USB клавиатур к ретро-компьютерам? Просто PS/2 клавиатуры сейчас надо ещё найти, а USB на каждом шагу имеются...
Хочется собрать плату, с одной стороны USB, с другой - входа/выхода матрицы 8х8. С возможностью задания типа матрицы (предусмотреть в прошивке несколько таблиц преобразований, переключаемых джамперами).
Могу собрать в виде отдельного устройства на STM32, там это не составляет труда. Отладить - без проблем, есть пара девборд, позволяющих сделать всё без пайки.
Конструктивно - МК с обвесом + преобразователь уровней для сопряжения LVCMOS и TTL (в 1 корпусе, сразу в обе стороны).
PS: Очень актуально лично для меня, поскольку на руках и "в шаговой доступности" нет PS/2 клавиатур, а городить переходник USB->PS2 и потом это пускать ещё через 1 переходник - это мажорство, целый МК сразу лишний... Реализовать можно без проблем, на 72МГц времени в цикле опроса клавиатуры вполне достаточно для реакции на запрос компьютера.
Востребовано ли подключение USB клавиатур к ретро-компьютерам? Скорее да, чем нет.
Хочется собрать плату, с одной стороны USB, с другой - входа/выхода матрицы 8х8.На УК-НЦ матрица 8х12 и на других ПК возможны варианты.
Могу собрать в виде отдельного устройства на STM32, там это не составляет труда. Отладить - без проблем, есть пара девборд, позволяющих сделать всё без пайки.
Конструктивно - МК с обвесом + преобразователь уровней для сопряжения LVCMOS и TTL (в 1 корпусе, сразу в обе стороны). Создать и отладить универсальный вариант - вот реальная проблема.
На УК-НЦ матрица 8х12 и на других ПК возможны варианты.
Создать и отладить универсальный вариант - вот реальная проблема.
Ну, тут дело только в размере матрицы. Примерное понимание имеется, а дальше надо на деле смотреть.
Попробую за выходные хоть какой-то прототип склепать. А там можно будет и тему делать отдельную...
Вопрос про поддержку USB клавиатуры и мыши реализовали или нет?
Я бы взял такой вариант для использования через USB KVM switch на ту же ZX-Evo и Speccy2010.
Проверил конвертер на SPECCY2010, с клавиатурой GENIUS LuxeMate 100 (31300725102). Работает замечательно!
https://b.radikal.ru/b01/1903/54/bae15a216db4.jpg (https://radikal.ru)
https://a.radikal.ru/a12/1903/31/d4ae210c947c.jpg (https://radikal.ru)
https://c.radikal.ru/c41/1903/6f/ce7ab54d5baa.jpg (https://radikal.ru)
https://d.radikal.ru/d05/1903/dc/539be3d2e820.jpg (https://radikal.ru)
Всем привет
собрал данный девайс, прошивка из первого поста, возникло несколько вопросов
1. Для чего нужен светодиод D2 на PB9(62)
2. не работает автоповтор на РС, но клавиша остается зажатой ( не критично)
3. не работают некоторые клавиши ( Win , RightAlt, RightWin , Menu (которая аналог правой кнопки мыша))
4. на клаве не светится ни один светодиод
есть ли более свежая прошивка ?
пост набирал через сей девайс
Спасибо
Побуду немного некропостером :)
Востребовано ли подключение USB клавиатур к ретро-компьютерам? Просто PS/2 клавиатуры сейчас надо ещё найти, а USB на каждом шагу имеются...
Хочется собрать плату, с одной стороны USB, с другой - входа/выхода матрицы 8х8. С возможностью задания типа матрицы (предусмотреть в прошивке несколько таблиц преобразований, переключаемых джамперами).
Могу собрать в виде отдельного устройства на STM32, там это не составляет труда. Отладить - без проблем, есть пара девборд, позволяющих сделать всё без пайки.
У вас что-то получилось с задумкой?
Есть ли возможность увидеть исходники переходника?
У вас что-то получилось с задумкой?
Есть ли возможность увидеть исходники переходника?
Не особо - пока ушёл полностью в HDL, да и смена работы была. В ближайшее время вряд ли что-либо будет сделано.
А по прогрессу - тогда написал софт, подключал клавиатуры и мышки вполне нормально, данные читались. Осталось - преобразование в матрицы для конкретных ПК и общение с шиной. Вот на последнем самые грабли - для 100% ответа "мигом" проще всего поставить мелкую CPLD, которая будет дешифровать порты и хранить состояние матрицы. Для спека - это сразу 64 ячейки.
Осталось - преобразование в матрицы для конкретных ПК и общение с шиной. Вот на последнем самые грабли - для 100% ответа "мигом" проще всего поставить мелкую CPLD, которая будет дешифровать порты и хранить состояние матрицы. Для спека - это сразу 64 ячейки.
а возможно все тоже самое , только для связи с компом не матрицу , а сразу из STMа по SPI ?
собрал на плате и с прошивкой из первого поста от Ewgeny7 (плата с двумя транзисторами, двумя светодиодами). Не заработало. Проверял с двумя клавиатурами. Прошивал китайским St-Link V2 и STM32 ST-LINK Utility, вроде при прошивке все нормально. Выбирал и хард ресет, и софт ресет. Монтаж и плата естественно проверены. Куда еще копать,подскажите? может есть "более другие прошивки", все таки вариант платы и схемы, я так понял, самый первый
Куда все подевались? допаял согласно даташиту кондер 0,1 мкф между 7 выводом "ресет" и землей, замыкал "кнопкой" - не помогает. Есть ли у кого самая первая прошивка?
bolini, вот проверенная прошивка и схема
74930
это она же с первого поста,по ней и собирал, и прошивка таже. Завтра свою плату (она тоже с первого поста) сфотографирую
запустил, работает.:v2_dizzy_vodka2: Банально непропай на паре выводов STM. Причем после монтажа проверял - звонилось. Это шуп тестера под своим весом поджимал лапку к площадке, и вроде все гуд. Когда перепроверил и пропаял - заработало. Так, как и описывал Tank-uk. самое грустное, что да, не мигает светодиод на клаве при эмуляции загрузкис дисковода, а так удобно было.
иногда "подвисает" схема, перестает реагировать на клавиши. После снятия и подачи питания продолжает нормально работать, может долго, а может опять "перестать". У кого какой опыт использования? И еще - не нашел, как вводить "нижнее подчеркивание".
ЗЫ: а куда Ewgeny7 пропал?
ЗЫ: а куда Ewgeny7 пропал?
Тута он.
Этот конвертер был моей попыткой (тогда) освоить и STM32, и среду ваяния кода для нее Cube. Среда очень монструозная, это мягко говоря.
Поэтому проводить экспертизу на предмет "не работает" я вот как-то не готов. Для меня, честно говоря, вся эта юсб-хаб система так и осталась лишь частично понятым "черным ящиком". Конструктор-то я собрал, но он был заранее не сильно надежным в своих элементах.
Что я выяснил для себя - не все клавиатуры одинаково работают. С какой-то может работать очень криво. с другой (А4 tech, например) работает весьма хорошо, я ради прикола играл в RTCW на ПЦ через этот адаптер, без зависаний. Поэтому, всё что могу посоветовать - это фильтрующие конденсаторы по питанию, маложручую клавиатуру (чтобы меньше помех по питанию было), ну и... проверить на другой.
OrionExt
01.01.2022, 18:03
интересная история. а что же ты сразу не признался? что я тут не причем, и корова не моя. а пацаны то тебе верят. ждем следующие откровения ;)
p.s. Куб точно не виноват :v2_dizzy_botan: вычеркиваем.
интересная история. а что же ты сразу не признался? что я тут не причем, и корова не моя. а пацаны то тебе верят. ждем следующие откровения
Тебе что-то сзади зудит, или подгорает? Пришел и рассказал, бизнесов на этой фигне я не устраивал, платки раздал, прошивку выдал, лепите если хотите. Я на свой экземпляр не жалуюсь.
У тебя есть личные претензии? Обиды? Холодно дома?
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot