PDA

Просмотр полной версии : Вектор-06Ц: Клавиатура от PC



Dmitry Dubrovenko
01.11.2008, 15:32
Пиветствую вас, братья-психи! :v2_yahoo:
Есть навязчивая идея приспособить к девайсу клавиатуру от PC, взамен штатной. В связи с этим есть ряд вопросов.
1. Как понял, "железного" контроллера нет. Если это не так, дайте ссылку, и дальнейшие вопросы отпадают.
2. Какова длительность импульсов "Сброса" и "Загрузки"?
3. Ваши пожелания по поводу "горячих сочетаний клавиш".

ivagor
01.11.2008, 15:39
В Кирове была такая разработка (контроллер для подключения AT клавы), читал их рекламу, но схемы я не видел. Есть небольшая вероятность, что у Tim0xи может быть схема.

Tim0xA
01.11.2008, 18:38
Кировской схемы к сожалению нет. Выложил в картотеку описание омской разработки с исходниками драйвера клавиатуры и МикроДОС, в который уже интегрированн этот драйвер http://sensi.org/~svo/scalar/ware/539

Error404
01.11.2008, 18:50
Кировской схемы к сожалению нет. Выложил в картотеку описание омской разработки с исходниками драйвера клавиатуры и МикроДОС, в который уже интегрированн этот драйвер http://sensi.org/~svo/scalar/ware/539

Забавная разработка. Правда, для XT клавиатур, которых теперь днем с огнем не сыщещь. Еще меня смутило соединение двух линий ВВ55 (это ведь оно?) накоротко - обычно это делают через диод (или это не принципиально?)

Dmitry Dubrovenko
01.11.2008, 21:57
омской разработкиНасколько помню, это та, где всё реализовано програмно, стандартными портами Вектора? Это - не то. Интересует именно "железный" контроллер.


XT клавиатур, которых теперь днем с огнем не сыщещьА у меня есть. :v2_tong2:
Правда, к XT я её не подключал (она - мультисистемная).

Mick
01.11.2008, 22:12
Насколько помню, это та, где всё реализовано програмно, стандартными портами Вектора? Это - не то. Интересует именно "железный" контроллер.


Если сам силен в железостроении и програмописании можешь у спектрумистов идею подтыбрить :)

ivagor
01.11.2008, 22:38
Mick
Ты про это

ZX_Multi_Card
?

Mick
01.11.2008, 23:22
Mick
Ты про это

?

И не только. Для спека много разных вариантов контроллеров было.

Tim0xA
02.11.2008, 02:18
Dmitry Dubrovenko, а какая в твоем Векторе штатная клавиатура: герконовая или емкостная?
Вообще, идея мне представляется несложной. Я бы реализовал ее на микроконтроллере AVR, так как с ними больше всего имел дело. Процедур работы с PC-клавой пруд-пруди. В голову пришло два варианта:
1) Замена: три порта МК подключить к разъему XT1 вместо клавиатуры. Тут и схемы-то практически нет, один контроллер со стандартной обвязкой (кварц +2 конденсатора), светодиод и шлейф.
2) Дополнительная клава: МК повесить на шину данных или на разъем ВУ, перед D30 на A0,A1,RD,WR поставить дешифратор, таким образом перехватить чтение/запись порта 1 (придется пожертвовать входом/выходом на магнитофон, но не обязательно, можно и придумать что-нибудь), перехватить чтение порта 2 и подсесть на запись порта 3. В этом случае можно также сделать переключатель работы со штатной или дополнительной клавиатурой (выключать/включать дешифратор).

Информация к размышлению: сигнал "СО КЛВ" никем не используется, на контроллер можно было бы еще каких-нибудь функций привесить.

Dmitry Dubrovenko
02.11.2008, 12:44
Если сам силен в железостроении и програмописании можешь у спектрумистов идею подтыбритьНе то, что ас из асов, но кое-что кумекаю. :rolleyes_std: А идея пока одна (но навязчивая): заменить штатную клавиатуру.


герконовая или емкостная?Ёмкостная. А какая разница, с точки зрения замены?
В голову пришло два вариантаКак выше говорил, меня интересует вариант с заменой, поскольку я хочу девайс в другой корпус засунуть. Если кого-то заинтересует, можно потом будет и над вариантом с дополнением подумать.
сигнал "СО КЛВ" никем не используется, на контроллер можно было бы еще каких-нибудь функций привеситьДык, я и говорю: Ваши предложения? Там, кстати, ещё и сигнал ТИ (вроде F строк) заведён.

Кстати, напомните функциональное назначение служебных клавиш:
УС (Shift?)
СС (Alt?)
ВК (Enter?)
ПС
АР2 (Home?)
СТР
"стрелка в левый верхний угол"

