Контроллер мышки для MSX

[ index ]

Контроллер подключается к любому из портов джойстика компьютера MSX и обеспечивает работу IBM-ской мышки стандарта PS/2 в режиме MSX-mouse или MSX-joystick.

Основой контроллера является микроконтроллер (МК) ATTiny2313 фирмы Atmel. Тактируется МК от встроенного генератора на 8 Мгц.

Схема получилась очень простая и дешевая. Собрать её можно на куске макетки за 2-3 часа. Особенность схемы - возможность программирования МК с помощью самой MSX. Для этого переключатель надо установить в положение "prog" (замкнуты контакты 1-2). В положении "work" (замкнуты контакты 2-3) МК работает в режиме эмуляции мышки или джойстика. Перемычка JP2 предусмотрена для управления разрешением подключенной мышки (что бывает необходимо при работе с современными оптическими мышками с высоким разрешением).

Текущая версия прошивки (msxms20.hex) обеспечивает работу контроллера в режиме эмуляции мышки или джойстика. Для переключения режима надо нажать одновременно обе клавиши мышки, левую и правую. Текущий режим отображается светодиодом. Если он  горит - работа в режиме мышки, иначе в режиме джойстика. При включении питания по умолчанию контроллер работает в режиме мышки - светодиод горит. Если он моргает с периодом порядка 1 секунды, значит либо мышка не подключена, либо она не исправна, либо подключенная через переходник USB<->PS/2 мышка не работает в режиме PS/2.

Для загрузки новой прошивки МК или её обновления служит программа prg2313t.com

Программа в первую очередь предназначена для программирования или обновления прошивки микроконтроллера ATTiny2313 фирмы ATMEL, установленного в контроллере мышки MSX, который подключается в один из его портов джойстика. Перед запуском программы необходимо перемычку JP1 на плате контроллера поставить в положение "prog".

По умолчанию программа устанавливает биты настройки МК (FUSES) для его работы в режиме со встроенным генератором на 8 Мгц и отключенном делителе на 8 (тактовая частота МК = 8 МГц).

При запуске программы:
a>prg2313t [file.hex]
где: file.hex - имя файла, содержащего прошивку в формате Intel-HEX.

1) Если ни к одному из портов джойстика не подключен контроллер, на экран выдается информация об его отсутствии и табличка с цоколевкой подключения МK к контактам разьема порта джойстика:

Error: CHIP is not found
on any joystick port:
1 RESET <-: STROBE (Joy-8pin)
17 MOSI <-: TrgA (Joy-6pin)
18 MISO ->: Up (Joy-1pin)
19 SCK <-: TrgB (Joy-7pin)
20 VDD <-: +5V (Joy-5pin)
10 GND : GND (Joy-9pin)

Цифры слева, номера выводов микроконтроллера.

2) Если к одному из портов джойстика подключен контроллер, то выдается сообщение о номере порта, к которому он подключен и из МК считываются:
- Сигнатура (фирменный 3-х байтный идентификатор МК);
- Текущие значения FUSES;
- Текущая прошивка МК.
По умолчанию принято, что последние 32 байта прошивки содержат текстовое описание прошивки, которое после считывания выдается на экран.
По сигнатуре определяется, что подключенный МК именно ATTiny2313, иначе программа завершает работу.
По содержимому FUSES определяется текущий режим тактирования МК.
По содержимому прошивки определяется, запрограммирован МК или нет, и выдается соответствующее сообщение.
Если параметр программы (имя HEX-файла с новой прошивкой) не указан, то программа завершает свою работу.

3) Если указан файл с новой прошивкой, то после чтения текущих параметров МК, новая прошивка считывается в буфер и на экран, при наличии 32 байт ее идентификатора выдается его текст.
Текущее значение FUSES сравнивается с требуемым, и если оно отличается от него, происходит запись нужного значения, обеспечивающего работу МК от внутреннего генератора 8 МГц с отключенным делителем на 8 (результирующая тактовая частота = 8 МГц).
Новая прошивка сравнивается с текущей, и если они совпадают, происходит завершение программы с выдачей соответствующего сообщения.
Если прошивки разные, происходит запись новой прошивки, проверка правильности записи (верификация) и завершение работы программы, с выдачей резюме - Ok или Error.
[ index ]


Рейтинг@Mail.ru