Rev 370 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
370 | chrv | 1 | AY-PRN подключение принтера. |
2 | (www.NedoPC.com 2011) |
||
3 | |||
4 | Простое подключение принтера к интерфейсным портам AY38910 или YM2149. |
||
5 | Таким же образом можно подключить принтер к портам TurboSoundFM. |
||
6 | NedoPC рекомендует такое подключение принтера к ZXEvo rev.B |
||
7 | |||
8 | Принципиальная схема. |
||
9 | |||
10 | ┌──┬───┬──┐ Замечания: |
||
11 | AYA0────────┤D0│REG│Q0├────────DATA0 * ИР22 используется исключительно в режиме буфера |
||
12 | AYA1────────┤D1│ │Q1├────────DATA1 (от io порта А AY38910 в интерфейс принтера). |
||
13 | AYA2────────┤D2│ │Q2├────────DATA2 Поэтому можно заменить на любой, имеющийся в |
||
14 | AYA3────────┤D3│ │Q3├────────DATA3 наличии буферный элемент (АП5, АП6). |
||
15 | AYA4────────┤D4│ │Q4├────────DATA4 |
||
16 | AYA5────────┤D5│ │Q5├────────DATA5 |
||
17 | AYA6────────┤D6│ │Q6├────────DATA6 |
||
18 | AYA7────────┤D7│ │Q7├────────DATA7 |
||
19 | ├──┤ ├──┤ |
||
20 | ┌──┤LE│ │OEo──┐ |
||
21 | +5v<──0──┤V │D01│G ├──0 |
||
22 | └──┴───┴──┘ │ |
||
23 | ИР22 ─┴─ |
||
24 | (373) |
||
25 | |||
26 | ┌──[10K]──>+5v Замечания: |
||
27 | │ ┌───┐ ┌───┐ * Для работы большинства програм с принтером |
||
28 | AYB0────0──┤1 O──┤1 O────────STROBE достаточно использовать только управляющие |
||
29 | └───┘ └───┘ сигналы STROBE и BUSY. |
||
30 | ┌───┐ * ЛН1 можно заменить на любые инвертирующие |
||
31 | AYB5────[680]───0 1├──────────PAPER END элементы (ЛА3,ЛЕ1). |
||
32 | └───┘ |
||
33 | ┌───┐ |
||
34 | AYB6────[680]───0 1├──────────ERROR |
||
35 | └───┘ |
||
36 | ┌───┐ |
||
37 | AYB7────[680]───0 1├──────────BUSY |
||
38 | └───┘ |
||
39 | ЛН1 |
||
40 | (04) |
||
41 | |||
42 | Принцип работы. |
||
43 | |||
44 | * Через io порт A происходит передача текущего байта данных принтеру. |
||
45 | * Через io порт B происходит установка строба (активный низкий уровень) для принтера |
||
46 | и анализ состояния принтера. |
||
47 | * Сигнал BUSY имеет состояние эквивалентное логической 1, когда принтер занят. |
||
48 | * Сигнал ERROR имеет состояние эквиалентное логическому 0, когда ошибка со стороны принтера. |
||
49 | * Сигнал PAPER END имеет состояние эквивалентное логической 1, когда бумага кончиласьу принтера. |
||
50 | |||
51 | Минимальный алгоритм работы. |
||
52 | |||
53 | 1. Инициализация. |
||
371 | chrv | 54 | 1.1. В случае TS или TSFM, установить текущим чип к портам которого подключен принтер. |
55 | 1.2. Записать в io порт B значение 0. |
||
56 | 1.3. Установить io порта A на передачу, io порт B на прием |
||
370 | chrv | 57 | (с помощью внутреннего регистра 7 у AY). |
58 | 2. Вывод символа. |
||
59 | 2.1. Анализируем состояние сигнала BUSY (проверяем значение 7бита io порта B, |
||
60 | если бит установлен в 1 значит идем дальше). |
||
61 | 2.2. Записываем код символа в io порт A. |
||
62 | 2.3. Устанавливаем io порты на передачу (при этом уровень на сигнале STROBE |
||
63 | установится в логический 0). |
||
64 | 2.4. Выдерживаем необходимый принтеру таймаут строба. |
||
65 | 2.5. Устанавливаем io порт B на прием. |
||
66 | 3. Переходим к пункту 2 для вывода на печать следующего символа. |
||
67 | |||
68 |