Ramiros
02.11.2008, 14:09
если нужно вообще заменить клаву, то я бы рассмотрел такой вариант:
на ATmege16 порт А использовать как входной, а порт С как выходной (по анологии с векторовской клавой), по UARTу опрашивать PC-шную клаву и в соответствии с нажатием клавишь и порту А выставлять соответствующие сигналы на порту С, правда есть один минус - програмку для контроллера надо писать, к тому же довольно не простую

Добавлено через 4 минуты


Кстати, напомните функциональное назначение служебных клавиш:
УС (Shift?)
СС (Alt?)
ВК (Enter?)
ПС
АР2 (Home?)
СТР
"стрелка в левый верхний угол"

УС - Ctrl
CC - Shift
Rus/Lat - Caps Lock
BK - Enter
"стрелка в левый верхний угол" - Home
остальные помоему не имеют никакой аналогии

ivagor
02.11.2008, 14:24
Rus/Lat - Caps Lock
это не 100% хороший вариант, да и в b2m например РУС/ЛАТ-правый ctrl

Tim0xA
02.11.2008, 16:22
Ёмкостная. А какая разница, с точки зрения замены?
Никакой, спросил ради интереса. Просто наличие емкостной клавиатуры - дополнительный стимул для замены.

поскольку я хочу девайс в другой корпус засунуть.
А смена корпуса тем более :)


по UARTу опрашивать PC-шную клаву
UART бы я не трогал, клаву можно повесить на другие выводы. UART пригодится для создания линка с PC и для отладки. Я думал для этих целей использовать Atmega8515 - у нее даже два UARTA и к тому же этот МК у меня есть под рукой ;) В любом случае, проект скорее всего будет написан на СИ и перекомпилировать под другой МК не составит особого труда.

Что касается назначения клавиш, думаю, это должно конфигурироваться. В eeprom можно хранить матрицу клавиатуры. Для конфигурации можно написать утилиту для Вектора, утилиту для PC (конфигурить через UART) или просто перепрограммировать EEPROM.

И еще вот полезная информация, практически кусок работы уже выполнен:
AVR313: Interfacing the PC AT Keyboard
http://www.atmel.com/dyn/resources/prod_documents/doc1235.pdf

Mick
02.11.2008, 18:37
UART бы я не трогал, клаву можно повесить на другие выводы. UART пригодится для создания линка с PC и для отладки. Я думал для этих целей использовать Atmega8515 - у нее даже два UARTA и к тому же этот МК у меня есть под рукой ;) В любом случае, проект скорее всего будет написан на СИ и перекомпилировать под другой МК не составит особого труда.

На сколько я понял, тут заменяется стандартная клава. А посему дополнительных функций уже не предусматривается - как ими будете пользоваться. А при таком раскладе, допустим матрица 8x8, хватит atmega8. Лично я для спека уже свою версию накатал поддержки PS2 клавы.
И мое мнение - надо раскладку делать удобной, более привычной к пользованию.

ivagor
02.11.2008, 18:54
Насчет дополнительных функций, в упомянутой рекламе кировского контроллера вроде упоминалась как min одна дополнительная функция - пауза в любой программе. Ну и джойстик теоретически можно к такому контроллеру подключить (чтобы он, например, работал параллельно клавишам курсора).

Ramiros
02.11.2008, 19:04
По поводу выбора микроконтроллера, предложил ATMega16 потому что перепрограмировал их целую кучу и считаю его наиболее универсальным к тому же их у меня еще целая куча, хотя можно конешно и другие, лиж бы кол-во ног позволяло.

Этот девайс предпологается интегрировать в схему вектора вместо штатной клавиатуры, и тут парадоксальный случай. Если задуматься о характеристиках микроконтроллера и его быстродействии, то он оказывается быстрей и круче вектора в несколько раз будет :)

Mick
02.11.2008, 19:19
Этот девайс предпологается интегрировать в схему вектора вместо штатной клавиатуры, и тут парадоксальный случай. Если задуматься о характеристиках микроконтроллера и его быстродействии, то он оказывается быстрей и круче вектора в несколько раз будет :)

Если сравнивать по прямолинейной работе действительно AVR делает многократно. Если же использовать как довесок-переходник, который занимается сканированием линий клавиатуры подключенных к ВВ55, то быстродействия вполне хватит. Но если AVR прикрутить к системной шине(к шине данных) и к адресам, делая подобие встроенного контроллера клавиатуры, то тут она не показывает не шибко выдающиеся результаты. Там без WAIT не обходится. К примеру такое решение(AVR включена в шину данных и адреса) в Speccy 2007, собственно и я также влепил в свой клон. Естетственно опрос ведется по прерываниям. А вот тут то и появляются тормоза(6 тактов AVR улетают только на вход в процедуру прерывания + сама обработка) - приходится затормаживать.

