Изобретаем жесткий диск. STM32 Nucleo-64. Часть 19.

После перерыва в год, мы выпускаем новую публикацию по исследованию WD21000. Такая длительная пауза была обусловлена постепенным усилением технологической базы всех проводимых исследований, как программных, так и аппаратных. Итак, после того, как уровень поднят, можно пользоваться наработками.

Начнем с того, что обновлена принципиальная схема. Уточнено подключение процессора 80С196.

А еще вкусного в этом посте то, что он сопровождается ассемблер-листингом из IDA базы на github.

Итак, пришло время задействовать анализатор. Подключение к шине процессора рассматривалось тут (часть 16).

Теперь, хорошо бы понять, как идет управление шпиндельным двигателем, а именно: разгон, стабилизация скорости и торможение. Плюс еще в микросхеме WD61C13A находится синтезатор частоты. Возможно, он как-то тоже управляется. Полученные знания попробую протестировать на макете — при помощи подключенного к этой микросхеме процессора STM32 (Часть 15)

Еще важный момент. У автора этого опуса нет глубоких знаний ассемблера процессора 80С196, так как он никогда не писал на нем программы и не отлаживал их. Нет коллекции библиотек и исходников для него, чтобы что-то посмотреть по аналогии. Автор знакомится с героем своего повествования по мере написания этого текста. Поэтому, набираться опыта и знаний нужно по схеме: смотрим анализатором, как работает и ищем это в коде. Находим — хорошо! Пытаемся понять зачем. А вот если не находим, то отмечаем, что есть какое-то непонимание. Формулируем вопрос и заносим его в список неизвестного.

Для решения задачи потребуется прибор, назовем его «счетчик/синхронизатор». Проблема в том, что анализатор ловит случайный пакет по входу синхронизации. Не получается посмотреть, например, первый от включения диска запрос к интересующей микросхеме, второй и так далее.

Чтобы посмотреть номерные обращения нужен счетчик импульсов сигнала «CS3#», который когда досчитает до заданного номера выдаст сигнал синхронизации. А уже от этого сигнала сработает анализатор и запишет кадр.

Проект счетчика/синхронизатора сделан в среде Arduino под плату STM32 Nucleo-64, F091RC.

Исходный код программы на github.

Для того, чтобы среда разработки Arduino могла работать с STM32 нужно поставить соответствующий модуль.

Используется аппаратный таймер в режиме счета импульсов, поступающих на вход «D2».

В процедуре void InputCapture_IT_callback(void) есть условие вида:

« if(isInputCapture >= 9) {», где число 9 задает количество отсчетов до срабатывания выхода «D4».

Процесс постановки опыта по записи осциллограммы одного обращения по сигнал CS3#:

1) установить значение условия срабатывания;

2) собрать и загрузить программу в плату;

3) запускать кнопкой RUN/STOP осциллограф в режим ожидания сигнала триггера;

4) подавать питание на жесткий диск.

Тестовая установка:

IMG_0963s

Continue reading

Конструкция интерфейса SATA. Часть 5.

В этой части продолжим обзор возможностей анализатора интерфейсов SAS и SATA фирмы LeCroy, который был обозначен в третей части повествования про интерфейс SATA.

Классическое и вполне очевидное использование анализатора — это установить его в разрез кабеля соединяющего компьютер и жесткий диск, как показано на фото:

20220228_225812s

Но, оказалось, что модуль SAS001MA в этом анализаторе предназначен для генерации SAS / SATA трафика как контроллера, так и накопителя. Реализация описана в SASSuite_User_Manual.pdf, Chapter 12: Traffic Generation with SAS Trainer.

Continue reading

Конструкция интерфейса SATA. Часть 4.

Исследование просторов интернета показало, что SATA контроллера с полным исходным кодом для ПЛИС (FPGA), в виде недорогой железки, которая, при этом, еще и сразу работает, нет!

Пересмотрев на github.com весь ассортимент того, что с виду напоминает SATA host контроллер, я подобрал несколько проектов, представляющих интерес:

(1) https://github.com/CoreyChen922/sata_2_host_controller

(1.1) форк : https://github.com/danieltangdx/sata_2_host_controller

(2) https://github.com/freecores/sata_controller_core

(3) https://github.com/Siprj/sata-fpga

Первый проект под Virtex5 даже не собирается, так как не хватает файлов.

Проект по ссылке 1.1 содержит удаленный из первого проекта файл тестовой схемы system.mhs. С ним собирать пока не пробовал.

Второй исходник для Virtex6 под который есть отладочная плата. Плюс там есть довольно подробный тестовый проект с внутрисхемным анализатором ChipScope.

Теперь с этим набором вводных данных пробую разобраться. Сделал тестовые проекты с ChipScope отладкой под Virtex-6 плату и Wukong Artix-7 (от компании ChinaQMTECH). Они выложены в репозитории R.lab. Там, пока что, только вариант VHDL. Xilinx инструментарий ISE 14.7, так как поддерживаются старые микросхемы, которых уже нет в Vivado.

Continue reading

Беседы о носителях информации на youtube-канале R.LAB — 5

На нашем канале YouTube представлен пятый видеоролик серии «Беседы о носителях информации» — Жёсткий диск глазами исследователя 5: технология медиакэш, ответы на вопросы

Беседы о носителях информации на youtube-канале R.LAB — 4

Выложен очередной видеоролик серии «Беседы о носителях информации» — Жёсткий диск глазами исследователя 4: PC-3000, трансляция SMR и многое другое https://youtu.be/pKY2ZqrH0-o

Беседы о носителях информации на youtube-канале R.LAB — 3

На нашем канале представлен третий видеоролик серии «Беседы о носителях информации» — Жёсткий диск глазами исследователя 3: HDD SMR — черепичная запись https://youtu.be/2iZaIivWHkI

Беседы о носителях информации на youtube-канале R.LAB — 2

На нашем канале YouTube выложен второй видеоролик серии «Беседы о носителях информации» — Жёсткий диск глазами исследователя 2: интерфейсы, SATA умер https://youtu.be/IMWEyuW2G2g

Беседы о носителях информации на youtube-канале R.LAB

На нашем канале новая серия видеороликов «Беседы о носителях информации», в которой будет излагаться основная и продвинутая информация по жёстким дискам, рассматриваться каверзные вопросы вместе с сотрудниками R.LAB.

Первый ролик серии посвящён дефектам поверхности жёстких дисков https://youtu.be/eIH39GLBVWs

PC 3000 восстановление данных с зависающего жесткого диска Seagate 7200.12

Диск Seagate 7200.12 не определяется при запуске компьютера. В ролике показан процесс восстановления данных с него при помощи программно-аппаратного комплекса PC-3000. Проблема в этом диске Seagate DOS-файлом + сбоем автоматического скрытия дефектов хоть и редкая, но иногда в практике восстановления информации попадается.

https://youtu.be/c0fK5gCbajc