Изобретаем жесткий диск. Часть 8. Серводемодулятор.

А вот и потерявшаяся часть 8, которая идет после 9-ой!

В нашем распоряжении имеется документация от микросхемы AD7775, но в исследуемом нами диске установлена ADSC900JR с виду очень напоминающая первую. Есть ли между ними схожие функции и отличающиеся? Давайте разбираться.

Микросхема ADSC900JR установленная на плате WD 21000

Микросхема ADSC900JR установленная на плате WD 21000

Continue reading

Изобретаем жесткий диск. Часть 9. Первый орден/макет.

Как обычно, орда/империя хочет похитить секрет бессмертия/магнитной записи у заокеанских и не очень джедаев 🙂

После некоторого перерыва продолжаем разбирать старый WD21000 емкостью аж целый гигабайт! Но теперь мы, кроме как разбирать, будем рядом еще постепенно собирать обратно. Правда, автор еще пока не располагает достаточным количеством дисков из семейства нашего подопытного. Но, думаю, это решится в ближайшие месяц/два. А пока есть много, что еще поделать.

В таком вот акцепте, я запланировал собрать два макета.

Первый макет нужен для непрерывного считывания большого потока информации, как цифровой, так и аналоговой в персональный компьютер (около 100-150 мегабайт/сек) через USB 3.0.

Для аналогового сигнала был выбран АЦП Analog Device AD6645 для которого на Aliexpress продается отличная демонстрационная плата. Она там одна, так что кому нужно без труда ее найдут.

Вот так она пришла от продавца:

Посылочка с Aliexpress

Посылочка с Aliexpress

Continue reading

PC 3000 зависающие HDD на примере Seagate

Сегодня мы продолжим разговор про проблему зависающих дисков и рассмотрим жесткий диск Seagate. Посмотрим как он себя ведет.

Pic01

Continue reading

PC 3000 зависающие HDD на примере Western Digital

Большинство современных дисков разных производителей имеют общую одинаково проявляющуюся неисправность: по звукам диск запускается как обычно, но при этом либо очень медленно читает данные, либо долгое время висит в состоянии BSY, а после 2-3 минут иногда выдает ошибку, а иногда висит до бесконечности. В качестве примера взят диск модели WD20EARS. Для доступа к данным пользователя используется комплекс ACE Lab PC-3000. В конце заметки видеоролик с демонстрацией всех описанных действий.

Рассмотрим пример зависающего диска. Сначала подаем на него питание. Слышно, что диск калибруется нормально, не стучит, никаких посторонних звуков не выдает, но при этом в готовность не выходит. То есть в регистре состояния индикатор BSY горит постоянно.

WD_SlowResponding_01

Continue reading

Изобретаем жесткий диск. Часть 6а. Видео про технологический режим.

В этой серии при помощи дизассемблера IDA Pro и плагина процессора i80C196NU находим заводскую технологическую команду перезагрузки диска и тестируем ее работу при помощи PC-3000 в режиме ATA commander.

Предыдущий пост серии.

Изобретаем жесткий диск. Часть 7. Схема.

В предыдущих частях мы начали дизассемблирование на основе только документации к процессору. Однако, хорошо бы посмотреть как программа управления связана с остальной аппаратурой. Для этого вооружимся тестером с пищалкой, платой WD21000, документацией на микросхемы и начнем рисовать схему электрических соединений.

Так как в данном исследовании мне хотелось бы по максимуму использовать операционную систему Linux, то рисовать схему будем в KiCad.

Исходные файлы схемы доступны на github проекта. Там же все страницы схемы в формате pdf.

Сначала, я добавил в схему все известные микросхемы. Каждую на свою отдельную страницу и объединил их всех на странице верхнего уровня вот так:

Главная страница схемы WD21000.

Главная страница схемы WD21000.

Continue reading

Обзор функций программы R.tester

В ролике сделан обзор функций программы R.tester на примере SATA и SCSI/Fibre channel дисков. Показан принцип работы debug-контейнеров. Продемонстрирована возможность выполнить SCSI форматирование.

Изобретаем жесткий диск. Часть 6. Технологический режим.

Обмен данными с жестким диском производится через интерфейс IDE, SATA (или какой-либо другой) при помощи стандартизированных команд. Чтобы прочитать данные с диска достаточно использовать всего две команды: идентификации и, собственно, чтения. Первая нужна для получения размера диска и определения типа команды чтения, которая будет работать со всей поверхностью диска.

Если помните, то за историю своего существования жесткие диски преодолевали целый ряд ограничений емкости.

Некоторые из ограничений преодолевались добавлением новой команды чтения с адресом большей разрядности. Следовательно, из идентификации нужно узнать, какая команда чтения позволит получить доступ ко всей поверхности. Кроме стандартных команд, фирма-производитель дисков еще реализует и использует, так называемые, технологические команды. Их можно разделить на три больших класса:

  • информационные,

  • производственные,

  • диагностические.

Рассмотрим эти классы чуть более подробно.

Continue reading

Изобретаем жесткий диск. Часть 5. Дизассемблирование.

Итак, приступим к самому магическому действу, а именно, исследованию прошивки нашего подопытного накопителя. Для этого будем использовать IDA disassembler.

Запускаем сей продукт, выбираем «открыть файл» и указываем файл считанный из ПЗУ(см. часть 3 данного опуса). Далее появляется вот такое окно:

IDA disassembler, load new file

IDA disassembler, load new file

Изменяем тип процессора на «Intel 80196NP». Хотя на нашей плате стоит версия NU, однако, с точки зрения разбора кода программы эти процессоры не отличаются. Нажимаем «ОК».

Continue reading