Dmitry Dubrovenko
02.11.2008, 19:22
Rus/Lat - Caps LockПро эту я не спрашивал. :wink: О ней разговор особый.
остальные помоему не имеют никакой аналогииТогда, какие действия, по ним, отрабатываются в большинстве программ?
по UARTу опрашивать PC-шную клавуРебят, я наверное чего-то не понял. Какой UART? PS/2 совершенно не похож на UART. Его надо будет реализовывать програмно. Поскольку я собираюсь использовать 877 ПИК, у которого только один пин с ОС, придётся задействовать три вывода. Поскольку тактированием в PS\2 всегда занимается клавиатура, удобнее реализовывать алгоритм, используя вход внешнего прерывания INT. Кстати, в одном из последних номеров журнала "Радио" была статья по подключению клавиатуры PC к различным МК.
довольно не простуюНу, она, конечно, посложнее, чем "помигать светодиодом", но и не особо сложная. Во всяком случае, по моим прикидкам.

Ramiros
02.11.2008, 19:42
Какой UART? PS/2 совершенно не похож на UART.

согласен, про УАРТ глупость сказал, я почему то подумал что там обыкновенный последовательный порт.


Ну, она, конечно, посложнее, чем "помигать светодиодом", но и не особо сложная. Во всяком случае, по моим прикидкам.

ну конешно не форточки написать, ну пару дней точно убъешь :)

Tim0xA
02.11.2008, 23:00
А посему дополнительных функций уже не предусматривается - как ими будете пользоваться.
Дополнительные функции могут поддерживаться свободным сигналом "СО КЛВ", при этом вместо выбора линейки клавиатуры в порт можно посылать различные управляющие команды и вместо кода нажатой клавиши считывать результат. А дополнительные функции - это поддержка различных устройств ввода-вывода информации: мышь, световое перо, линк с PC USART<->RS232 (можно вообще отказаться от клавы, а транслировать код нажатой клавиши с PC, одновременно используя тв-тюнер вместо монитора). Так что я бы не отмахивался от дополнительных функций. Конечно, встает вопрос о целесообразности, о программной поддержке и т.п., но с другой стороны и помечтать же не вредно ;)

Помимо свободного сигнала "СО КЛВ" еще есть резерв порта 2: биты 7-5 на запись.

tnt23
06.11.2008, 23:39
PS/2 клавиатуру прицепить к МК довольно просто - нужно 2 линии, одна для клока (желательно с поддержкой прерываний), вторая для данных. Самое сложное там будет дальше - разбирать поток сканкодов и перекодировать в нужное.

На всякий случай ссылка: http://www.jkmicro.com/documentation/pdf/PS2Keyboard_EN.pdf

Mick
07.11.2008, 10:27
PS/2 клавиатуру прицепить к МК довольно просто - нужно 2 линии, одна для клока (желательно с поддержкой прерываний), вторая для данных. Самое сложное там будет дальше - разбирать поток сканкодов и перекодировать в нужное.

На всякий случай ссылка: http://www.jkmicro.com/documentation/pdf/PS2Keyboard_EN.pdf

Ну на самом деле сложности в преобразовании сканкодов тоже нет.
Идея такова:
1. Составляете таблицу соответсвтия образа клавиши компьютера и сканкода. Образ представляет собой закодированную комбинацию из номера линии сканирования и номера бита который сбрасывается или устананавливается в зависимости от того, как реализовано сканирование. Так например для клавиши "Z" спековского контроллера при матрицы 8x5 будет соотвествовать коду 0x1D на линии сканирования A8. Т.е. при упаковки в образ получится код 0x02, где биты
2...0 - это номер бита(для нашего случая 1) +1
5...3 - это номер сканирования(для нашего случая 0)
6 и 7 служебные, в основном для реализации совместного нажатия, опятьже в спеке 6 бит будет отвечать за нажатие совместно с SymbShift, 7 совместно с CapsShift. Еще есть комбинация - оба бита установлены - это в основном реализация клавиш знаков типа запятых, т.е. когда надо нажать несколько клавиш.
2. Анализ пришедшего сканкода и соотвествующего его табличного значения и заполнение соотвествующеми масками образов сканирующих линий. Для нашего случая 8x5 - есть 8 байтов соответсвующие 8-ми линиям сканирования, т.е. мы запишем код 0x1D в 1 байт линии сканирования.
3. Анализ линий сканирования и установка(сброс) необходимого бита при активности сканирующей линии. После этого выдача байта на шину данных(линию отвечающую за прием данных от клавы)
4. Как известно клавы наших компьютеров несколько отличаются от PC хотябы по русским буквам. Для удобства нужно при нажатом регистре Рус/Лат. дополнительно подменять коды клавиш, чтобы комп не заметил разницы. А именно при нажатии на PC клаве русской "С" не вылезло типа клавиши "Ц".

