Rev 370 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?
AY-PRN подключение принтера.
(www.NedoPC.com 2011)
Простое подключение принтера к интерфейсным портам AY38910 или YM2149.
Таким же образом можно подключить принтер к портам TurboSoundFM.
NedoPC рекомендует такое подключение принтера к ZXEvo rev.B
Принципиальная схема.
┌──┬───┬──┐ Замечания:
AYA0────────┤D0│REG│Q0├────────DATA0 * ИР22 используется исключительно в режиме буфера
AYA1────────┤D1│ │Q1├────────DATA1 (от io порта А AY38910 в интерфейс принтера).
AYA2────────┤D2│ │Q2├────────DATA2 Поэтому можно заменить на любой, имеющийся в
AYA3────────┤D3│ │Q3├────────DATA3 наличии буферный элемент (АП5, АП6).
AYA4────────┤D4│ │Q4├────────DATA4
AYA5────────┤D5│ │Q5├────────DATA5
AYA6────────┤D6│ │Q6├────────DATA6
AYA7────────┤D7│ │Q7├────────DATA7
├──┤ ├──┤
┌──┤LE│ │OEo──┐
+5v<──0──┤V │D01│G ├──0
└──┴───┴──┘ │
ИР22 ─┴─
(373)
┌──[10K]──>+5v Замечания:
│ ┌───┐ ┌───┐ * Для работы большинства програм с принтером
AYB0────0──┤1 O──┤1 O────────STROBE достаточно использовать только управляющие
└───┘ └───┘ сигналы STROBE и BUSY.
┌───┐ * ЛН1 можно заменить на любые инвертирующие
AYB5────[680]───0 1├──────────PAPER END элементы (ЛА3,ЛЕ1).
└───┘
┌───┐
AYB6────[680]───0 1├──────────ERROR
└───┘
┌───┐
AYB7────[680]───0 1├──────────BUSY
└───┘
ЛН1
(04)
Принцип работы.
* Через io порт A происходит передача текущего байта данных принтеру.
* Через io порт B происходит установка строба (активный низкий уровень) для принтера
и анализ состояния принтера.
* Сигнал BUSY имеет состояние эквивалентное логической 1, когда принтер занят.
* Сигнал ERROR имеет состояние эквиалентное логическому 0, когда ошибка со стороны принтера.
* Сигнал PAPER END имеет состояние эквивалентное логической 1, когда бумага кончиласьу принтера.
Минимальный алгоритм работы.
1. Инициализация.
1.1. В случае TS или TSFM, установить текущим чип к портам которого подключен принтер.
1.2. Записать в io порт B значение 0.
1.3. Установить io порта A на передачу, io порт B на прием
(с помощью внутреннего регистра 7 у AY).
2. Вывод символа.
2.1. Анализируем состояние сигнала BUSY (проверяем значение 7бита io порта B,
если бит установлен в 1 значит идем дальше).
2.2. Записываем код символа в io порт A.
2.3. Устанавливаем io порты на передачу (при этом уровень на сигнале STROBE
установится в логический 0).
2.4. Выдерживаем необходимый принтеру таймаут строба.
2.5. Устанавливаем io порт B на прием.
3. Переходим к пункту 2 для вывода на печать следующего символа.