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

User Tag List

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

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

    43 87.76%
  • Нет

    2 4.08%
  • Не знаю

    4 8.16%
Страница 2 из 10 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 100

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

  1. #11
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А на мелком STM (ног 40) - это возможно? Контроллер USB клавиатуры интересует и мыши.
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

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

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    А на мелком STM (ног 40) - это возможно? Контроллер USB клавиатуры интересует и мыши.
    С USB-Host (USB-OTG, если точнее) только от 64 ног идут. В более мелких корпусах - только USB-Device.
    А так, можно посчитать "свободные" ноги:
    1) USB - 4 вывода на полный OTGж
    2) SDIO (если подключать SD/microSD-карты) - 7 ног;
    3) программатор - 2 ноги;
    4) выбор режима - 10 ног (с запасом, 4 бита на выбор выхода, 7 на выбор типа матрицы преобразований);
    5) матрица - 24 ноги;
    6) PS/2 - 2 ноги.
    Уже получается 49 ног - еле укладывается в свободные GPIO 64-выводного корпуса (50-51, зависит от чипа). А если делать ещё и дополнительные функции, то уже нужен 100-ногий корпус.

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

    Если делать в режиме эмуляции ВВ55, то выводов значительно меньше будет использовано, но это уже узкозаточенный девайс будет. Я же стремлюсь к более унифицированному варианту - по цене на чип разница будет мизерной. А паять могу и сам, отправляя готовые наборы.

    Вопрос только в "хотелках" - теоретически тут можно сделать и эмулятор магнитофона и ещё что-либо, сразу в 1 корпусе.
    "Байт-48"

  3. #13
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Матрицу можно и под уменьшить, ДШ с ОК рулит
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

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

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    Матрицу можно и под уменьшить, ДШ с ОК рулит
    Ну, если делать что-либо кроме клавиатуры с мышью, то только 100 ногий корпус. В противном случае 64 ноги "хватит всем", поскольку в расчётах выше я учитывал и SDIO, который в минимальной конфигурации не нужен.

  5. #15
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да понятно прогресс, епть
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

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

    По умолчанию

    Готово преобразование сканкодов в матрицу, готовую для дальнейшего использования. Код на данный момент не самый оптимальный, но почти всё время и так отжирает отрисовка экрана, так что замерить что-либо очень тяжело.
    Фото экрана с отображением состояния матрицы - видно прочитанные сканкоды и закрашенные прямоугольники для них. Таблица для получения матрицы пока что "с потолка", завтра думаю вбить для тестов таблицы RK86 и MC7007.
    Репа обновлена до актуального состояния.
    "Байт-48"

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

  8. #17
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    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

  9. #18
    Master Аватар для andreil
    Регистрация
    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"

  10. #19
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    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

  11. #20
    Master Аватар для andreil
    Регистрация
    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"

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

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

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

Эту тему просматривают: 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

Ваши права

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