Надеюсь принцип вам понятен. Между прочим по такому принципу(в общем случаее, не затрагивая конкретную реализацию) сделал Caro свою обработку клавы. Очень удобно - я тоже по такому принципу сделал (сперва идею подсмотрев у Камиля) обработку в своем Спековском клоне(ZXM-777 256кб DRAM).

svofski
07.11.2008, 13:25
У Вектора РУС/ЛАТ -- это не жесткая кнопка, она софтверная и хоть там и есть даже лампочка, с должным пиететом к ней относится может быть разве что бейсик. Поэтому в драйвере ПЦ-клавиатуры переключаться между КВЕРТЫ и ЙЦУКЕН можно только если вручную по какой-нибудь специальной кнопке.

Mick
07.11.2008, 17:01
У Вектора РУС/ЛАТ -- это не жесткая кнопка, она софтверная и хоть там и есть даже лампочка, с должным пиететом к ней относится может быть разве что бейсик. Поэтому в драйвере ПЦ-клавиатуры переключаться между КВЕРТЫ и ЙЦУКЕН можно только если вручную по какой-нибудь специальной кнопке.


Ну можно еще просто абстрагироваться. Просто отслеживать изменение определенной кнопки(например F12). По умолчанию будет ЛАТ. нажали стало РУС. ну и так далее как триггер. Если даже забудете переключиться и запустите игрулю, а она работает так скажем с англицкими буквами, а у вас русские буквы - еще раз переключитесь. Думаю это меньшее из зол, на что обращать внимание.

svofski
07.11.2008, 20:57
Это и есть "вручную по специальной кнопке".

Только не F12. F12 -- это у нас БЛК+СБР. И не F11, это БЛК+ВВОД.

Dmitry Dubrovenko
07.11.2008, 21:56
У Вектора РУС/ЛАТ -- это не жесткая кнопка, она софтвернаяА в писюке она что, "жёсткая"? :wink:


Только не F12. F12 -- это у нас БЛК+СБР. И не F11, это БЛК+ВВОД.Дык, а где предложения-пожелания?

Jons
21.02.2009, 20:36
А в писюке её вобще нету (я ненашёл):smile: но можно использовать ScrollLock на него светодиод подвешен

svofski
21.02.2009, 22:30
Светодиод на самом деле с кнопкой не связан — в случае подключения клавиатуры к писюку, он зажигается писюком.

Ramiros
21.02.2009, 22:37
Незнаю как в других языках, а на дельфи такие кнопки как Scroll Lock, Print Screen и Num Lock использовать стандартными средствами неполучится, да и нестандартными как то геморойно

ivagor
12.05.2009, 19:25
и чтоже мне с клавиатурой делать
как вариант

Готова Beta-версия прошивки контроллера клавиатуры http://zx.pk.ru/attachment.php?attac...0&d=1226475491для работы
в составе отечественных компьютеров имеющих РК-86 совместимую
матрицу клавиатуры (8*8 + 3 отдельных кнопки).

Тема помещена в раздел Орион поскольку тестирование прошивки
производилось именно на реальном Орион-128, за что огромная благодарность Сергею Акимову (Error404).

Раскладка клавиатуры предварительная и не все клавиши IBM-клавиатуры еще задействованы.
Надеюсь пользователи реальных компов РК86, Вектор, Орион сами смогут модифицировать
раскладку клавиш, по имеющейся в архиве инструкции и выложат здесь свои варианты для применения и обсуждения.
В архиве orkb_01d.zip схема, прошивка и инструкции для владельцев Ориона, РК86, Вектор.
правда, если я правильно понимаю, на векторе эту штуку никто не проверял

caro
12.05.2009, 19:36
правда, если я правильно понимаю, на векторе эту штуку никто не проверялДействительно пока никто не сообщал о проверке на РК86 и Векторе.
Но судя по всему работать должно. Вот и проверишь :)

Jons
29.09.2009, 18:03
caro подойдёт ли для контроллера Atmega8515 ? тут где я жуву даже магзина электронных компонентов нет, а в Кирове только 8, 16, 32, 8515, и 8535 есть, на векторе есть ещё 2 кнопки ввод и сброс, к каким линиям их прицепить на атмеге? и если не затруднит на пиши плз описание по подробнее, ну чайник я в этом полный :biggrin:, я разобрался только с латинской раскладкой, а дальше тупик:confused_std:
зы: подойдёт для прошивки ? http://avr.nikolaew.org/progr.htm

