ZXNet эхоконференция «hardware.zx»


тема: Маленькая доработка схемы контроллера мыши на AT89C2051 (MSC-51)



от: Eugene Stahov
кому: All
дата: 21 Aug 2000
Hello All.


=== Cut ===
================== kmsps2 .t =================================
PS/2 -> Kempston Mouse Adapter v1.03
(c) 1999-2000 Studio STALL
Версия для микроконтроллеров AT89C1051/AT89C2051 (MSC-51)
(+) Изменена схема сброса - RC заменена на DD1D - теперь схема
сбрасывается по общему сбросу (раньше только при включении)
===============================================================

DD1A DD1B DD1C DD2A
1┌───┐ 4┌───┐ 9┌───┐ 1┌───┐
A7 ──────┤& 0───┬──┤& 0──────┤& 0──────┤1 ├──┐
A6 ──────┤ │3 └──┤ │6 ┌──┤ │8 ┌──┤ │3 │
2└───┘ 5└───┘ │10└───┘ │ 2└───┘ │
A4 ─────────────────────────┘ │ │
A5 ────────────────────────────────────┘ DD2C │
┌─────────────────────────────┘
DD2D │ 4┌───┐ DD2B 9┌───┐
12┌───┐ └──┤1 ├────────┬──────┤1 ├───|<|── /WAIT
/RD ─────┤1 ├────────┤ │6 │ ┌───┤ │8
/IORQ ───┤ │11 5└───┘ │ │ 10└───┘
13└───┘ │ │ DD2C
/CS │ │
┌──/RES ┌───────────────────────┴──│─┐
│ DD1D │ ┌───────────────────────┘ │
│13┌───┐ │ │ C1 10uF + │ +5V
├──┤& 0──┐│ │ ┌────│────────────────┤
└──┤ │11││ │ 1┌───┬─────┬───┐20│ │1┌───┬────┬───┐20
12└───┘ └│──│───┤RES│ A │VCC├──┘ └─0 OC│ RG │VCC├─┘
MDAT───────│──│───┤P30│ T │P17├─────────┤ I7│ │O7 ├─────D7
│ └───┤P31│ 8 │P16├─────────┤ I6│ │O6 ├─────D6
│ ─┤X2 │ 9 │P15├─────────┤ I5│ │O5 ├─────D5
14MHZ ─────│──────┤X1 │ C │P14├─────────┤ I4│ │O4 ├─────D4
└──────┤P32│ 2 │P13├─────────┤ I3│ │O3 ├─────D3
MCLK──────────────┤P33│ 0 │P12├─────────┤ I2│ │O2 ├─────D2
A10───────────────┤P34│ 5 │P11├───┬─────┤ I1│ │O1 ├─────D1
A8────────────────┤P35│ 1 │P10├───│┬────┤ I0│ │O0 ├─────D0
┌────┤GND│ │P37├─ ││ ┌──┤GND│IR33│ C ├── +5V
│ 10└───┴─────┴───┘11 ││ │10└───┴────┴───┘11
─┴─ DD3 ││─┴─ DD4
┌─┘└─┐
┌┴┐ ┌┴┐
R1,2 │ │ │ │
1K └┬┘ └┬┘
└────┴──+5V
Расположение контактов в PS/2
┌──┐ ┌──┐
N/C 6 ──── ┌┘* └─┘ *└┐ ─── 5 MCLK
+5V 4 ──── │* *│ ─── 3 GND
N/C 2 ──── └─┐* *┌─┘ ─── 1 MDAT
└─────┘
Вид на розетку со стороны контактов (не со стороны пайки)

Микросхемы:
DD1 1533ЛА3
DD2 1533ЛЛ1
DD3 AT89C2051
DD4 1533ИР33 (АHАЛОГ ИР22, HО БОЛЕЕ УДОБHАЯ ЦОКОЛЕВКА), можно и АП6, только с
учётом цоколёвки

Схема рассчитана на подключение к компьютеру, не имеющему конфликтов по порту
#DF. Eсли конфликт все же есть, либо есть порт #FF, то необходимо собрать схему
управления /IORQGE

Kaк реализован интерфейс с компьютером?
В состоянии ожидания линия P31=0, поэтому при обращении процессора к порту DF
будет выдан /WAIT. После того, как нужная координата выдается, /WAIT
отпускается переводом P31->1. После завершения Z80 цикла IOR P31->0.

О назначении резисторов R1,2: Линии P10 и P11 не имеют внутренних подтягивающих
резисторов.

Дешифрация довольно жесткая: задействованы A7,А6,А5,А4,А10,А8


Данная схема поддерживает только 2-x-кнопочных мышей (у меня была только
такая), у 3-х-кнопочных средня кнопка не используется.

При включении, если не было ни одного перемещения мыши, а также, если мышь не
подключена к разъему, из портов будет прочитано :
#fadf (64223) = 255 - buttons
#fbdf (64479) = 40 - x
#ffdf (65503) = 41

Предупреждение: Данная версия прошивки не допускает подключения мыши при
включенном компьютере.
Прошивка версии 2.0 будет допускать:
1. Подключение мыши в "горячем" состоянии
В данной версии контроллер "увидит" мышь по сбросу
2. Возможность переключения левой и правой кнопки, как из программы, так и
кнопками самой мыши.
3. Возможность идентификации данной схемы (порт #FEDF)
4. Поддержка трехкнопочных (и более) мышей.


================== PS2DRV.HEX =====================

:1000000002002630B51730B40B85059000D2B1C27E
:10001000B1D2213285049000D2B1C2B13285239091
:1000200000D2B1C2B13275A80175880175B80174EA
:1000300028F50404F505E4F520F521F522C2B17593
:1000400023FFC221D2AF3021FDD2B374F475F00882
:10005000C2B020B3FD1392B030B3FDD5F0F413A2BB
:10006000D0B320B3FD92B030B3FD20B3FDD2B03099
:10007000B3FD20B3FD30B3FDD2AF1200800200A665
:10008000D2B0D2B320B3FD30B3FD75F00820B3FD7C
:10009000A2B01330B3FDD5F0F420B3FD30B3FD2092
:1000A000B3FD30B3FD227820D2AF1180F608B8231B
:1000B000F9E5022521F502F504E5032522F503F50E
:1000C00005A200B39219A201B3921880D9A2E1331C
:0E00D00092E2A2E33392E4A2E53392E6C42268
:00000001FF

======== [ Пилите, Шура, пилите ... ] =========================

Планируется переход на микроконтроллер AT90C1200 (AVR)
- длительность /wait сократится в 12 раз
микроконтроллер по цоколевке совпадает с АТ89С2051, за исклю-
чением сигнала RESET - в AT90C1200 он /RESET, т.е. надо будет
исключить DD1D


Eugene Stahov
Пн 21 Авг 2000 18:42:29


=== Cut ===

Eugene




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Проза - Олег Легчилин. Прекрасный день.
TOP 13 - Лучшая тринашка системных программ.
Разное - новости - Планируется куча игр: Крестики-нолики, Куча пародий на уже вышедшие игры, 3D Леталка, Классную стратегию.
Ресурсы - ZX-Spectrum: ресурсы в Интернет - 3...
Spectrum программинг - Быстрые 3D-расчеты: продвинутый алгоритм.

В этот день...   20 апреля