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 |