Питающее напряжение на разъем Х1
программатора подают от внешнего источника. Им может быть, например, сетевой
адаптер видеоприставки "SEGA Mega Drive-II". Хотя при номинальной
нагрузке (1 А) его выходное напряжение не превышает 11В, при токе 70...90мА,
потребляемом программатором, оно возрастает до 14...15 В.
Напряжение 5 В для питания микросхем
(в том числе программируемой) получают с помощью интегрального стабилизатора
DA1. Напряжение на выходе стабилизатора DA2 при низком логическом уровне на
выводе 18 шинного формирователя DD7 – 12 В. Точное значение устанавливают
подстроечным резистором R21. При высоком логическом уровне на выводе 18 открывшийся
транзистор VT2 подключает параллельно R21 еще один подстроечный резистор R19,
что уменьшает выходное напряжение стабилизатора DA2 до 5 В.
Скорость нарастания напряжения на
выходе стабилизатора после смены высокого уровня на выводе 18 DD7 на низкий
зависит от емкости конденсатора С14. При слишком большой его емкости и высокой
скорости работы управляющего компьютера несколько младших ячеек FLASH-памяти
микроконтроллера могут оказаться запрограммированными с ошибками.
Выходное напряжение стабилизатора DA2
поступает на вывод 31 (EA/VPP) панели XS2 непосредственно, а на вывод 1 панели
XS1 (RST/VPP) – через ключ на транзисторе VT1. При напряжении 12 В ключ открыт
независимо от логического уровня на выводе 16 регистра DD2. а при 5 В –
только в случае, если этот уровень низкий.
Пониженная яркость свечения светодиода
HL2 свидетельствует о напряжении 5 В на выходе DA2 и о том, что
программируемая микросхема нахо-
дится в режиме считывания кодов из ее памяти.
В режиме стирания и записи в память напряжение возрастает до 12 В, яркость
светодиода заметно увеличивается. Это справедливо для всех микроконтроллеров,
кроме тех, которым напряжение 12 В не требуется. При программировании двадцати
выводных микроконтроллеров будет включен и светодиод HL1.
Вилку Х2 программатора соединяют с
розеткой LPT-порта IBM-совместимого компьютера кабелем длиной до 2 м. В
компьютере должен быть включен расширенный режим работы LPT-порта (ЕСР/ЕРР). В
современных системных блоках он действует по умолчанию. Если это не так, режим
порта можно изменить, запустив при начальной загрузке компьютера программу
BIOS SETUP (пункты меню "Integrated Peripherals"– "Parallel Port
Mode").
1.2. Модернизация схемы.
При питании от маломощного сетевого
адаптера и пониженном сетевом напряжении на программатор может поступать всего
12...13 В. Для стабилизатора DA1 такая ситуация благоприятна (на нем
рассеивается меньшая мощность). А вот стабилизатор DA2 может выйти из рабочего
режима, в результате чего напряжение, подаваемое на программируемый
микроконтроллер, упадет ниже допустимых 11,5 В. Опыт показывает, что микросхемы
фирмы Atmel успешно программируются и при 10,5 В. Однако гарантировать этого
нельзя.
Если применить в стабилизаторе микросхему
КР1184ЕН2 или ее прототип LP2951CL фирмы National Semiconductor (имеется на
многих материнских платах компьютеров), можно добиться надежной работы программатора
при уменьшении напряжения питания до 11,8 В.
Стабилизатор собирают по схеме, изображенной
на рис. 2, и подключают к показанным на рис. 1 точкам А, Б и В. Микросхема
DA2, транзистор VT2, резисторы R18–R21 и конденсатор С14 из программатора
должны быть исключены.
Диод VD1 (см. рис. 2) при высоком
логическом уровне в точке А закрыт, и выходное напряжение 5±0,03 В задает
прецизионный делитель напряжения, находящийся внутри микросхемы DA1. При низком
уровне в точке А диод открыт, резисторы R1 и R2 шунтируют одно из плеч
внутреннего делителя. Выходное напряжение возрастает до 12 В (его регулируют
подстроечным резистором R2). Конденсатор С1 подавляет выбросы напряжения при
переходных процессах. Его емкость (аналогично конденсатору С14 на рис. 1) не
должна быть слишком большой.
Микросхема КР1184ЕН2 имеет внутренний
детектор понижения выходного напряжения, который срабатывает при его
уменьшении более чем на 5 % от установленного значения. В результате
открывается транзистор VT1 и включается светодиод HL1. Нагрузочная способность
выхода невелика, поэтому номинал резистора R4 уменьшать нельзя.
1.3. Параллельный интерфейс: LPT-порт.
Порт параллельного интерфейса был
введен в PC для подключения принтера –LPT-порт (Line PrinTer – построчный
принтер).
Адаптер параллельного интерфейса
представляет собой набор регистров, расположенных в пространстве ввода/вывода.
Регистры порта адресуются относительно базового адреса порта, стандартными
значениями которого являются 3BCh, 378h и 278h. Порт имеет внешнюю 8-битную
шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов.
BIOS поддерживает до четырех LPT-портов (LPT1-LPT4) своим сервисом –
прерыванием INT 17h, обеспечивающим через них связь с принтерами по интерфейсу
Centronics. Этим сервисом BIOS осуществляет вывод символа, инициализацию
интерфейса и принтера, а также опрос состояния принтера.
Традиционный порт SPP (Standard
Parallel Port) является однонаправленным портом, на базе которого программно
реализуется протокол обмена Centronics. Порт обеспечивает возможность
вырабатывания запроса аппаратного прерывания по импульсу на входе Аск#.
Сигналы порта выводятся на разъем DB-25S (розетка), установленный
непосредственно на плате адаптера (или системной плате) или соединяемый с ней
плоским шлейфом.
Стандартный порт имеет три 8-битных
регистра, расположенных по соседним адресам в пространстве ввода/вывода,
начиная с базового адреса порта (BASE).
Data Register (DR) – регистр данных,
адрес = BASE. Данные, записанные в этот порт, выводятся на выходные линии
интерфейса (контакты разъема: 2 – 9). Данные, считанные из этого регистра, в
зависимости от схемотехники адаптера соответствуют либо ранее записанным
данным, либо сигналам на тех же линиях.
Status Register (SR) – регистр
состояния, представляющий собой 5-битный порт ввода сигналов состояния принтера
(биты SR.4-SR.7), адрес = BASE+1. Бит SR.7 инвертируется – низкому уровню
сигнала соответствует единичное значение бита в регистре, и наоборот.
Назначение бит регистра состояния (в
скобках даны номера контактов разъема):
SR.7 – Busy – инверсные отображения
состояния линии Busy (11);
SR.6 – АСК (Acknowledge) – отображения
состояния линии Аск# (10);
SR.5 – РЕ (Paper End) – отображения
состояния линии Paper End (12);
SR.4 – Select – отображения состояния
линии Select (13). Единичное значение соответствует сигналу о включении
принтера;
SR.3–Error – отображения состояния
линии Error (15);
SR.2 – PIRQ – флаг прерывания по
сигналу Аск# (только для порта PS/2). Бит обнуляется, если сигнал Аск# вызвал
аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу
и после чтения регистра состояния.
SR[1-0] – зарезервированы.
Control Register (CR) – регистр
управления, адрес = ВА5Е+2. Как и регистр данных, этот 4-битный порт вывода
допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет
тип открытый коллектор. Это позволяет более корректно использовать
линии данного регистра как входные при программировании их в высокий
уровень. Биты 0, 1, 3 инвертируются – единичному значению в регистре соответствует
низкий уровень сигнала, и наоборот.
Назначение бит регистра управления:
CR[7-6] – зарезервированы.
CR.5 – Direction – бит управления
направлением передачи (только для портов PS/2). Запись единицы переводит порт
данных в режим ввода.
CR.4 – ACKINTEN (Ack Interrupt Enable)
– единичное значение разрешает прерывание по спаду сигнала на линии Ackff –
сигнал запроса следующего байта.
CR.3 – Select In – единичное значение
бита соответствует низкому уровню на выходе Selecting (17) – сигналу,
разрешающему работу принтера по интерфейсу Centronics.
CR.2 – Init – нулевое значение бита
соответствует низкому уровню на выходе Imt# (16) – сигнал аппаратного сброса
принтера.
CR.1 – Auto LF – единичное значение
бита соответствует низкому уровню на выходе Auto LF# (14) – сигналу на
автоматический перевод строки (LF – Line Feed) по приему байта возврата каретки
(CR – Carriage Return).
CR.0 –Strobe – единичное значение бита
соответствует низкому уровню на выходе Strobeff (1) – сигналу стробирования
выходных данных. Запрос аппаратного прерывания (обычно IRQ7 или IRQ5)
вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема
интерфейса (Аск#) при установке CR.4 = 1. Прерывание вырабатывается, когда
принтер подтверждает прием предыдущего байта.
Стандартный порт сильно асимметричен –
при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает
только 5 линий состояния. Если необходима симметричная двунаправленная связь,
на всех стандартных портах работоспособен режим полубайтного обмена – Nibble
Mode. В этом режиме, называемым также и Hewlett Packard Bitronics, одновременно
передаются 4 бита данных, пятая линия используется для квитирования.
В процессе начального тестирования BIOS
проверяет наличие параллельных портов по адресам 3BCh, 378h и 278h и помещает
базовые адреса обнаруженных портов в ячейки BIOS DATA AREA 0:0408h, 040Ah,
040Сh, 040Еh. Эти ячейки хранят адреса портов с логическими именами LPT1-LPT4.
В ячейки 0:0478h, 0479h, 047Аh, 047Вh заносятся константы, задающие выдержку
тайм-аута для этих портов.
Поиск портов обычно ведется по базовому
адресу. Если считанный байт совпал с записанным, считается, что найден
LPT-порт, и его адрес помещают в ячейку BIOS DATA AREA. Адрес порта LPT4 BIOS
самостоятельно установить не может, поскольку в списке стандартных адресов
поиска имеются только три вышеуказанных.
Обнаруженные порты инициализируются –
записью в регистр управления формируется и снимается сигнал Initff, после чего
записывается значение 00h, соответствующее исходному состоянию сигналов
интерфейса. Программное прерывание BIOS INT 17h обеспечивает следующие функции
поддержки LPT-порта:
00h – вывод символа из регистра AL по
протоколу Centronics. Данные помещаются в выходной регистр и после готовности
принтера формируется строб.
01h – инициализация интерфейса и
принтера.
02h – опрос состояния принтера.
При вызове INT 17h номер функции
задается в регистре АН, номер порта – в регистре DX (0 – LPT1, 1 – LPT2...).
При возврате после любой функции регистр АН содержит код состояния – биты
регистра состояния SR[7:3] (биты 6 и 3 инвертированы) и флаг тайм-аута в бите
0. Флаг тайм-аута устанавливается при неудачной попытке вывода символа. Недостатки
стандартного порта частично устраняют новые типы портов, появившихся в компьютерах
семейства PS/2.
Двунаправленный порт (Type 1 parallel
port) – интерфейс, введенный с PS/2. Такой порт кроме стандартного режима может
работать в режиме ввода или двунаправленном. Протокол обмена формируется
программно, а для указания направления передачи в регистр управления порта
введен специальный бит: при CR.5=0 буфер данных работает на вывод, при CR.5=1 –
на ввод.
Порт с прямым доступом к памяти (Туре 3
DMA parallel port) применялся в PS/2 моделей 57, 90, 95. Этот тип был введен
для повышения пропускной способности и разгрузки процессора при выводе на
принтер. Программе, работающей с данным портом, требовалось только задать блок
данных в памяти, подлежащих выводу, и вывод по протоколу Centronics
производился без участия процессора.
1.4. Детали и конструкция.
Программатор собран на двусторонней
печатной плате размерами 140x140 мм. Можно собрать программатор и на макетной
плате навесным монтажом. Учтите, что конденсаторы С4, С5 и кварцевый резонатор
ZQ1 должны быть расположены как можно ближе к контактам 18, 19 панели XS2.
Свободные входы микросхем DD1 (выводы 13–15), DD2 (вывод 8) и DD7 (выводы 15,
17) необходимо соединить с их общим выводом или выводом питания. Это повысит
помехоустойчивость прибора.
Все цифровые микросхемы можно заменять
их функциональными аналогами серий К555, КР1533 или импортными. Транзисторы
VT1, VT2 – любые маломощные соответствующей структуры, желательно с минимальным
падением напряжения на участке коллектор–эмиттер открытого транзистора.
Подстроечные резисторы R19, R21 –
СПЗ-19А. Наборы резисторов DR1–DR3 – НР1-4-9М могут быть заменены на НР1-4-8М,
на зарубежные серии 9А или на соответствующее число обычных малогабаритных
резисторов указанных на схеме номиналов. Резисторы R1–R12 можно разместить
внутри корпуса вилки Х2.
Панели XS1 и ХS2 должны выдерживать
многократную установку и изъятие микросхем. Лучше всего применить ZIF-панели (с
нулевым усилием установки), предназначенные для микросхем с расстоянием между
рядами контактов 7,5 мм (XS1) и 15 мм (XS2). Годятся и универсальные панели,
допускающие установку как "узких", так и "широких" микросхем.
Учитывая, что ZIF-панели в несколько
раз дороже всех остальных деталей программатора, вместе взятых, на плате
предусмотрены контактные площадки для установки обычных, желательно с
цанговыми контактами. Применять самые дешевые панели с плоскими контактами
нежелательно. После многочисленных замен микросхемы такие контакты теряют надежность.
1.5. Выбор серии интегральных микросхем.
Выбор серии ИС для селектора
выбора программ будем производить по матрице параметров. Выделим 3 наиболее
подходящие серии: К155, К531 и К555. Качество серий будем оценивать по
следующим параметрам: время задержки, потребляемый ток, коэффициент
разветвления, коэффициент помехоустойчивости, условия эксплуатации (диапазон температур,
вибрации, многократные удары) и стоимости. Определим коэффициенты значимости
параметров и сведем все данные в таблицу 3.
|