Важная информация

User Tag List

Страница 2 из 12 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 119

Тема: Конвертер USB -> PS/2 для клавиатуры

  1. #11
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Убирание ps/2 нафик - в творческих планах.
    Была попытка сделать нахрапом USB-матрица.
    Всё взлетело, но с одной оговоркой - не успеваем отэрегировать на запрос компа.
    Скорее всего алгоритм неверный.
    Что производишь при выставлении компиком кода матрицы по X/Y ?
    Там от контроллера надо то: от изменения Х по прерыванию взять адрес в таблице и выдать ее ячейку в выходной порт (Y). Пяток тактов на все про все. А вот поддержание таблицы вариантов порта Y актуальной - уже действительно требует времени и непростого алгоритма. Но это то делается непрерывно и неспеша спокойно прерываясь на что угодно.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #12
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Там от контроллера надо то: от изменения Х по прерыванию взять адрес в таблице и выдать ее ячейку в выходной порт (Y). Пяток тактов на все про все.
    Я для кого писал про прерывания USB?
    Там частота 100Гц на обслуживание USB-хозяйства. Обменяться данными с устройством, распарсить полученный пакет и разместить его в буфере. Это минимальная задача на каждом вызове.
    Цитата Сообщение от Error404 Посмотреть сообщение
    Что производишь при выставлении компиком кода матрицы по X/Y ?
    Пытаюсь уйти на прерывание, если более приоритетные не скажут ждать в уголочке своей очереди.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  3. #13
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Я для кого писал про прерывания USB?
    Там частота 100Гц на обслуживание USB-хозяйства. Обменяться данными с устройством, распарсить полученный пакет и разместить его в буфере. Это минимальная задача на каждом вызове.
    Ну и что? И занимайся этим непрерывно, как основной цикл. Я именно про опрос USB-устройства и писал в
    А вот поддержание таблицы вариантов порта Y актуальной - уже действительно требует времени и непростого алгоритма. Но это то делается непрерывно и неспеша спокойно прерываясь на что угодно.
    Где "что угодно" и есть выдача кода на матрицы из заранее приготовляемых вариантов, как раз на основе того 100-герцового опроса кнопок. Подумаешь не реже 100Гц это надо делать - небось частота контроллера не 100кГц.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #14
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Цитата Сообщение от Error404 Посмотреть сообщение
    Подумаешь не реже 100Гц это надо делать - небось частота контроллера не 100кГц.
    Ага. А ничего, что в это время, когда комп хочеть прочитать клаву, контроллер работает с обслуживанием USB?

    ---------- Post added 02.04.2015 at 00:12 ---------- Previous post was 01.04.2015 at 23:59 ----------

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Еще бы в исходники прошивки хотелось бы подсмотреть, с целью адаптировать/поправить это устройство не только для PS/2 (и AT DIN-5), но и для выдачи параллельного кода КОИ-8.
    Разработчикам дам, на всеобщее - не буду.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  5. #15
    Banned
    Регистрация
    04.03.2010
    Адрес
    Россия. Пятигорск.
    Сообщений
    2,296
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А может лучше всё же родная, механическая. Чем эти костыли протезы?

    Не для практики и освоения STM32 поковырять это здорово, но вот раскладка же на клавиатуре не совпадает как вроде.

  6. #16
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7;793703Сам я просто не умею заниматься производством.
    Если кто-нибудь, [B
    zorel[/B] или zst, или другой желающий, захотят - пожалуйста.
    Вышлю производителю почтой работающий образец для оценки и бетатестирования, чтобы не делали "кота в мешке".
    Можно этим заняться. Конструктор для пайки с бесплатной доставкой и беспроцентным переводом денег обойдется около 550 рублей. Такая цена приемлемая ?
    "L-256"

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,395
    Спасибо Благодарностей отдано 
    304
    Спасибо Благодарностей получено 
    594
    Поблагодарили
    440 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Error404, хорошо, продолжу ныть
    Ты знаком с системой прерываний СТМ32, в особенности - прерываний по внешнему фронту?
    Вкратце, там контроллер прерываний настолько совершенен, что убиться можно.
    Там нет такого понятия как на AVR, что прерывание любого пина порта вызовет предсказуемое одно-единственное прерывание. На Меге48 так и происходит, в обработке просто читаешь значение с этого порта и тупо берешь значение из матрицы состояний и выплевываешь в другой порт. Всё, задача выполнена. Разумеется, на ассемблере, да. Правда, говорят что и на С можно успеть.
    На асме я делал.
    В СТМ32 в каждом порту 16 пинов. Прерывания по фронту разделены на группы. Одна группа щупает пины с 0 по 3, причем - по всем портам, а не по одному.
    Вторая группа слушает пины 4. третья - пины пять... Последняя - пины с 10 по 15.
    Если тебе надо "слушать" с 0 по 7, к примеру, то уже точек выхода на прерывание будет куча. Далее, нужно "вычленить" из порта нужный байт. Дальше матрица, как обычно, затем упихнуть данные в кусок порта I/O.
    Причем, код пишется на Си...
    NVIC работает достаточно шустро, а с применением приоретизации будет совсем хорошо. Думаю, на джиттер на УСБ хосту устройства ругаться не будут. Далее, а кто тебе мешает писать на асме? Он там еще проще, я даже доки по командам могу дать, если уж так хочется.

    А вообще, все зависит от того, какие тайминги у опроса клавиатуры. У спека я так понимаю одна команда чтения по адресу процессором, а это очень узко. А ежели кто-то турбирует так и вообще. Так что, чтобы быть совсем универсальным, я все же настаиваю на CPLD или специально выделенным контроллером с простым управлением (УАРТ например). А СТМку нагружать действительно полезными вещами: обработка ХИД а и сторожа, причем вместе с ФС, сразу на порт грузить тапки.

  9. #18
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не, про асм на стм я даже не заикаюсь.
    Тем более, фирмваре для юсб предоставлено исключительно на Си. Ты сможешь завести его на асме?
    Я вот относительно себя (и 99% прочих армоводов) сильно сомневаюсь...

    ---------- Post added at 09:31 ---------- Previous post was at 09:29 ----------

    zst, если цена устроит народ, то вышлю тебе конвертер на "обнюхивание"
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  10. #19
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Error404, хорошо, продолжу ныть
    Ваше право.

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Ага. А ничего, что в это время, когда комп хочеть прочитать клаву, контроллер работает с обслуживанием USB?
    Клава на реале опрашивается обычно с частотой много раз в секунду - чтобы реагировать на нажатия когда они происходят, а не абы как.
    Ну пропустит твой контроллер одно прерывание от ZX-хоста, или отработает его на милисекунду медленнее (отвлекаясь на USB) - это для ZX-хоста экивалентно тому, что пользователь нажал кнопку на милисекунду позже, т.е. фиолетово как для хоста, так и для пользователя. Задача только в том чтобы матрица состояний поддерживалась актуальной нажатым кнопкам.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #20
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сергей, хорошо, уговорил!
    Да я и так продолжаю рыть в эту сторону.

    ---------- Post added at 13:22 ---------- Previous post was at 13:21 ----------

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    У спека я так понимаю одна команда чтения по адресу процессором, а это очень узко. А ежели кто-то турбирует так и вообще.
    Вот что грамотные люди про это говорят
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

Страница 2 из 12 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Конвертер MP3 to AY
    от VETER в разделе Музыка
    Ответов: 13
    Последнее: 18.01.2015, 21:14
  2. CGA редактор\конвертер
    от ALKO в разделе Зарубежные компьютеры
    Ответов: 21
    Последнее: 10.02.2014, 11:40
  3. Вопрос про конвертер в VGA
    от foxweb в разделе Изображение
    Ответов: 5
    Последнее: 07.05.2013, 20:52
  4. Конвертер клавиатуры ДВК, Э-85 в ps/2
    от Panther в разделе Новодел
    Ответов: 2
    Последнее: 02.10.2011, 18:45
  5. ZX->VGA конвертер.
    от CHRV в разделе Изображение
    Ответов: 164
    Последнее: 28.06.2010, 11:26

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •