Из журнала 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
            Матлашу Владиславу