Изобретаем жесткий диск. Управление шпинделем. Часть 14.

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

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

Согласно полученным результатам, была обновлена схема, а ее исходник закачан на гитхаб.

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

Нумерация контактов на плате и в схеме отличается добавкой буквы «p» перед номером контакта. Например, номер на разъеме 196, в схеме обозначен как p196.

На рисунке ниже слева плата с технологическими контактами без подключения, а справа с припаянными к ним разъемами. Выполнено подключение двух сигналов к осциллографу.

Технологические разъемы Western Digital

Технологические разъемы Western Digital

Ниже представлен пример экрана осциллографа с активностью пары сигналов на шине: вверху CS3#, а внизу RD#.IMG_0055s

Обнаружил, что уровни сигналов соответствуют 5-и вольтовой CMOS логике, что, как бы, для 1995-ого года совсем не удивительно. Следовательно, STM32 напрямую к плате подключить нельзя. Нужно использовать специальные микросхемы перехода логических уровней.

Удалось найти довольно подробный документ по проблеме перехода 5 вольт — 3 вольта: http://homepage.cem.itesm.mx/carbajal/Microcontrollers/SLIDES/GPIO_Applications.pdf

Ниже картинка из вышеприведенной статьи про схему, которая наиболее подойдет:

3V_to_5V

Далее, закупаем 74LVC4245 и оснащаем ими макет.

Попутно обнаружил, что на 196-ой процессор подается тактовая частота 30 мегагерц (на схеме точка p167).

Микросхема WD61C13A отвечает за управление шпиндельного двигателя.

Из уже разобранного в дизассемблере кода, пока не понятно как именно она управляется, а для замены процессора на современный, понимание этого — первостепенная задача.

Дальнейший план действий такой:

1) сканировать цифровым анализатором обращения к контроллеру шпинделя,

2) посмотреть эти места в коде прошивки управления при помощи дизассемблера,

3) собрать испытательный макет с платой WD21000, процессором STM32 в виде отладочной платы и микросхем переходников логического уровня 74LVC4245,

4) пробовать управлять шпиндельным двигателем.

Не забывайте делать бэкап. До новых встреч!

Поделиться ссылкой на пост в соц. сетях

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *