User Tag List

Результаты опроса: Востребован ли контроллер?

Голосовавшие
49. Вы ещё не участвовали в этом опросе
  • Да

    43 87.76%
  • Нет

    2 4.08%
  • Не знаю

    4 8.16%
Показано с 1 по 10 из 100

Тема: Контроллер USB клавиатуры

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.02.2005
    Адрес
    Челябинск
    Сообщений
    326
    Спасибо Благодарностей отдано 
    292
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У стм-ов ресурсов то дофига, можно придумать, чем ещё занять - к примеру, сделать лоадер тапов с сд Карты через tape in или эмуляцию трдоса, кстати эмулятор трдоса где-то тут на форуме именно под стм вроде был. Или даже адаптер ргб2вга Правда, все это крайне трудоемко, но подозреваю, что теоретически возможно.
    Мои игрушки: PowerbookG4 / MacMiniG4 / MacMini i5 / Amiga1260 / Commodore64 / Atari65XE / MSX1 SVI-728 / MSX2 КУВТ2 / MiST / MiSTer / Profi+ / KarabasPro / Speccy2010 / Aspect128 / ZX-UNO VGA 2M / PS3 / PS4Pro+PSVR / PSP / PS Vita / GBC / LDK Game / RG350M / iPhone / iPad / Raspberry Pi (0/3B+/4B/5)
    MorphOS / AmigaOS / MacOS / Linux

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

  3. #2

    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CLR Посмотреть сообщение
    У стм-ов ресурсов то дофига, можно придумать, чем ещё занять - к примеру, сделать лоадер тапов с сд Карты через tape in или эмуляцию трдоса, кстати эмулятор трдоса где-то тут на форуме именно под стм вроде был. Или даже адаптер ргб2вга Правда, все это крайне трудоемко, но подозреваю, что теоретически возможно.
    RGB-VGA сразу отпадает - на другое ресурсов не хватит уже. Да и даже это под вопросом.
    А по поводу загрузки - это всё возможно, ресурсы позволят. Ведь вполне можно впихнуть какой-либо STM32F429 и рулить с него всем - имеется готовый функционал для работы с SD-картами (уже работал раньше с ними).

    PS: Сейчас уже пишу обновление прошивки с USB-флешки То есть закинул бинарник, подключил, запустил. По завершении прошивки зажигается светодиод и ждёт перезагрузки. Из требований - FAT32 на флешке. И теоретически возможно-таки сделать сразу 2 порта - 1 для клавиатуры и 1 для флешки, вместо SD-карты.
    "Байт-48"

  4. #3

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    RGB-VGA сразу отпадает - на другое ресурсов не хватит уже. Да и даже это под вопросом.
    Что же ты там такое замутил, что на перекодирование массива в пару сотен байт не хвататает ресурсов 32-битного микропроцессора в почти две сотни мегагерц с количеством памяти больше чем не то что в спеке, а даже и в орионе? В этом 500-рублевом чипе (кстати, дороже чем PiZero за 5$ на котором целый EmulationStation пашет) можно сделать целую собственную VGA-видеокарту, цветную сделано же аналогичное в 5-рублевом STM32F030F4 - все же в ней 3 SPI-регистра (в этом и фишка - выводить SPI-регистром по 8 точек экономя ресурс ЦПУ), а не 1 как по ссылке (поэтому по ссылке монохром). Так там по ссылке еще и полный терминал VT100/52 (на графику не хватает ОЗУ, там все же 4кб, а не 192 кб как у STM32F407).
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  5. #4

    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Что же ты там такое замутил, что на перекодирование массива в пару сотен байт не хвататает ресурсов 32-битного микропроцессора в почти две сотни мегагерц с количеством памяти больше чем не то что в спеке, а даже и в орионе? В этом 500-рублевом чипе (кстати, дороже чем PiZero за 5$ на котором целый EmulationStation пашет) можно сделать целую собственную VGA-видеокарту, цветную сделано же аналогичное в 5-рублевом STM32F030F4 - все же в ней 3 SPI-регистра (в этом и фишка - выводить SPI-регистром по 8 точек экономя ресурс ЦПУ), а не 1 как по ссылке (поэтому по ссылке монохром). Так там по ссылке еще и полный терминал VT100/52 (на графику не хватает ОЗУ, там все же 4кб, а не 192 кб как у STM32F407).
    Пока что отрисовка идёт в попиксельном режиме - завтра буду гуглить протокол контроллера дисплея, может есть копирование всей памяти сразу.

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

    Тут проблема в том, что надо следить за USB-устройством, а так же вовремя реагировать на внешние раздражители - в нашем случае это вовремя успеть выдать данные по запрошенному адресу в матрице. А для этого надо:
    1) опросить клавиатуру;
    2) преобразовать HID-сканикоды в матрицу;
    3) выдать запрошенную строку из матрицы.
    Разумеется, все эти события происходят в разных процессах, которые периодически переключаются планировщиком.

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

    По производительности - хочу сперва сделать полноценный вариант, а потом протестировать на скорость. Там и будут видны узкие места.
    "Байт-48"

  6. #5

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот это вот:
    Цитата Сообщение от andreil Посмотреть сообщение
    1) опросить клавиатуру;
    2) преобразовать HID-сканикоды в матрицу;
    Весьма не много ресурсов съест, и делать это надо всего-то 5-10 раз в секунду, постоянно актуализируя массив эмуляции матрицы (например во время кадрового бланка когда есть время простоя)

    Цитата Сообщение от andreil Посмотреть сообщение
    3) выдать запрошенную строку из матрицы.
    А вот это ровно 3 команды на ассемблере: считать сканкод (в контроллере на Атмеге измение сканкода на порте вводе генерит прерывание), из готовой таблицы (той самой что постоянно актуализируется на шагах 1-2) используя скан код как индекс прочитать ответ, выдать этот ответ на порт.
    Все остальное время обрабатывать дисплей.

    Контроллер по моей ссылке тоже обрабатывает клавиатуру (там же не только видеокарта, но полный терминал), при этом на частоте в 25МГц ему хватает времени еще и на VGA с полной эмуляцией VT100/52. Исходники на git есть по ссылке в статье.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  7. #6

    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А вот это ровно 3 команды на ассемблере: считать сканкод (в контроллере на Атмеге измение сканкода на порте вводе генерит прерывание), из готовой таблицы (той самой что постоянно актуализируется на шагах 1-2) используя скан код как индекс прочитать ответ, выдать этот ответ на порт.
    Все остальное время обрабатывать дисплей.

    Контроллер по моей ссылке тоже обрабатывает клавиатуру (там же не только видеокарта, но полный терминал), при этом на частоте в 25МГц ему хватает времени еще и на VGA с полной эмуляцией VT100/52. Исходники на git есть по ссылке в статье.
    Ээээ... Мы про разные вещи говорим, видимо...
    У меня одна из целей - одновременная реакция на 6 нажатых кнопок (максимум пакета данных). А это уже требует выставления битовых масок и прочего.
    Да, согласен - это очень легко оптимизируется. Но я ещё только-только получил рабочую версию. Завтра займусь в том числе и потимизациями.
    И да - как я говорил выше, сейчас почти всё время отжирает отрисовка экрана, про "прожорливость" других пунктов ничего не было сказано. Пока что отрисока одного экрана (полностью, попиксельно, на каждый пиксель по пачке команд - установка координат, цвет пикселя) занимает около 400мс... Код не мой, поставлялся вместе с библиотекой uc/GUI - подделие сумеречной китайско-индусской мысли.
    "Байт-48"

  8. #7

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    Ээээ... Мы про разные вещи говорим, видимо...
    У меня одна из целей - одновременная реакция на 6 нажатых кнопок (максимум пакета данных). А это уже требует выставления битовых масок и прочего.
    Дело не в количестве одновременно нажатых кнопок, оно может быть любым - это просто вопрос алгоритма формирования выходного результат. Говорим мы про одинаковые вещи, просто ты явно пошел не оптимальным путем (как обычно). А оптимальный (который позволил 10 лет назад на 8-Мгц 8-бит микроконтроллере с 512б (байт, Карл!) ОЗУ реализовать контроллер клавы с эмуляцией реакции матрицы в онлане, т.е. без Wait, т.е. не более чем за 4 такта реального Z80 с тактом 5Мгц) в том, чтобы когда есть вагон времени - формировать матрицу всех вариантов ответа, а по запросу хоста (когда надо отреагировать моментально) - в 3 команды брать уже готовый результат.

    Если еще не понятно, я говорю в этом примере о контроллере от Caro, который в двух сотнях Орионов работает (и ХЗ сколько РК и ему подобных).
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

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

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

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

Похожие темы

  1. Конвертер USB -> PS/2 для клавиатуры
    от Ewgeny7 в разделе Устройства ввода
    Ответов: 118
    Последнее: 02.01.2022, 23:39
  2. Ответов: 27
    Последнее: 14.08.2018, 04:48
  3. БезWaitовый контроллер клавиатуры
    от caro в разделе Устройства ввода
    Ответов: 68
    Последнее: 01.07.2015, 05:42
  4. USB контроллер матрицы клавиатуры.
    от fan в разделе Устройства ввода
    Ответов: 2
    Последнее: 25.07.2007, 00:43

Ваши права

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