может кто другой подскажет по топику? не могу к Вектору подойти клавы нет =(

caro
03.10.2009, 21:05
подойдёт ли для контроллера клавиатуры Atmega8515?Нет ATMega8515 не подойдет, поскольку в нем не реализован механизм формирования прерываний по изменению состояния линий портов ввода.

тут где я жуву даже магзина электронных компонентов нет, а в Кирове только 8, 16, 32, 8515, и 8535 есть, Ни один из этих контроллеров не подойдет.
Я кстати в теме посвященной контроллеру уже отвечал на аналогичный вопрос.


на векторе есть ещё 2 кнопки ввод и сброс, к каким линиям их прицепить на атмеге?Кнопка СБРОС для ВЕКТОРА делается отдельно. А кнопка ВВОД, это ENTER - она реализована в матрице клавиатуры.


и если не затруднит на пиши плз описание по подробнее, ну чайник я в этом полный :biggrin:, я разобрался только с латинской раскладкой, а дальше тупик:confused_std:Задавайте вопросы, я стараюсь на все отвечать.
Только лучше вопросы задавать в теме, касающейся предмета вопроса.


зы: подойдёт для прошивки ? http://avr.nikolaew.org/progr.htmДа подойдет.

b2m
03.10.2009, 22:38
Кнопка СБРОС для ВЕКТОРА делается отдельно. А кнопка ВВОД, это ENTER - она реализована в матрице клавиатуры.
Нет, ENTER это ENTER, а ВВОД это аналог СБРОСа, но ещё подключает загрузочное ПЗУ в нулевые адреса после сброса (там ещё была клавиша БЛК, но она просто включена последовательно с клавишами СБР и ВВОД, так сказать блокировка от случайного нажатия сброса). И ВВОД, и СБРОС идут непосредственно в схему Вектора.

caro
04.10.2009, 05:42
Нет, ENTER это ENTER, а ВВОД это аналог СБРОСа, но ещё подключает загрузочное ПЗУ в нулевые адреса после сброса (там ещё была клавиша БЛК, но она просто включена последовательно с клавишами СБР и ВВОД, так сказать блокировка от случайного нажатия сброса). И ВВОД, и СБРОС идут непосредственно в схему Вектора.Придется их сделать отдельными кнопками, поскольку у ATMega48 для их реализации не хватает ножек.
Либо сделать контроллер на 40-а ногой, подходящей ATMega.

Jons
15.02.2010, 01:35
наконецто пришли атмеги(не знаю такие ли atmega48-20PU) прошил подправленной прошивкой в соответствии с Векторовской матрицей клавиатуры, почемуто не заработало, разница с Орионовской только в двух первых адресных линиях, перепрошил Орионовской прошивкой то же самое, контроллер даже на клавиатуру не реагирует, схему вроде собрал правильно, по крайней мере шьётся и читается норм, подскажите в чем причина может быть? нета атмега или мои кривые руки?

caro
15.02.2010, 07:42
подскажите в чем причина может быть?Для начала информация:
1) При включении питания МК должен выдать на линию RESET импульс низкого уровня длительностью 0.5 сек;
2) У клавиатуры при включении дожны загореться все 3 индикатора - это работа внутреннего теста клавиатуры;
3) На 0.5 сек должен включится индикатор Num Lock, затем потухнуть - это признак нормальной инициализации контроллера;
4) При нажатии клавиши Print Screen на линию RESET должен выдаваться импульс низкого уровня длительностью 10 мсек;
5) При нажатии клавиши Num Lock должен менять свое состояние соответствующий индикатор.

PS. Надеюсь биты FUSES выставлены правильно?
В принципе достаточно изменить состояние бита CKDIV8, который по умолчанию включен,
что обеспечивает работу контроллера на частоте 1 МГц.
А нам нужно, что бы контроллер работал на частоте 8 Мгц.

Jons
15.02.2010, 18:38
фузы выставил как в инструкции, при включении автотест клавиатуры проходит и на этом всё, нумлок не моргает и на нажатие не реагирует, если паяльник не экранирован атмега может полететь?
зы: с компа на атмегу должен идти сигнал /res, он у меня ввоздухе болтается, может изза этого?
на линии /reset постоянно 0 в
проверил напряжениена на компе, 4,3 влоьта.

Jons
17.02.2010, 21:58
разобрался в чем проблема, я схему программатора и контроллера спаял на одной макетке, в результате на первую ногу МК всегда подавался сигнал /reset и по этому МК всегда находился в режиме записи, зато появилась новая проблема, пропадают некоторые цвета и не все клавиши срабатывают(примерно 80%), если шлейф клавиатуры выдернуть то цвета восстанавливаются, какая зависимость клавиатуры и цветового модуля?

AlexeyS
18.02.2010, 14:00
какая зависимость клавиатуры и цветового модуля?

