Просмотр полной версии : БезWaitовый контроллер клавиатуры
Из спортивного интереса попробовал сделать
безWaitовый контроллер клавиатуры для Спектрума.
Цена решения - удорожание контроллера
практически в два раза за счет использования
EPM7064SLC44-10 (стоит порядка 150 р.)
Плюсом кроме отсутствия WAIT является то,
что контроллер монтируется прямо в разьем
подключения механической клавиатуры.
Пока сделал рабочий макет.
Плату буду разводить и заказывать если к
этой разработке проявят интерес.
Ориентировочная себестоимость 300 р.
CPLD в роли 40 ключиков??
CPLD в роли 40 ключиков??Именно так :)
А МК ими управляет в соответствии с нажатием клавиш IBM-клавиатуры.
Evgeny Muchkin
08.08.2006, 13:28
Я б заказал!.. И еще мышки контроллер в придачу. Но, боюсь, что с новинкой тормоза получатся, а хочется поскорее. :(
И еще мышки контроллер в придачу
Мультконтроллер для клавы и мыши давно уже разработал и производит Caro. Или обязательно нужно чтоб и то и другое безваитовое было? Ну тогда это из серии "такое-же только без крыльев".
"Или обязательно нужно чтоб и то и другое безваитовое было? "
А что сильно проблемно?
А что сильно проблемно?
В одну MAX7064 не влезет
Камиль а ты не смотрел в сторону MAX3000 вроде как дешевле, по идее 2 MAX3064 дешевле чем одна MAX7064
Evgeny Muchkin
08.08.2006, 16:18
Или обязательно нужно чтоб и то и другое безваитовое было?
НЕ. :) Мышка пусть будет такой какая есть, а вот клава пусть безвайтовая.
Хотя сейчас я готов приобрести мультиконтроллер от Caro, а как-нить потом этот, безвайтовый, но, к сожалению, Caro как-то неохотно на письма отвечает :(
Камиль а ты не смотрел в сторону MAX3000 вроде как дешевле, по идее 2 MAX3064 дешевле чем одна MAX7064Ronin подсказал - дешевле купить ATF1054 от ATMEL,
они стоят практически в два раза дешевле EPM7064.
Ronin подсказал - дешевле купить ATF1054 от ATMEL,
они стоят практически в два раза дешевле EPM7064.
Или как вариант EPM3064 (MAX3000). Они тоже раза в 2 дешевле MAX7000.
Или как вариант EPM3064 (MAX3000). Они тоже раза в 2 дешевле MAX7000.Только с питанием будут проблемы. Они вроде на 3.3 вольта.
Правда по входам могут работать с 5 в.
Только с питанием будут проблемы. Они вроде на 3.3 вольта.
Правда по входам могут работать с 5 в.
Не принципиально. Во первых, КРЕНка на 3,3В стоит копейки, в отличии от ПЛИС серии MAX7000S. Во вторых, MAX3000A это КМОП-микросхема, и питание хоть и рекомендуется в 3,3В это скорее всего с целью снижения потребляемой мощности, реально она прекрасно работает и от 5В и даже выше.
Или как вариант EPM3064 (MAX3000). Они тоже раза в 2 дешевле MAX7000.
ATF1504 не требуют переделки питания и прошивку достаточно сконвертировать программой pof2jed (т.е. они прямой аналог 7064).
Ктонить может сказать какие канторы в моксве продают атмеловские матрицы ?
(components.argussoft.ru продаёт в розницу ?)
Или еще лучше в нете в розницу =)Набери, например:
http://www.chipfind.ru/search/?s=epm7064s
и получишь полную информацию.
Ктонить может сказать какие канторы в моксве продают атмеловские матрицы ?
(components.argussoft.ru продаёт в розницу ?)
www.efind.ru а потом садимся на телефон
реально она прекрасно работает и от 5В и даже выше.
В даташите написано, что больше 4,6 В на нее подавать нельзя...
В даташите написано, что больше 4,6 В на нее подавать нельзя...
Это КМОП, а они не столь категоричны в выборе "пищи". По наблюдениям одного товарища, микруха выжила даже при запитке от 9 В. Долговременно работала в таком режиме. В общем не для производственных целей, а для творчества более чем нормально. Кстати, у любого компонента имеется запас прочности, обычно это 20%, как и у людей есть козырь в рукаве, иначе не было бы рекородов.
офф:
атмеловские матрицы
есть ATF1508, нужно?
Lisitsin
08.09.2010, 19:33
Здравствуйте. Контроллер клавиатуры можно сделать на ATTiny2313. Она спокойно при +5В разгоняется до 48 МГц и даже выше. Пусть основная программа непрерывно взаимодействует с контроллером IBM-ной клавиатуры, а по прерыванию в порт B выдаём прочитанный из внутреннего ОЗУ уже подготовленный к тому времени код. Коды храним таблицей прямо в области памяти программ.
есть ATF1508, нужно?
Дата поста - 09.08.2006 :D
иначе не было бы рекородов.
Это как? рождение реками маленьких речушек? :v2_wink2:
А почему контроллер был WAITовый ?
Если я правильно понимаю, по активному /IORQ на шину надо выдать данные и держать до подъема /RD или чуть подольше (чтение), а с записью проблем нет.
IanPo, прежде чем выдать данные - их надо подготовить, а готовить их надо на основе адреса строки #XXFE, т.е. МК должен прочитать ША, сделать выборку из таблицы нажатых клавиш и выдать на ШД нужный код... собственно это занимает некоторое время, в течении которого ЦП необходимо придержать сигналом /WAIT.
В принципе современные, шустрые, МК способны это выполнить без использования сигнала /WAIT.
Alex_kapfa
09.09.2010, 18:05
Кому-нибудь удалось сделать контроллер клавиатуры, который бы подключался бы вместо "механической" клавиатуры (в частности, "безвейтовый", о котором идет речь в начале этой темы)?
Такой контроллер пригодился бы тем, у кого на плате нет разъемов для «мультикарты» (для подключения клавиатуры от ПЦ) и при этом нет желания (или не знает как) «вешать» ее («мультикарту») на проводах.
Кому-нибудь удалось сделать контроллер клавиатуры, который бы подключался бы вместо "механической" клавиатуры (в частности, "безвейтовый", о котором идет речь в начале этой темы)?
Совсем без привязки к схеме компа, если не считать двух питающих сигналов и 5+8 проводников наверное не получится. Или уже ПЛИС/ОЗУ ставить как виртуальные "клавиши". В общем сложнее и менее универсально.
Совсем без привязки к схеме компа, если не считать двух питающих сигналов и 5+8 проводников наверное не получится. Или уже ПЛИС/ОЗУ ставить как виртуальные "клавиши". В общем сложнее и менее универсально.В теме про трассировку новой платы KAY-1024 почитайте.
Для реализации без-WAITового контроллера в его схеме используется контроллер на ATMega48, работающий на частоте 20 МГц..
Пожалуй это наиболее оптимальный вариант для подключения клавиатуры к Спекки.
Если говорить о подключении к любому Спектрум-совместимому клону, то кроме 5+8 сигналов данных и адреса и 2 линий питания, минимально необходим только еще один сигнал выборки порта клавиатуры.
Lisitsin
11.09.2010, 17:06
В теме про трассировку новой платы KAY-1024 почитайте.
Для реализации без-WAITового контроллера в его схеме используется контроллер на ATMega48, работающий на частоте 20 МГц..
Пожалуй это наиболее оптимальный вариант для подключения клавиатуры к Спекки.
Если говорить о подключении к любому Спектрум-совместимому клону, то кроме 5+8 сигналов данных и адреса и 2 линий питания, минимально необходим только еще один сигнал выборки порта клавиатуры.
Я подцепил к своему проекту стандартную клавиатуру от IBM. Эмулирую команду IN и получаю адекватный ответ от контроллера ATTiny2313 (тот, что работает у меня на частоте 42 МГц). Скан-коды клавиатуры все вижу. Работаю по прерыванию INT. Схему проекта прилагаю.
Lisitsin
11.09.2010, 17:09
Вот ещё soft:
balu_dark
12.09.2010, 01:37
а с 42 мегагерцами на тинике - перебора - точно нет? это же более чем в два раза выше его максимальной паспортной тактовой?
Я подцепил к своему проекту стандартную клавиатуру от IBM. Эмулирую команду IN и получаю адекватный ответ от контроллера ATTiny2313 (тот, что работает у меня на частоте 42 МГц).Имелось ввиду наверное 24 МГц?
Скан-коды клавиатуры все вижу. Работаю по прерыванию INT. Схему проекта прилагаю.Честно говоря меня несколько удивило такое подключение ATTiny2313.
Использование битов порта D и для работы с сигналами от PS/2 клавиатуры и для выдачи данных в порт клавиатуры несколько смущает.
Да и опрос порта по INT0 мне не понятен, поскольку на этой же линии находится один из битов данных от клавиатуры.
---------- Post added at 09:29 ---------- Previous post was at 09:21 ----------
Вот ещё soft:Есть вопросы по процедуре опроса порта клавиатуры:
;*************** SUBROUTINES****************
.ORG 0X01
;
IN ZL,PINB ; 1 READ HIGH BYTE OF PORT ADDRESS 5
COM ZL ; 2 PREPARING 6
ADD ZL,CONST5F ; 2 DATA ADDRESS 7
; а почему не учитывается перенос в ZH при переполнении?
; имейте ввиду, что адрес сканирования может быть любой, от 00h до 0FEh,
; а не только 0FEh, 0FDh, 0FBh, 0F7h, 0EFh, 0DFh, 0BFh, 07Fh
LD BUFI,Z ; 3 LOAD CURRENT PORT DATA 9
; в ATTiny2313 только 128 байт ОЗУ, а здесь требуется как минимум 256 байт,
; а с учетом стека и того больше
OUT PORTD,BUFI ; 5 OUT CURRENT 10
OUT DDRD,CONSTFF ; 5 PORT DATA 11
NOP ; 5 NOP1 12
OUT PORTD,ZERO ; 6 RETURN PORTD DATA 13
; надо бы дождаться конца импульса запроса порта клавиатуры
OUT DDRD,DIRD ; 6 AND MAIN DIRECTION PORTD 14
STS EIFR,CONSTFF ; 7 CLEAR INT0 FLAG 16
; это лишнее, бит прерывания очищается автоматически.
RETI ; 8 RETURN 20
Lisitsin
12.09.2010, 10:57
а с 42 мегагерцами на тинике - перебора - точно нет? это же более чем в два раза выше его максимальной паспортной тактовой?
Работает как часы даже на 48 МГц. Я им звук электрогитары обрабатываю (24 бита 48 кГц) в реальном времени.
AHTuXPuCT
12.09.2010, 11:00
Лисицын Василий Николаеви, про обработку звука для гитары можно плз по подробней?
Lisitsin
12.09.2010, 11:11
Лисицын Василий Николаеви, про обработку звука для гитары можно плз по подробней?
Можно.
Lisitsin
12.09.2010, 11:20
Имелось ввиду наверное 24 МГц?
Честно говоря меня несколько удивило такое подключение ATTiny2313.
Использование битов порта D и для работы с сигналами от PS/2 клавиатуры и для выдачи данных в порт клавиатуры несколько смущает.
Да и опрос порта по INT0 мне не понятен, поскольку на этой же линии находится один из битов данных от клавиатуры.
---------- Post added at 09:29 ---------- Previous post was at 09:21 ----------
Есть вопросы по процедуре опроса порта клавиатуры:
;*************** SUBROUTINES****************
.ORG 0X01
;
IN ZL,PINB ; 1 READ HIGH BYTE OF PORT ADDRESS 5
COM ZL ; 2 PREPARING 6
ADD ZL,CONST5F ; 2 DATA ADDRESS 7
; а почему не учитывается перенос в ZH при переполнении?
; имейте ввиду, что адрес сканирования может быть любой, от 00h до 0FEh,
; а не только 0FEh, 0FDh, 0FBh, 0F7h, 0EFh, 0DFh, 0BFh, 07Fh
LD BUFI,Z ; 3 LOAD CURRENT PORT DATA 9
; в ATTiny2313 только 128 байт ОЗУ, а здесь требуется как минимум 256 байт,
; а с учетом стека и того больше
OUT PORTD,BUFI ; 5 OUT CURRENT 10
OUT DDRD,CONSTFF ; 5 PORT DATA 11
NOP ; 5 NOP1 12
OUT PORTD,ZERO ; 6 RETURN PORTD DATA 13
; надо бы дождаться конца импульса запроса порта клавиатуры
OUT DDRD,DIRD ; 6 AND MAIN DIRECTION PORTD 14
STS EIFR,CONSTFF ; 7 CLEAR INT0 FLAG 16
; это лишнее, бит прерывания очищается автоматически.
RETI ; 8 RETURN 20
Именно 42 (чорок два) МГц. Каждый бит порта D конфигурируется индивидуально (вход или выход) и проблем здесь у меня не возникло. Вот со сканированием - да, прийдётся подумать. Я думал, что только один бит устанавливается в ноль. Импульс запроса у меня - тот же сигнал, что и прерывание INT, и я его очень быстро сбрасываю при эмуляции команды IN, так что его хватает только на генерацию прерывания. Сброс флага уберу. Огромное спасибо.
---------- Post added at 11:20 ---------- Previous post was at 11:18 ----------
INT0 у меня сначала вход, а когда отвечаю центральному процессору - делаю его выходом.
Забыл еще про один момент. Поскольку в процедуре обработки прерывания используется команда ADD, изменяющая состояние регистра статуса МК, в начале процедуры необходимо сохранить статус, в конце восстановить.
На счет обьема ОЗУ, вы так и не ответили или не заметили :)
Я потому и перешел на МЕГА48, поскольку в ней 512 байт ОЗУ, что хватает для формирования полной таблицы скан-кодов (256 байт).
Lisitsin
12.09.2010, 13:23
Забыл еще про один момент. Поскольку в процедуре обработки прерывания используется команда ADD, изменяющая состояние регистра статуса МК, в начале процедуры необходимо сохранить статус, в конце восстановить.
На счет обьема ОЗУ, вы так и не ответили или не заметили :)
Я потому и перешел на МЕГА48, поскольку в ней 512 байт ОЗУ, что хватает для формирования полной таблицы скан-кодов (256 байт).
Спасибо. Статус сохраню, согласен. Насчёт ОЗУ - прийдётся думать. Дело сложное. Возможно, для 128 параметров запроса можно использовать 128 ячеек, а остальные 4 вертикальные клавиши корректировать. Можно использовать незадействованные регистры ввода-вывода. Насчёт стека: а можно, интересно, располагать его в пространстве ввода-вывода?
---------- Post added at 13:23 ---------- Previous post was at 13:04 ----------
Попробовал в AVRStudio стек сунуть в зарезервированные ячейки пространства ввода-вывода. Отрабатывает. Как будет в железе - пока не знаю.
Lisitsin
12.09.2010, 17:30
Есть мысль сделать так: стек отправляем в пространство ввода-вывода. 128 ячеек ОЗУ используем для индикации состояния 7 вертикальных линий клавиатуры. Жля оставшихся 5 клавиш отводим дополнительный регистр (COLOMN7), в котором нажатие будем отображать нулём. При коде сканирования >127 просто пишем: AND BIFI,COLOMN7.
Попробовал в AVRStudio стек сунуть в зарезервированные ячейки пространства ввода-вывода. Отрабатывает. Как будет в железе - пока не знаю.Не будет, я проверял.
При таком турбировании ATTiny (хотя, я честно говоря не сторонник такого насилия :) ),
достаточно будет выделить на буфер 64 ячейки ОЗУ, а старшие два бита адреса отрабатывать в прерывании.
Тем более, что кроме стека, ОЗУ может понадобится и для других переменных.
Не думаю, что 32 регистров общего назначения хватит на все цели.
При коде сканирования >127 просто пишем: AND BUFI,COLOMN7.Так это пишется:
sbis PINB,6 ;- A14
and BUFI,COLOMN6
sbis PINB,7 ;- A15
and BUFI,COLOMN7
Lisitsin
16.09.2010, 19:49
Только там по-моему не sbis, а sbic. Вот что у меня получается:
.ORG 0X01
IN ZL,PINB ; 1 READ HIGH BYTE OF PORT ADDRESS 5
IN TMPSR,SREG ; 1 SAVE STATUS REGISTER 6
MOV TMPI,ZL ; 1 COPY SCAN CODE TO TMPI 7
ANDI ZL,0B00111111 ; 2 PREPARING 8
ADD ZL,CONST5F ; 2 INTERNAL RAM 9
ADC ZH,ZERO ; 2 ADDRESS 10
LD BUFI,Z ; 3 LOAD CURRENT PORT DATA 12
SBRC TMPI,7 ; 4 *
AND BUFI,COLOMN7 ; 4 DATA * 14
SBRC TMPI,6 ; 4 CORRECTION -
AND BUFI,COLOMN6 ; 4 - 16
OUT PORTD,BUFI ; 5 OUT CURRENT 17 ;10
OUT DDRD,CONSTFF ; 5 PORT DATA 18 ;11
NOP ; 5 NOP1 19 ;12
OUT PORTD,ZERO ; 6 RETURN PORTD DATA 20 ;13
OUT DDRD,DIRD ; 6 AND MAIN DIRECTION PORTD 21 ;14
CLR ZH ; 7 RESET ZH 22
OUT SREG,TMPSR ; 7 RETURN STATUS 23
RETI ; 8 RETURN 24
В железе пока не пробовал.
SBIS выбор сроки происходит логическим 0
Всё таки ответьте. Есть ли сабж? Кто либо сделал? Т.е. что бы спектрум не видел бы разницы между механической и эмулируемой клавой от АТ?
Всё таки ответьте. Есть ли сабж?Есть.
Кто либо сделал?Я сделал, пока на макетке.
Схема этого контроллера включена в новый вариант платы KAY-1024 (см. соответствующую тему).
Т.е. что бы спектрум не видел бы разницы между механической и эмулируемой клавой от АТ?Нет никакой разницы.
.ORG 0X01
; ; 4 такта на переход в прерывание
IN ZL,PINB ; 1 READ HIGH BYTE OF PORT ADDRESS 5
IN TMPSR,SREG ; 1 SAVE STATUS REGISTER 6
; MOV TMPI,ZL ; 1 COPY SCAN CODE TO TMPI 7
; Нет необходимости вводить переменную TMPI
ANDI ZL,0B00111111 ; 2 PREPARING 8
; ADD ZL,CONST5F ; 2 INTERNAL RAM 9
; ADC ZH,ZERO ; 2 ADDRESS 10
; Поскольку ZL после маскировки старших битов < 64,
; то переноса быть не может, только ZH надо всегда иметь = 0
; Лучше написать так:
SUBI ZL,-0x60 ; Буфер скан-кодов с адреса 0x60
LD BUFI,Z ; 3 LOAD CURRENT PORT DATA 12
; SBRC TMPI,7 ; 4 *
SBIS PINB,7
AND BUFI,COLOMN7 ; 4 DATA * 14
; SBRC TMPI,6 ; 4 CORRECTION -
SBIS PINB,6
AND BUFI,COLOMN6 ; 4 - 16
OUT PORTD,BUFI ; 5 OUT CURRENT 17 ;10
OUT DDRD,CONSTFF ; 5 PORT DATA 18 ;11
; Сейчас на шине данных выставлен байт данных от порта клавиатуры
NOP ; 5 NOP1 19 ;12
; Надо бы подсчитать время, что бы быть уверенным, что цикл
; чтения порта клавиатуры уже закончен
OUT PORTD,ZERO ; 6 RETURN PORTD DATA 20 ;13
; Порт данных переведен в режим чтения
; Не слишком ли короткий получается период выдачи данных
; порта клавиатуры?
; 2 такта при 42 МГц это порядка 48 нсек :)
OUT DDRD,DIRD ; 6 AND MAIN DIRECTION PORTD 21 ;14
; CLR ZH ; 7 RESET ZH 22
; Обнулить ZH надо при инициализации программы
OUT SREG,TMPSR ; 7 RETURN STATUS 23
RETI ; 8 RETURN 24
На каком контроллере? Не вижу надпись на фотке. 2313?
На каком контроллере? Не вижу надпись на фотке. 2313?28-выводной чип ATMega48 (можно ATMega88 или ATmega168).
Lisitsin
17.09.2010, 18:07
SBIS выбор сроки происходит логическим 0
Ой !!!
---------- Post added at 18:00 ---------- Previous post was at 17:57 ----------
Всё таки ответьте. Есть ли сабж? Кто либо сделал? Т.е. что бы спектрум не видел бы разницы между механической и эмулируемой клавой от АТ?
.я ещё пока не сделал. Но надеюсь сделать. Это технически реально.
---------- Post added at 18:06 ---------- Previous post was at 18:00 ----------
.ORG 0X01
; ; 4 такта на переход в прерывание
IN ZL,PINB ; 1 READ HIGH BYTE OF PORT ADDRESS 5
IN TMPSR,SREG ; 1 SAVE STATUS REGISTER 6
; MOV TMPI,ZL ; 1 COPY SCAN CODE TO TMPI 7
; Нет необходимости вводить переменную TMPI
ANDI ZL,0B00111111 ; 2 PREPARING 8
; ADD ZL,CONST5F ; 2 INTERNAL RAM 9
; ADC ZH,ZERO ; 2 ADDRESS 10
; Поскольку ZL после маскировки старших битов < 64,
; то переноса быть не может, только ZH надо всегда иметь = 0
; Лучше написать так:
SUBI ZL,-0x60 ; Буфер скан-кодов с адреса 0x60
LD BUFI,Z ; 3 LOAD CURRENT PORT DATA 12
; SBRC TMPI,7 ; 4 *
SBIS PINB,7
AND BUFI,COLOMN7 ; 4 DATA * 14
; SBRC TMPI,6 ; 4 CORRECTION -
SBIS PINB,6
AND BUFI,COLOMN6 ; 4 - 16
OUT PORTD,BUFI ; 5 OUT CURRENT 17 ;10
OUT DDRD,CONSTFF ; 5 PORT DATA 18 ;11
; Сейчас на шине данных выставлен байт данных от порта клавиатуры
NOP ; 5 NOP1 19 ;12
; Надо бы подсчитать время, что бы быть уверенным, что цикл
; чтения порта клавиатуры уже закончен
OUT PORTD,ZERO ; 6 RETURN PORTD DATA 20 ;13
; Порт данных переведен в режим чтения
; Не слишком ли короткий получается период выдачи данных
; порта клавиатуры?
; 2 такта при 42 МГц это порядка 48 нсек :)
OUT DDRD,DIRD ; 6 AND MAIN DIRECTION PORTD 21 ;14
; CLR ZH ; 7 RESET ZH 22
; Обнулить ZH надо при инициализации программы
OUT SREG,TMPSR ; 7 RETURN STATUS 23
RETI ; 8 RETURN 24
Спасибо !!! Единственное: я не могу долго держать скан-код на шине адреса в связи с особенностями проекта: у меня к ней довольно часто обращается видеопроцессор. Я это делаю чтобы не мешатьт ему. Да и РОН-ов мне пока хватает ... Спасибо за участие в проекте.
---------- Post added at 18:07 ---------- Previous post was at 18:06 ----------
.ORG 0X01
; ; 4 такта на переход в прерывание
IN ZL,PINB ; 1 READ HIGH BYTE OF PORT ADDRESS 5
IN TMPSR,SREG ; 1 SAVE STATUS REGISTER 6
; MOV TMPI,ZL ; 1 COPY SCAN CODE TO TMPI 7
; Нет необходимости вводить переменную TMPI
ANDI ZL,0B00111111 ; 2 PREPARING 8
; ADD ZL,CONST5F ; 2 INTERNAL RAM 9
; ADC ZH,ZERO ; 2 ADDRESS 10
; Поскольку ZL после маскировки старших битов < 64,
; то переноса быть не может, только ZH надо всегда иметь = 0
; Лучше написать так:
SUBI ZL,-0x60 ; Буфер скан-кодов с адреса 0x60
LD BUFI,Z ; 3 LOAD CURRENT PORT DATA 12
; SBRC TMPI,7 ; 4 *
SBIS PINB,7
AND BUFI,COLOMN7 ; 4 DATA * 14
; SBRC TMPI,6 ; 4 CORRECTION -
SBIS PINB,6
AND BUFI,COLOMN6 ; 4 - 16
OUT PORTD,BUFI ; 5 OUT CURRENT 17 ;10
OUT DDRD,CONSTFF ; 5 PORT DATA 18 ;11
; Сейчас на шине данных выставлен байт данных от порта клавиатуры
NOP ; 5 NOP1 19 ;12
; Надо бы подсчитать время, что бы быть уверенным, что цикл
; чтения порта клавиатуры уже закончен
OUT PORTD,ZERO ; 6 RETURN PORTD DATA 20 ;13
; Порт данных переведен в режим чтения
; Не слишком ли короткий получается период выдачи данных
; порта клавиатуры?
; 2 такта при 42 МГц это порядка 48 нсек :)
OUT DDRD,DIRD ; 6 AND MAIN DIRECTION PORTD 21 ;14
; CLR ZH ; 7 RESET ZH 22
; Обнулить ZH надо при инициализации программы
OUT SREG,TMPSR ; 7 RETURN STATUS 23
RETI ; 8 RETURN 24
Спасибо !!! Единственное: я не могу долго держать скан-код на шине адреса в связи с особенностями проекта: у меня к ней довольно часто обращается видеопроцессор. Я это делаю чтобы не мешатьт ему. Да и РОН-ов мне пока хватает ... Спасибо за участие в проекте.
Lisitsin
03.10.2010, 21:25
Кажись всё написал. Ещё актуально?
Sentenced
04.10.2010, 02:53
Актуально, актуально. Дайте два ! (с)
Lisitsin
09.10.2010, 10:01
Актуально, актуально. Дайте два ! (с)
Пока без теста.
Cat_Alex/QRP
08.10.2014, 19:24
caro, а схемку этого контроллера можно?
Я недавно сделал для Профи 5.06 контроллер для USB клавиатуры,
сейчас рисую платку для отдельного контроллера, тоже будет без
вайтов на PIC24FJ064GB002 и EPM7064SCL44. Стоимость микросхем
порядка PIC - 200руб. и EPM - 300руб. Можно сказать на 99%
что работать будет, т.к. на профике работает нормально, но там
40 ключей находится в EPM570. Для EPM7064SCL44 прошивку сделал,
еле влезло, т.к. я входы для 2х Sinclair джойстиков добавил. Осталось
доделать плату и прошивку для PIC подправить, т.к. в новой схеме
кое что изменил.
Из всех USB клавиатур которые у меня есть сначала не хотела работать
одна китайская, но когда включил выдачу отладочной информации на rs232,
то она тоже заработала, видимо не успевала за запросами от PICа.
Так же работают безпроводные клавиатуры. И что еще интересно если
в PIC залить прошивку для мыши, то из комплекта безпроводная мыша тоже работает.
На будущее можно будет сделать контроллер для мыши и клавиатуры,
от одного RFсвистка, надо только две прошивки скрестить.
Cat_Alex/QRP
08.10.2014, 21:47
Anykey, очень интересно! После окончания разработки, документацией и инструкциями по подключению к другим клонам поделитесь?
Документацией поделюсь, подключение будет
вместо обычной клавиатуры.
caro, а схемку этого контроллера можно?Да, конечно.
В архиве схема и прошивка контроллера с учетом подключения его к Пентагону.
Хотя будет работать на любом Спектрум-совместимом компе.
John North
09.10.2014, 19:38
а платка есть под него?
Выложил документацию здесь - ZX HID Keyboard Controller (http://zx-pk.ru/showpost.php?p=743644&postcount=1)
а платка есть под него?Плату развел, но не заказывал, поскольку не было спроса.
John North
10.10.2014, 18:01
Плату развел, но не заказывал, поскольку не было спроса.
так может есть смысл сделать опрос?
я думаю, желающих много будет.
или, если плата односторонная, может выложить вариант под ЛУТ?
http://www.microsemi.com/images/cmpg/mt8809-block_rdax_500x242.jpg
http://www.microsemi.com/products/switches/analog-cross-point-switches/mt8809
http://ru.aliexpress.com/item/Free-shipping-5PCS-LOT-MT8809/2044092856.html
http://ru.aliexpress.com/w/wholesale-mt8809.html
[COLOR="Silver"]
HardWareMan
16.10.2014, 18:41
Не подходит для Специалиста. Подходит для РКшек и Орионов.
HardWareMan, ну, и что, это, типа, круто очень - сделать такое замечание в ветке про Спектрум? Не хватает одной - всегда можно поставить две. К тому же, есть матрица http://www.microsemi.com/products/switches/analog-cross-point-switches/mt8812 она подходит для Специалиста.
HardWareMan
08.11.2014, 17:28
Эта матрица (http://www.aliexpress.com/item/MT8812AE-MT8812-DIP-IC-Jinmao-Long-Electronics/1910608360.html), конечно, будет интересней моей сборки на 176КТ1, да и компактнее. Однако мое текущее решение на CPLD несколько практичнее. В любом случае, не стоит так болезненно реагировать на комментарии. Да и свои бы стоило научиться писать (особенно стартовые).
HardWareMan, уверен, что практичнее - матрица.
HardWareMan
08.11.2014, 18:19
HardWareMan, уверен, что практичнее - матрица.
Только если для раритетного оригинального компьютера с ушатанными кнопками.
HardWareMan, Вообще, на любой комп, хоть на шину, хоть вместо кейборды.
Cat_Alex/QRP
30.06.2015, 22:25
28-выводной чип ATMega48 (можно ATMega88 или ATmega168).
А обычную atmega8 поставить можно?
А обычную atmega8 поставить можно?Нет, поскольку в atmega8 нет режима прерываний по изменению состояния портов ввода/вывода.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot