Rev 370 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
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├────────DATA4AYA5────────┤D5│ │Q5├────────DATA5AYA6────────┤D6│ │Q6├────────DATA6AYA7────────┤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 для вывода на печать следующего символа.