Опрос клавиатуры, программирование таблицы цветов, установка позиции скроллинга и цвет бордюра в Векторе производится через одни и те же линии ВВ, поэтому процедура опроса клавиатуры и установки цветов выполняется по прерыванию во время обратного хода луча и не должна превышать по продолжительности время гашения... Кроме того, на линиях ВВ во время прямого хода луча не должно быть ни каких установленных битов от клавиатуры.

Jons
18.02.2010, 14:53
ясно буду искать какую линию я не правильно припаял

Ramiros
19.02.2010, 16:29
когда РВ у ВВ55 запрограмирован на ввод данных, считывается скан код клавиатуры, а когда он програмируется на вывод, это есть код цвета палитры, он же и цвет бордюра. Необходимо, чтобы АТМЕГА немешал шине в то время когда РВ запрограмирован на вывод.

caro
19.02.2010, 17:47
когда РВ у ВВ55 запрограмирован на ввод данных, считывается скан код клавиатуры, а когда он програмируется на вывод, это есть код цвета палитры, он же и цвет бордюра.Да, действительно, судя по схеме 4 мл. бита порта B используются в видео-контроллере.

Необходимо, чтобы АТМЕГА не мешал шине в то время когда РВ запрограмирован на вывод.Думаю должно помочь, если последовательно с выходными линиями контроллера,
соединенными с PB0..PB3 (KD00..KD03) поставить резисторы порядка 470 Ом.
Либо поправить прошивку, переводя выходы контроллера на ввод при отсутствии
сканирования матрицы и при не нажатых клавишах.
Придется правда тогда добавить 8 подтягивающих резисторов.
Но это будет вариант более приближенный к оригинальной клавиатуре.

Ramiros
20.02.2010, 12:16
Думаю должно помочь, если последовательно с выходными линиями контроллера,
соединенными с PB0..PB3 (KD00..KD03) поставить резисторы порядка 470 Ом.
Либо поправить прошивку, переводя выходы контроллера на ввод при отсутствии
сканирования матрицы и при не нажатых клавишах.
Придется правда тогда добавить 8 подтягивающих резисторов.
Но это будет вариант более приближенный к оригинальной клавиатуре.

Надо резисторы поставить на все 8 линий, т.к. если ВВ55 и МЕГА будут работать одновременно на вывод, то при разных выходных уровнях будет происходить КЗ через внутренние ключи микросхем, это ни есть гуд. Учитывая что каждый порт МЕГИ спокойно держит 100 мА, то очень вероятно что вылетит ВВ55-я.

Кстати в меги есть встроенные поттягивающие резисторы.

caro
20.02.2010, 13:48
Надо резисторы поставить на все 8 линий, т.к. если ВВ55 и МЕГА будут работать одновременно на вывод, то при разных выходных уровнях будет происходить КЗ через внутренние ключи микросхем, это ни есть гуд. Учитывая что каждый порт МЕГИ спокойно держит 100 мА, то очень вероятно что вылетит ВВ55-я.Да, согласен.


Кстати в меги есть встроенные поттягивающие резисторы.Эта подтяжка эквивалентна 50 КОм, что хватает для Меги.
В данном случае она нужна не для Меги, а для ВВ55, так что думаю не помешает поставить еще по 10 КОм на каждую линию данных.

Jons
20.02.2010, 14:29
пробовал шить по разному, раз десять всё перепроверил, не обрабатывается A3 и частично D0, если отпаять D4 то цвет почти полностью востанавливается

если ВВ55 и МЕГА будут работать одновременно на вывод, то при разных выходных уровнях будет происходить КЗ через внутренние ключи микросхем
и как это я ещё ничего не пожег?:)


не помешает поставить еще по 10 КОм на каждую линию данных

я так понимаю на шину данных надо просто поставть делители 500/10кОм(500 Ом на саму шину)?
зы:мой девайс на макетке

Ramiros
20.02.2010, 14:41
Jons, посмотри на схему герконовой клавы, там какраз эти делители стоят: 10кОм и 1,6кОм

Jons
20.02.2010, 15:03
спасибо, уже глянул, по ней и буду собирать, эх ещё пару километров мгтф напаивать придёться=)
зы: кстати почемуто с атмеги ресетом комп не перегружается, я этот узел собирал по герконовой клаве, там подтягивающие резисторы 1кОм стоят, может увеличить до 10?

Jons
20.02.2010, 20:05
собрал с сопротивлениями, с цветностью всё норм, почемуто линии A3 и D0 по прежнему не обрабатываются, может я всётаки ВВ55 пожег?
подтягивающие резисторы на СБР и ВВОД поставил по 6 кОм, сечас при старте комп нормально ресетится, раньше на экране был мусор и динамик гудел, но при нажатии на printscreen ресет не всегда срабатывает, 1 раз на 10, как можно длину импульса увеличить?

