Цитата:
А можно этот вариант без контроллера посмотреть ? Не, я не специалист в "Специалистах", просто сама идея интересна.
там в основе тот же сдвиговый регистр.
Цитата:
Да ответ простой - не смог я этого ) Пока не умею. Я ведь ненастоящий сварщик.
Скопипастить сложный пример было проще, чтобы хоть с чего-то начать.
Как я понимаю, это примерно вот так должно выглядеть на vhdl, если ориентироваться на CPLD-решение Андрея Карпова (вся клава+спецкнопки - 6 слов по 16-бит, режим MSBFIRST, в старшем байте "адрес" кейстатусов в CPLD-регистре, в младшем байте сами кейстатусы):
я не слишком силен в vhdl, в основном схематиком пользуюсь. но вобще-то я имел в виду по SCK тупо загонять данные в регистр, а по фронту SS (в конце посылки) - уже распихивать результат в клавиатурную матрицу.
Цитата:
Опять же - для собственного развлечения я это сделаю, но будет ли в этом какая-то практическая выгода, неизвестно, т.к. ПЛИСка и 7128, и 3128, и более мелкие *064 стоят одних и тех же 150-200 руб на каждом китайском углу. И цена решения будет одна, хоть 40 триггеров задействовано в CPLD, хоть 100+. Только если генератор сэкономить...
UPD: Собственно, доработал CLPD, убрал жирного SPI slave, убрал генератор.
77 of 128 macrocells. Сильно много не оторвать, в 64 точно не упихать.
да, в 64 походу не влезет. там в абсолютном минимуме 56 триггеров - spi регистр и 40 клавиш - плюс спецкнопки...
Цитата:
Сообщение от
andykarpov
Отличная идея тактировать от клока SPI, чо-то как-то сразу в голову и не пришло :)
ЗЫ: по поводу обычного сдвигового регистра вместо SPI - в оригинальной схеме на тиньке, которую я брал за основу - так и было сделано.
Когда я повторил это же решение, выяснилось, что на большой скорости обмена сдвиговый регистр мог ловить мусор, достаточно часто, в результате - фантомные нажатия клавиш и другие неприятности.
Поэтому SPI тут не просто так :)
вот это странно - особенно на той плате, где дорожки по сантиметру... хотя скорее всего можно скорректировать прошивкой CPLD - но надо разбираться.