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

User Tag List

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

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

    43 87.76%
  • Нет

    2 4.08%
  • Не знаю

    4 8.16%
Страница 3 из 10 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 100

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

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

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

    По умолчанию

    Оптимизировал как мог, в итоге получилось почти оптимальное быстродействие GUI.

    Отрисовка экрана библиотекой занимает около 4.4мс, вывод кадра на LCD - 17.5мс, обработка USB и преобразование в матрицу кнопок - около 8.4мкс. Если было бы больше памяти, не пришлось бы мудрить со сжатием картинки и заодно отправка данных на LCD сократилась бы до старта DMA - но для этого нужен другой "камень", от 140Кб памяти (из них 120 - под экран только).
    В итоге заметно, что процессор почти всё время простаивает и можно загрузить прочей работой
    Разумеется, приличную часть времени будет занимать цикл реакции на входные сигналы от матрицы, что пока что не реализовано. Но всё равно запас по быстродействию приличный.
    "Байт-48"

  3. #23
    Activist Аватар для CLR
    Регистрация
    03.02.2005
    Адрес
    Челябинск
    Сообщений
    325
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    51
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что-то я не понимаю, может, ну его нафиг этот экран, а всю дебаг инфо гнать в сериал?
    Мои игрушки: PowerbookG4 / MacMiniG4 / MacMini i5 / Amiga1260 / Commodore64 / Atari65XE / MSX1 SVI-728 / MSX2 КУВТ2 / MiST / Profi+ / KarabasPro / Speccy2010 / Aspect128 / ZX-UNO VGA 2M / Tauon PC-1 / PS3 / PS4Pro+PSVR / PSP / PS Vita / GBC / LDK Game / RG350M / iPhone / Raspberry Pi (zeroW/3B+/4B)
    MorphOS / AmigaOS / MacOSX / Linux

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

    По умолчанию

    Цитата Сообщение от CLR Посмотреть сообщение
    Что-то я не понимаю, может, ну его нафиг этот экран, а всю дебаг инфо гнать в сериал?
    Экран есть тут и сейчас, на него не надо переключаться И отображается информация удобно. А для UART надо ещё сидеть и переключаться на терминал для контроля.
    "Байт-48"

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

    По умолчанию

    Итак, дома проверю стабильность работы со свистком и добью таблицу сканкодов.
    Без всяких премудростей (наподобие аппаратного прерывания при появлении запроса, решается одним большим И-НЕ при инверсной шине) частота выдачи данных по матрице составляет 1кГц.
    "Байт-48"

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

    По умолчанию

    Есть у кого-либо клавиатура, подписанная по раскладке MC7007 или RK86? А то не понимаю, что там за чудные клавиши такие В последний раз за такой сидел ооочень уж давно, что бы всё помнить.

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

    Нашел этот пост. Насколько оно соответствует последней версии того контроллера?
    И получается, что надо делать для каждой раскладки 2 таблицы - для английской и для русской версии.
    Для теста работы сейчас заполнил таблицу для NumPad'а в раскладке MC7007 - всё работает отлично.

    По поводу хардвари - можно заложить контроллер с большим количеством ног, а неиспользуемое вывести через нераспаянные буферы наружу для будущих расширений. Так же можно сразу заложить SD-карту в схему - это вообще легко (разъём, пачка резисторов для подтяжки линий, да конденсатор по питанию).
    Само собой, будет пара светодиодов для индикации работы устройства - сейчас уже примерно прикидываю схему.
    По деталям:
    1) МК - STM32F407VET6 - 5$ за корпус; 1шт.
    2) Коммутатор питания USB - STMPS2141STR - 0.6$ за корпус; 1шт.
    3) Буффер 3.3v<>5v - SN74ALVC164245 - 1.2$ за корпус; 2шт (или 3 при расширении).
    4) Стабилизатор питания - не определён, импульсный; 1шт.
    Итого по деталям получается около $10 на 1 устройство. Если расширять сразу, то будет около 13. Стоимость платы будет около 0.5$ по максимуму.

    PS: Надо определиться с "хотелками"...

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

    Заодно сейчас придумал, как оптимизировать таблицы раскладок - при размере матрицы 12х12 каждая таблица будет занимать именно 144 байта. Для каждой раскладки надо 2 такие таблицы (LAT/RUS) и ещё 1 маленькая на 4 байта для доп. клавиш (Ctr, Alt, Shift, Win). Получается 292 байта на раскладку.
    "Байт-48"

  7. #27
    Activist Аватар для CLR
    Регистрация
    03.02.2005
    Адрес
    Челябинск
    Сообщений
    325
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    51
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообще, стоит подумать над тем, чтобы девайс цеплялся максимально просто, например в zx-bus и без паяльника. Так получится охватить наибольшее количество желающих, в том числе и в забугорье. Ну а для нашего зоопарка клонов оставить гребенку чтобы подключённый разъём распаять как угодно.
    А из хотелок - например, оставить возможность легкого апгрейда через USB или SD/mSD, а также завести полностью шины адреса, данных и управления для того, чтобы любую вновь появившуюся хотелку можно было легко добавить обновлением микрокода.
    Мои игрушки: PowerbookG4 / MacMiniG4 / MacMini i5 / Amiga1260 / Commodore64 / Atari65XE / MSX1 SVI-728 / MSX2 КУВТ2 / MiST / Profi+ / KarabasPro / Speccy2010 / Aspect128 / ZX-UNO VGA 2M / Tauon PC-1 / PS3 / PS4Pro+PSVR / PSP / PS Vita / GBC / LDK Game / RG350M / iPhone / Raspberry Pi (zeroW/3B+/4B)
    MorphOS / AmigaOS / MacOSX / Linux

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

    По умолчанию

    Цитата Сообщение от CLR Посмотреть сообщение
    Вообще, стоит подумать над тем, чтобы девайс цеплялся максимально просто, например в zx-bus и без паяльника. Так получится охватить наибольшее количество желающих, в том числе и в забугорье. Ну а для нашего зоопарка клонов оставить гребенку чтобы подключённый разъём распаять как угодно.
    А из хотелок - например, оставить возможность легкого апгрейда через USB или SD/mSD, а также завести полностью шины адреса, данных и управления для того, чтобы любую вновь появившуюся хотелку можно было легко добавить обновлением микрокода.
    Контроллер разрабатывается не только для Speccy, поэтому жёстко привязываться к какой-либо шине сомнительно.
    А обновление с флешки - сегодня как раз и собираюсь сделать.
    "Байт-48"

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

    По умолчанию

    Реализовано обновление прошивки через USB-Flash.
    Флешка вставляется вместо клавиатуры, после чего включается устройство. Загораются 2 светодиода режимов, по завершении обновления один из них начнёт мигать - после этого можно извлечь флешку и перезагрузить устройство для старта с новой прошивкой.
    По умолчанию при старте примерно 3 секунды проверяется наличие флешки в разъёме. Если обнаружена - пытается с неё обновиться. Если не обнаружена или произошла ошибка (несовпадение контрольных сумм, файл не прочитался) прошивка отработает дальше и будет работать как клавиатура.
    "Байт-48"

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

    По умолчанию

    Нарисовал первый вариант схемы, с минимальными линиями по матрице.
    Отхождение от минимума пока только одно - слот для карты памяти, но это мелочь. Остальное для подключения прочей периферии выведено на сигналы (SPI, I2C, UART), будет выведено на разъёмы для возможности подключения прочих "довесков" (дисплей, например).
    Так же на входах и выходах матрицы везде разместил подтягивающие резисторы - если будут лишними, просто не надо будет запаивать - это лучше, чем напаивать "на соплях" при необходимости.
    Расширение для подключения к ZX-BUS возможно выполнить в виде фрагмента платы, который при необходимости можно будет отломать/отпилить от основной платы - все эти же линии будут выведены на штырьевые коннекторы на самой плате (пока что в схеме их нет, будут задействованы сигнальные лини с матрицы и ещё дополнительные через свободные выводы буферов).
    Готов выслушать замечания и предложения по схемной реализации, с учётом описанного выше.
    "Байт-48"

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

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

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

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

Ваши права

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