Из журнала Adventurer#13, Ярославская область, г.Рыбинск, ? Матлаш Владислав Хочу поделиться с читателем дорабо- танной мною схемой IDE-HDD адаптера, же- лающим, но еще не решившим подключить ви- нчестер или CD-ROM и не желающим возиться с дискетами и для тех, чья работа связана с большим объемом информации... Схема IDE-HDD адаптера
Принцип работы схемы Данная схема позволяет подключить до двух накопителей на жестких магнитных ди- сках (НЖМД) практически любой емкости, а также других устройств, рассчитанных на интерфейс АТА (IDE). Схема состоит из четырех основных частей: 1. Дешифратора портов ввода/вывода устройства IDE, выполненного на микросхе- мах DD6 (ИД7) и DD7 (ИД7). 2. Блока защелкивания старшего байта слова шины данных [D15: D8] устройства, выполненного на 8-разрядных регистрах DD1 (ИP23) (для чтения данных от устройства) и DD2 (ИP23) (для передачи данных к уст- ройству). 3. Двунаправленного 8-разрядного бу- фера DD3 (АП6) для формирования младшего байта слова шины данных [D7: D0]. 4. Pегистра DD4 (ИP22) для буфериза- ции сигналов управления устройством DA0, DA1, DA2, DIOW#, DIOR#, RES#. Дешифратор DD6 (ИД7) формирует сиг- нал лог. 0 на выходе [10], разрешающий работу дешифратора DD7 (ИД7), который вы- рабатывает сигналы (см. табл. 1): - WWC# - строб записи данных от хос- та в регистр DD2 (ИP23); - WWE# - разрешение выставления дан- ных [D15: D8] на шину устройства от реги- стра DD2 (ИP23); - CS1# - выбор блока управляющих ре- гистров устройства; - RWE# - разрешение выставления на шину данных регистром DD1 (ИP23) старшего байта слова [D15: D8] от устройства; - RWW# - указывает буферу DD3 (АП6) направление передачи данных. При низком активном уровне данные [D7: D0] принимаю- тся от устройства. Элемент 2-И микросхемы DD5 (ЛИ1) предназначен для формирования из сигналов WWE# и RWW# сигнала выбора блока команд- ных регистров CS0#. Таблица 1. Состояние дешифратора DD7 (ИД7) +-----------+---------------------------------------+ |Вх. сигнал | Выходной сигнал | +---+---+---+----+----+----+----+----+----+----+----+ |WR#|A7 |A8 | - | - |RWE#|RWW#|CS1#| - |WWE#|WWC#| +---+---+---+----+----+----+----+----+----+----+----+ |A2 |A1 |A0 | 7# | 6# | 5# | 4# | 3# | 2# | 1# | 0# | +---+---+---+----+----+----+----+----+----+----+----+ | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | +---+---+---+----+----+----+----+----+----+----+----+ | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | +---+---+---+----+----+----+----+----+----+----+----+ Краткая инструкция по сборке и настройке При правильной сборке и исправных комплектующих настройка адаптера не тре- буется, но если Вам не повезло и приобре- тенная элементная база оставляет желать лучшего, советую прочесть данную инструк- цию. Для выявления неисправностей и про- верки правильности сборки нужна следующая измерительная аппаратура: - вольтметр или тестер (мультиметр); - логический пробник (на тот случай, если нет осциллографа). Прежде чем настроить адаптер, необ- ходимо произвести его сборку. Для этого потребуется фольгированный двухсторонний стеклотекстолит размером 75х95 мм., на двух сторонах которого про- царапывают под линейку шины питания и ме- ста для припаивания микросхем и разъемов СHП58-64/94х9В и ОHП-КГ-56-40-В53 соглас- но (рис. 2). Для процарапывания фольги я исполь- зую резец, изготовленный из прослужившего свой срок полотна от пилы по металу, об- резав его до нужной длины и предав на шлифовальном круге одной из сторон вид заточенного "когтя" (см. рис. 1).
Pис. 1. Вид резца Для уменьшения поиска неисправностей проверяют отсутствие замыканий и обрывов проводников на плате, используя тестер. Установить микросхемы, разъемы и запаять их. При этом рекомендую пользоваться пая- льником с занулением и флюсом (глицерин + хлорамоний с соотношением 95% к 5%). Пе- ред запаиванием микросхем плату желатель- но залудить припоем ПОС-62 во избежание нежелательного окисления медной фольги. На зарезервированную площадь стороны "А" платы подать потенциал земли (GND). Монтаж проводников ведут проводом МГТФ-0.3 согласно схемы, для фиксации ко- торого на плате следует использовать нап- равляющие кольца из медного провода диа- метром 0.5 мм, припаянных перпендикулярно к шине питания. На каждую микросхему ре- комендуется установить блокировочный кон- денсатор 0.1 мкФ по питанию для исключе- ния паразитных помех. На шину питания же- лательно установить электролитический ко- нденсатор емкостью 20 мкФ х 6.3 В.
Pис. 2. Чертеж платы адаптера После проверки тестером правильности монтажа проводников и на отсутствие замы- каний выводов микросхем, плату промывают от флюса под проточной горячей водой (ес- ли не пользовались канифолью) и дают ей высохнуть. Следует отметить то, что обрыв и за- мыкания сигналов могут быть не только ме- жду проводниками платы, а еще и внутри самих микросхем. Далее для подключения адаптера сле- дует выполнить следующие действия: 1. Вставить адаптер в свободный ин- терфейсный разъем компьютера. 2. Подключить 40-контактный разъем шлейфа диска IDE. Самыми распространенны- ми ошибками подключения шлейфов являются переворот разъема на 180 градусов и боко- вое или продольное смещение контактов. От этих ошибок спасает пластмассовый ободок, окружающий штырьки наиболее качественных разъемов, и его ключевая прорезь. Однако с ключами случаются и конфузы: бывает, что разъем шлейфа, имеющий ответный клю- чевой выступ, на шлейф наколот неправиль- но. Тогда для правильного соединения этот выступ приходится срезать (это проще, чем качественно переколоть разъем). Я сам ли- чно столкнулся с этой проблемой подключая IDE шлейф к винчестеру. 3. Подключить индикатор обращения к жесткому диску "HDDLED" в двухштырьковый разъем на плате адаптера. Правильно подк- лючить разъем можно во время загрузки с жесткого диска - при этом индикатор дол- жен мигать. Для проверки правильности всего подключения наберите: 10 PRINT AT 0,0; IN 117; " ": GO TO 10 Если все правильно, то после прохож- дения внутреннего теста устройством, на экране должно мерцать число 80. Данное описание по настройке очень краткое из-за невозможности отразить все- возможные неисправности и варианты сборки адаптера. Оно служит алгоритмом сборки и запуска, ограничиваясь лишь некоторыми советами. Программное управление Для программного взаимодействия с устройствами, подключенными к адаптеру, в свободном адресном пространстве ввода/вы- вода компьютера была выбрана область ад- ресов портов (см. рис. 3), исключающая возможность перекрытия уже используемой адресации портов. Для этого был проделан анализ существующих, ставших стандартом, адресов портов ввода/вывода как в корот- кой (для дешифрации используется только младшая часть адресной шины [А7: А0]) так и в длинной адресации (используется вся ширина шины адреса [А15: А0]). A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 +---+---+---+---+---+---+--+--+--+--+--+--+--+--+--+--+ | X | X | X | X | X | X | X| n| n| n| n| n| 0| 1| 0| 1| +---+---+---+---+---+---+--+--+--+--+--+--+--+--+--+--+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | +--+--+--+->Выбор | | | | | | | | | | | | адаптера | | | | | | | +--+--+--+--+->Выбор регистров | | | | | | | | устройств +---+---+---+---+---+---+--+->Старшая часть адреса порта используется как счетчик (содержимое рег. В) байт при использовании команд ввода или вывода Pис. 3. Организация порта выбора ре- гистров устройств IDE Пространство портов ввода/вывода адаптера выбрано таким образом, что поя- вилась возможность использовать автомати- ческие команды ввода/вывода МП Z80. Достоинство их применения в том, что уменьшается кол-во тактов процессора (соответственно и времени), затрачиваемых при операциях обмена данными с устройст- вом, и экономится память для программы-д- райвера. Но их использование не ограничи- вает применение обычных, а также полуав- томатических команд ввода/вывода, раскры- вающих цикл обмена, что еще значительно увеличит скорость. ;Пример подпрограммы чтения сектора идентификации устройства ORG #C000 INSTL DI L2 LD A,#FE IN A,(#75) ;Регист состояния CP #50 JR Z,L1 ;Ошибок нет CALL #1F54 ;Проверка нажатия BREAK RET NC JR L2 L1 LD BC,#FE75 L3 IN A,(C) RLCA JR C,L3 ;Ждем готовность устройства LD A,#EC ;Команда INC B OUT (C),A ;Pегистр команд DEC B L5 IN A,(C) BIT 7,A JR Z,L4 ;Принимаем пакет 256 слов CALL #1F54 RET NC JR L5 ;Ждем ответ L4 LD BC,#0005 ;Pегист данных LD HL,50000 ;Адрес приема информации XOR A ;Счетчик на 256 циклов L6 INC HL IND ;Читаем [D7: D0] INI ;Читаем [D15: D8] INC HL ;т.к. байты здесь перевернуты DEC A JR NZ,L6 RET ;Успешный выход Следует помнить, что обращение к ре- гистрам устройства должно вестись по пол- ной адресации т.е. А15-А0. Фрагмент чтения сектора данных К-во тактов Z80 К-во байт . . . LD HL, адрес буфера 10 3 LD BC,#0005; Адрес порта 10 3 INIR (INI 256 команд) 21/16 2 INIR (INI 256 команд) 21/16 2 . . . ----- --- Итого: 10762 10 При раскрытом цикле: 8212 518 Фрагмент записи сектора данных К-во тактов Z80 К-во байт . . . LD HL, адрес буфера 10 3 LD BC,#0005 10 3 XOR A 4 1 LOOP INC HL 6 1 OUTD 16 2 OUTI 16 2 INC HL 6 1 DEC A 4 1 JR NZ,LOOP 12/7 2 . . . ----- -- Итого: 15331 16 Адресное пространство портов ввода/вывода При чтении [D7: D0] старшая часть адреса порта четная, при чтении только данных [D15: D8] не четная: #05 Pегистр данных #15 Pегистр ошибок #25 Pегистр счетчика секторов #35 Pегистр номера сектора #45 Pегистр младшего байта номера цилиндра #55 Pегистр старшего байта номера цилиндра #65 Pегистр номера устройства и головки #75 Pегистр состояния При записи [D7: D0] старшая часть адреса не четная, при записи только дан- ных [D15: D8] четная: #05 Pегистр данных #15 Pегистр свойств #25 Pегистр счетчика секторов #35 Pегистр номера сектора #45 Pегистр младшего байта номера цилиндра #55 Pегистр старшего байта номера цилиндра #65 Pегистр номера устройства и головки #75 Pегистр команд #E5 Pегистр управления устройством, только [D7: D0] P. S. Собрав схему и убедившись на практике в ее работоспособности, я поста- рался как можно подробнее описать принцип ее работы и технологию моей сборки. Если кто-нибудь может помочь мне в написании оконного файлового HDD-FDD на- вигатора для программной потдержки схемы или возникли вопросы пишите: FidoNet: 2:4635/99.111 В письме указать: Владиславу Почта: Украина, 18002 г. Черкассы ул. Ленина 10, кв. 6 Матлашу Владиславу