caro
20.02.2010, 20:15
собрал с сопротивлениями, с цветностью всё норм, почемуто линии A3 и D0 по прежнему не обрабатываются, может я всётаки ВВ55 пожег?А осцилографом нельзя посмотреть, что там происходит?

подтягивающие резисторы на СБР и ВВОД поставил по 6 кОм, сечас при старте комп нормально ресетится, раньше на экране был мусор и динамик гудел, но при нажатии на printscreen ресет не всегда срабатывает, 1 раз на 10, как можно длину импульса увеличить?При старте длительность сброса = 0.5 сек, а при нажатии PrintScreen 10 мсек.
Увеличить можно программно.

Jons
20.02.2010, 20:33
pagedown дублируется со стрелкой в право, pageup дублируется с УС, стрелки влево-вверх вобще нигде нету, это наверно уже прошивку переделывать надо?
ВВ55 я к счасть не пожёг, у меня ножки панельки на этих линиях не пропаялись, внешне этого не видно было, тестером обнаружил=)

caro
20.02.2010, 20:45
pagedown дублируется со стрелкой в право, pageup дублируется с УС, стрелки влево-вверх вобще нигде нету, это наверно уже прошивку переделывать надо?Раскладку клавиатуры можно изменить на свой вкус, в архиве с прошивкой описано как это сделать.

Jons
23.03.2010, 14:21
Раскладку клавиатуры можно изменить на свой вкус
caro никак немогу разобраться с русской раскладкой, что нужно заменить чтобы русские буквы соответствовали написанному на клавишах? я даже прошил прошивкой написанной error404, всеравно не работает

caro
23.03.2010, 15:48
caro никак немогу разобраться с русской раскладкой, что нужно заменить чтобы русские буквы соответствовали написанному на клавишах?У error404 по-моему расписано, как он сделал Русскую половину раскладки.

я даже прошил прошивкой написанной error404, всеравно не работаетНе понял, что значит не работает. Совсем не работает, или не те клавиши нажимаются?
Подозреваю, что ты не правильно подключил раскладку error404.
Попробуй залей вот эту:

Jons
23.03.2010, 15:54
к примеру возьмём клавишу с латинской буквой N, на клавише русская Т, а в Basic-e выводится Н (русская), у error404 адаптировано для Ориона, там различие от Векторовской матрицы только в в двух адресных линиях, я поправил и прошил его прошивкой, не помогло, спасибо попробую твоей

caro
23.03.2010, 16:30
к примеру возьмём клавишу с латинской буквой N, на клавише русская Т, а в Basic-e выводится Н (русская),В раскладке надо учитывать, что для получения русской буквы Т надо,
что бы при нажатии клавиши N, контроллер выдавал код нажатия клавиши T.
Так это будет выглядеть в исходнике раскладки:


DB Kl_N,Kl_T ;31h N/Т


у error404 адаптировано для Ориона, там различие от Векторовской матрицы только в в двух адресных линияхВ каких двух адресных линиях?

, я поправил и прошил его прошивкой, не помогло, спасибо попробую твоейТо, что я выложил чуть выше, и есть прошивка с раскладкой от error404

Jons
23.03.2010, 17:05
0-ая и 1-ая адресные линии, в отличии от Ориона, у Вектора поменяны местами

caro
23.03.2010, 17:19
0-ая и 1-ая адресные линии, в отличии от Ориона, у Вектора поменяны местамиСпасибо, не обращал внимания.
Если надо могу это учесть, или сам поправь.
Всего то и надо сделать так:


orion equ 1 ;если 0 то ВЕКТОР
; биты адреса сканирования (d5..d3) [номер строки *8]
if orion
A0 EQU 000H
A1 EQU 008H
else
A0 EQU 008H
A1 EQU 000H
endif

Jons
23.03.2010, 19:13
я вдругом месте правил
; скан-коды основных клавиш
было
Kl_SL EQU A0+D0 ; Home
Kl_CTP EQU A0+D1 ; Insert
Kl_AP2 EQU A0+D2 ; ESCAPE
Kl_F1 EQU A0+D3
Kl_F2 EQU A0+D4
Kl_F3 EQU A0+D5
Kl_F4 EQU A0+D6
Kl_F5 EQU A0+D7
;
Kl_TAB EQU A1+D0 ;TAB
Kl_LF EQU A1+D1 ;
Kl_CR EQU A1+D2 ;Enter
Kl_BS EQU A1+D3 ;Back Space
Kl_LFT EQU A1+D4 ;Влево
Kl_UP EQU A1+D5 ;Вверх
Kl_RGT EQU A1+D6 ;Вправо
Kl_DN EQU A1+D7 ;Вниз
стало
Kl_TAB EQU A0+D0 ;TAB
Kl_LF EQU A0+D1 ;
Kl_CR EQU A0+D2 ;Enter
Kl_BS EQU A0+D3 ;Back Space
Kl_LFT EQU A0+D4 ;Влево
Kl_UP EQU A0+D5 ;Вверх
Kl_RGT EQU A0+D6 ;Вправо
Kl_DN EQU A0+D7 ;Вниз
;
Kl_SL EQU A1+D0 ; Home
Kl_CTP EQU A1+D1 ; Insert
Kl_AP2 EQU A1+D2 ; ESCAPE
Kl_F1 EQU A1+D3
Kl_F2 EQU A1+D4
Kl_F3 EQU A1+D5
Kl_F4 EQU A1+D6
Kl_F5 EQU A1+D7

caro
23.03.2010, 19:25
Что-то я сразу не сообразил, можно сделать еще проще.
Прошивку можно сделать для Ориона, а при подключении контроллера к Вектору
поменять местами адресные линии A0 и A1.

PS. А как с Русской раскладкой? Получилось или нет?

Jons
23.03.2010, 20:50
переключается на русскую(адекватную) если одновременно горят ScrollLock и CapsLock.
Например "привет", при одной активной CapsLock получается "ГХБДТН", при ScrollLock - "PRIWET"
зы:просто поменять адресные линии я тоже подумал, только уже после того как прошивка была готова и залита в МК:)

caro
24.03.2010, 07:58
переключается на русскую(адекватную) если одновременно горят ScrollLock и CapsLock.
Например "привет", при одной активной CapsLock получается "ГХБДТН", при ScrollLock - "PRIWET"CapsLock управляет только регистром - Заглавные/Прописные.
ScrollLock переключает регистр LAT/RUS.
Такое впечатление, что входной сигнал RUS проинвертирован.
Два варианта быстрой проверки:
1) Инвертировать RUS;
2) Поменять местами скан-коды в раскладке клавиатуры.

Jons
24.03.2010, 08:54
может я не прав, поправте плз, но на Векторе в основном применяется КОИ-7, а в ней маленьких букв нет, я ни в одной проге не видел таковых, в Basic-е и с УС и СС не получается их получить

2) Поменять местами скан-коды в раскладке клавиатуры.
т.е. если написано DB Kl_Q, Kl_J то должно быть DB Kl_J, Kl_Q ?

caro
24.03.2010, 09:04
т.е. если написано DB Kl_Q, Kl_J то должно быть DB Kl_J, Kl_Q ?Да.

ivagor
24.03.2010, 11:00
может я не прав, поправте плз, но на Векторе в основном применяется КОИ-7, а в ней маленьких букв нет, я ни в одной проге не видел таковых, в Basic-е и с УС и СС не получается их получит
Если текстовыми редакторами не пользоваться, то про большие/маленькие можно особо не задумываться. В мониторе и ДОСах тоже можно попереключать большие/маленькие.

Jons
25.03.2010, 20:01
Поменять местами скан-коды в раскладке клавиатуры
поменял местами, как и предполагал, стало ещё прикольнее, при активной CapsLock нормально печатаются русские буквы, при активной ScrollLock - английские, если акивны или неактивны оба, получается ерунда, активные-ГХБДЕН, неактивные-PRIWET

St
24.12.2010, 00:00
Кланяюсь тебе всемогущий All...

Десять лет простоя Вектора сделали свое дело.
Емкостная клавиатура, используемый поролон
- превратился в пыль...

Скажите!
Есть ли готовая схема (печатная плата)
по которой можно было бы подключить
клавиатуру от PC? :v2_conf2:

caro
24.12.2010, 07:02
Есть ли готовая схема (печатная плата)
по которой можно было бы подключить
клавиатуру от PC? :v2_conf2:http://www.zx.pk.ru/showthread.php?t=9294

TAL
30.12.2010, 20:01
Кланяюсь тебе всемогущий All...

Десять лет простоя Вектора сделали свое дело.
Емкостная клавиатура, используемый поролон
- превратился в пыль...

Скажите!
Есть ли готовая схема (печатная плата)
по которой можно было бы подключить
клавиатуру от PC? :v2_conf2:
Емкостная клавиатура Вектора без проблем переделывается на геpконовую. На печатную плату плашмя припаивается геркон, а снизу под кнопку приклеивается небольшой магнит. А вообще Стас, приезжай ко мне в гости, увидиш все своими глазами, а заодно и чаю попьем ;)

dbk
21.08.2018, 13:02
Чем компилировать прошивку для атмеги контроллера?

caro
21.08.2018, 13:38
Чем компилировать прошивку для атмеги контроллера?AVR Studio - бесплатная среда для контроллеров фирмы ATMEL.