PDA

Просмотр полной версии : Починка КНЖМД ДВК



dk_spb
23.02.2016, 18:19
Кто-нибудь пробовал чинить такую штуку (двухтранзисторную)?
У них, похоже, типовая неисправность - забываеют как читать: при чтении любого сектора ошибка 10000.
То есть форматирование и позиционирование работают, testdw радостно форматирует, но при проверке чтения - ошибка в каждом секторе.
Процессор и ПЗУшки проверены в такой же плате.
Я понимаю что там не две детальки в узле чтения, но может кто-то чинил несколько штук и знает куда в первую очередь смотреть.

- - - Добавлено - - -

Ну и заодно может кто разбирался с программами testdw и tdw?
Например, есть две разные tdw 05.10 (50 и 51 блок). Они и по меню разные и форматируют по разному.

MM
23.02.2016, 20:05
Вроде как господин andyTh осуществлял квалифицированный ремонт КЖД на Фанто-Саннате в прошлом году, с заменой специфических ИС.

ИМХО - если входы на плате целы, то это как искать иголку в стоге сена.

bigral
23.02.2016, 22:14
Интересно, у меня есть один mfm hdd который ведет себя именно так, типа как форматирует а читать не может. Знаю что на выходе стоят хитрые преобразователи TTL в "дифференциальный" уровень сигнала. Вполне возможно начать с того что проверить доходит ли сигнал до контроллера от самого HDD и что на выходе приемника (должен же быть TTL сигнал по идее).

Есть предположение что эти самые дифференциальные приемники\передатчики могут вылететь при каком-то неудачном стечении обстоятельств.

dk_spb
24.02.2016, 21:10
Простое шаманство (проверка входного приемника) не помогла - тут всё путём.
Зато выяснил очень обнадеживающую подробность: один из контроллеров при попытки с него загрузиться начинает загрузку и даже выдает полную строку "DW v05...", а потом виснет.
Однако при попытке теста чтения программой TDW дает ошибку 10000 на каждый сектор.
Пробовал после рестарта по питанию и загрузки с флопа тестировать только дорожку 00 - тоже ошибка на каждый сектор. То есть дело не в позиционировании.
Похоже что информацию-то он читает, но выдает ошибку.

Правильно ли я понимаю что загрузчик из ПЗУ не проверяет корректность чтения? То есть он грузит загрузчик системы, передает ей управление, а вот дальше при попытке продолжить загрузку уже проверяются ошибки, ловит ошибку и виснет?

MM
24.02.2016, 21:54
В DESSе составьте таблицу тех секторов ( с самого начала диска ), с которых возможно чтение, и с которых невозможно. Испытывать лучше винт, заведомо исправный и записанный ( проволочку "запись" в нем можно и перерезать - так, для гарантии сохранности.)
Вероятные причины - невыбор поверхности, ошибка позиционирования 00 трека, неверные тайминги перемещения коловки, ошибочная конфигурация винта, гнилой кабель.
Если хоть 1 сектор загружен правильно - 90% вероятности исправент тракт данных, 9% - ошибка СОЗУ контроллера, 1% - ХЗ. ( читается "Икс Три" :v2_dizzy_facepalm: ).

dk_spb
24.02.2016, 22:03
Не-не-не. Вы не поняли. программа TDW говорит что вообще ни один сектор не читается.
При этом начало загрузки проходит. И как я писал выше дело не в позиционировании. Проблем в винтом и кабелем тоже нет - с другим контроллером всё ОК.
При невыборе поверхности загрузчик из ПЗУ ничего бы не прочитал.

MM
24.02.2016, 22:24
Методика испытания тракта чтения:
1. Включить ДВК к сети 220 вольт выключателем ( или прочистить ДОЗУ Т0 ).
2. В 134 ПЗУ загрузить 0 сектор с DW загрузчиком из ПЗУ 134.
3. После останова/перезапуска сделать скриншот участка ДОЗУ 0-20 ( 8 ) - т.е. если там "000240 000415" - тракт данных исправен, дело в управлени винтом.

Иллюстрация 1 : Загрузчик DW: см. от маркера
http://storage8.static.itmages.ru/i/16/0224/h_1456341175_5996102_8f987720f8.jpg (http://itmages.ru/image/view/3921890/8f987720)

- - - Добавлено - - -

http://storage4.static.itmages.ru/i/16/0113/s_1452704971_9956829_72a39137d7.jpg (http://itmages.ru/image/view/3399125/72a39137)
Если по 174004 установлено число "010000" - это и есть ошибка управления винтом ( бит 12 ).

dk_spb
24.02.2016, 22:27
Да мы с Вами опять о разном.
Попробую упростить ситуацию:
1) ПЗУ 134 читает самый первый сектор диска, это факт, иначе бы на экране при попытке загрузиться с DW0 не было бы строки "DW v05...."
2) программа TDW не читает этот же сектор или читает его с ошибкой 10000
Вот я и пытаюсь понять: ПЗУ 134, прочитав этот сектор, проверяет считался ли он нормально или просто передает на управление на считанный сектор?

Ошибка 10000 по мануалу - это "ошибка поиска адреса", то есть не то что данные, а даже заголовок сектора не найден. А ПЗУ 134 при этом нормально читает данные.

MM
24.02.2016, 22:30
Ошибку данных ставит контроллер.
Дальше - можно перейти к составлению таблицы нечитаемых секторов ( или даже поверхностей ). Видимо, они будут за пределами 0 поверхности.

dk_spb
24.02.2016, 22:38
>Дальше - можно перейти к составлению таблицы нечитаемых секторов
Да все, ВСЕ сектора читаются с такой ошибкой. На ВСЕХ поверхностях
Ну сколько же раз я должен написать что тот же самый сектор, что нормально читает ПЗУ 134 при чтении программой TDW читается с ошибкой.

- - - Добавлено - - -

О, так у меня при загрузке читается не только самый первый сектор, раз даже выводится строка "DW v05....".
Это значит что и boot сектор нормально прочитался, и дальше пошло чтение.
А TDW ругается на все сектора, даже на boot сектор

MM
24.02.2016, 22:38
>Дальше - можно перейти к составлению таблицы нечитаемых секторов
Да все, ВСЕ сектора читаются с такой ошибкой. На ВСЕХ поверхностях
Ну сколько же раз я должен написать что тот же самый сектор, что нормально читает ПЗУ 134 при чтении программой TDW читается с ошибкой.
Т.е. при загрузке с дискеты и поблочным ( с 0 блока винта ) вычитыванием винта в DESSe все секторы нечитаются ?

dk_spb
24.02.2016, 22:43
При загрузке с дискеты программой TDW делаю тестовое чтение нулевой дорожки. Все сектора на всех сторонах читаются с ошибкой 10000.
Хотя головки 100% стоят на нулевой дорожке

- - - Добавлено - - -

Завтра попробю DESS'ом посмотреть нормально ли читаются данные. А DESS покажет данные если контроллер выдаст ошибку при чтении?

- - - Добавлено - - -

Но ведь и ПЗУ как-то читает boot сектор. и Boot сектор начинает грузить систему....

MM
24.02.2016, 22:58
...
Завтра попробю DESS'ом посмотреть нормально ли читаются данные. А DESS покажет данные если контроллер выдаст ошибку при чтении?


80% - не переключаются поверхности.
В RT-11 все операции ввода-вывода верифицируются контроллерами и драйверами.
В DESS можно определить ошибку по затягиванию процесса чтения и необновлению контента в массиве данных ( на экране ). Кроме того, он сообщит об ошибке текстом.
Насчет посмотреть контент ошибочного сектора - в МХ это возможно, но DW может не выдать блок ошибочных данных, т.к. ошибка имеется внутри контроллера винта - именно он не может найти нужный сектор.

Patron
24.02.2016, 22:58
Завтра попробю DESS'ом посмотреть нормально ли читаются данные. А DESS покажет данные если контроллер выдаст ошибку при чтении?Зависит от драйвера.

Чтобы читать DW напрямую - можно использовать: CopyDW_v1.3 (http://emulator.pdp-11.org.ru/misc/CopyDW_v1.3.zip)

dk_spb
24.02.2016, 23:02
но DW может не выдать блок ошибочных данных, т.к. ошибка имеется внутри контроллера винта
Откуда тогда на экране берется строка "DW v05...."
ПЗУ 134 эту строку само сочиняет? ;-)

Andrey_Ak
25.02.2016, 05:40
А если взять драйвер DW V05.08 [RYG] Рождевствин Ю.Г. 1990 г. (с) т. 322-12-14
и сделать им разбивку винта, на одну поверхность?
т.е. использовать только одну сторону одного диска, и так попробовать отформатировать и загрузится?

Еще есть смысл попробовать отформатировать диск программой TESTDW.SAV из ОС ФОДОС В03.00

dk_spb
25.02.2016, 08:19
Andrey_Ak, Андрей, тебе уже в пору в гадалки переквалифицироваться.
Любое предложение должно иметь какой-то практический или хотя бы теоретический смысл.
Драйвер и так такой, поверхность и так одна. И на другом 100% таком же, но рабочем контроллере все летает. Задача локализовать проблему на этом.

>Еще есть смысл попробовать отформатировать диск программой TESTDW.SAV из ОС ФОДОС В03.00
Можно узнать какой смысл? Что это чисто теоретически может дать?

Andrey_Ak
25.02.2016, 08:40
Andrey_Ak, Андрей, тебе уже в пору в гадалки переквалифицироваться.
Любое предложение должно иметь какой-то практический или хотя бы теоретический смысл.
Драйвер и так такой, поверхность и так одна. И на другом 100% таком же, но рабочем контроллере все летает. Задача локализовать проблему на этом.

Тут высказали предположение, что "80% - не переключаются поверхности." теоретически, если предположить
эту неисправность, именно на данном контроллере, то смысл есть проверить использование на диске только одну поверхность?
Разве в этом нет теоретического смысла? Или может я глупость какую сказал?

dk_spb
25.02.2016, 08:46
Разве в этом нет теоретического смысла? Или может я глупость какую сказал?
Ты просто невнимательно читал. Читаются с выставлением ошибки все поверхности. В том числе нулевая. Хотя именно чтение информации при загрузке как-то проходит, то есть с выбором нулевой поверхности точно проблем нет. Предположить что ПЗУ справляется выбрать нулевую поверхность, а TDW при загрузке с дискеты после включения питания не справляется - я не могу. Поэтому и спрашиваю смысл твоего предложения.
Хотя мой вопрос про смысл больше относился ко второму твоему предложению - отформатировать testdw вместо tdw. Что этим хочешь проверить?

Andrey_Ak
25.02.2016, 08:50
Ты просто невнимательно читал. Читаются с выставлением ошибки все поверхности. В том числе нулевая. Хотя именно чтение информации при загрузке как-то проходит, то есть с выбором нулевой поверхности точно проблем нет. Предположить что ПЗУ справляется выбрать нулевую поверхность, а TDW при загрузке с дискеты после включения питания не справляется - я не могу. Поэтому и спрашиваю смысл твоего предложения.
Хотя мой вопрос про смысл больше относился ко второму твоему предложению - отформатировать testdw вместо tdw. Что этим хочешь проверить?

TDW не совсем корректно форматирует, т.е. форматирует, но может не писать ошибки при форматировании..
А TESTDW после форматирования пишет ошибки, если они были..

dk_spb
25.02.2016, 10:12
TDW не совсем корректно форматирует, т.е. форматирует, но может не писать ошибки при форматировании..
Повторю: другой контроллер нормально всё читает. То есть проблем с форматированием нет.

кстати, а это хороший вопрос: насколько я понял ни одна программа форматирования ни на DEC ни на ДВК при форматировании не проверяет удачно отформатировалось. То есть контрольного чтения не выполняет.
У меня есть TDW1, которая форматирует заметно дольше, чем остальные. TDW и TESTDW судя по скорости форматирования никаких чтений не делают.

Andrey_Ak
25.02.2016, 10:16
Повторю: другой контроллер нормально всё читает. То есть проблем с форматированием нет.

кстати, а это хороший вопрос: насколько я понял ни одна программа форматирования ни на DEC ни на ДВК при форматировании не проверяет удачно отформатировалось. То есть контрольного чтения не выполняет.
У меня есть TDW1, которая форматирует заметно дольше, чем остальные. TDW и TESTDW судя по скорости форматирования никаких чтений не делают.

Приведу пример, у меня два винта 4096, оба форматировались через программу TDW без ошибок, но один винт дохлый,
и только программа TESTDW давала ошибки на дохлом винте..

dk_spb
25.02.2016, 10:28
Спасибо за пример. Только он не про мой случай.
Еще раз повторю - у меня винт 100% рабочий. Поэтому проверять еще несколько раз рабочий ли винт и нормально ли он форматируется смысла ни практического, ни теоретического я пока не вижу.

Andrey_Ak
25.02.2016, 10:32
Спасибо за пример. Только он не про мой случай.
Еще раз повторю - у меня винт 100% рабочий. Поэтому проверять еще несколько раз рабочий ли винт и нормально ли он форматируется смысла ни практического, ни теоретического я пока не вижу.

Так зачем проверять винт, мы не винт проверяем, а форматирует ли неисправный контроллер винт...

dk_spb
25.02.2016, 10:44
Погоди, зачем проверять форматирование?
Я пытаюсь с чтением разобраться. Какая связь? Или ты как в том анекдоте про техникум торговли и отсутствие туалетной бумаги?
Я вот уже несколько сообщений пытаюсь понять связь между твоими советами и локазизацией неисправности ЧТЕНИЯ.

Andrey_Ak
25.02.2016, 10:48
Погоди, зачем проверять форматирование?
Я пытаюсь с чтением разобраться. Какая связь? Или ты как в том анекдоте про техникум торговли и отсутствие туалетной бумаги?
Я вот уже несколько сообщений пытаюсь понять связь между твоими советами и локазизацией неисправности ЧТЕНИЯ.

Ну ты писал:
"Ну и заодно может кто разбирался с программами testdw и tdw?
Например, есть две разные tdw 05.10 (50 и 51 блок). Они и по меню разные и форматируют по разному. "

- Вот я и сказал свои наблюдения, что TDW не проверяет правильность формата, а TESTDW проверяет...

dk_spb
25.02.2016, 11:42
У меня testdw не проверяет нифига, форматирует с той же скоростью что и tdw.

И ты меня совсем запутал:
1) "мы не винт проверяем, а форматирует ли неисправный контроллер винт... "
то есть речь явно о проверке форматирования

2) Вот я и сказал свои наблюдения

Или ты не только меня запутал, но и сам не понимаешь что пишешь?

- - - Добавлено - - -

Ну вот, коллеги в соседней ветке ответили что ПЗУ при чтении не проверяет ошибки контроллера: читается загрузчик, если его первый байт совпадает с ожидаемым - выполняется переход на загрузчик.
То есть контроллер нормально читает данные, но зачем-то выставляет ошибку 10000 (сектор не найден).

Patron
25.02.2016, 20:13
.

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

- - - Добавлено - - -

Если единственным местом хранения байта ошибки является ячейка, видимая на шине, как старший байт регистра 174004 - значит там и глючит.

dk_spb
25.02.2016, 20:36
Да, спасибо, я как раз собирался сегодня "пошарить" по регистрам что к чему. Там проблема в том, что есть два регистра - в одном хранится код ошибки, а в другом (регистр состояния)-бит наличия ошибки.

Patron
25.02.2016, 20:48
Там проблема в том, что есть два регистра - в одном хранится код ошибки, а в другом (регистр состояния)-бит наличия ошибки.Об том и речь, что при выполнении подпрограммы завершения - микроконтроллер решает, нужно устанавливать бит ошибки в CSR или нет, исключительно по прочитанному содержимому байта ошибки ( переменных-то кроме регистров нет ).

Подпрограмма чтения ( после успешного завершения ) пишет в байт ошибки ноль, а подпрограмма завершения читает из байта ошибки НЕ НОЛЬ и ПОЭТОМУ устанавливает бит ошибки в CSR.

dk_spb
25.02.2016, 22:39
Научите серого как из пульта посмотреть адреса 174000...174020. Такое впечатление что по умолчанию с какой-то другой страницы памяти отдаются эти адреса. После включения питания (я выждал пока КНЖМД проинициализируется) все адреса равны нулю и всё что запишешь - все и читается. А ожидалось что 174000 будет всегда 401.
---
Нашел какую-то версию testdw, которая при чтении диска выдает ошибку "нет сигнала завершения операции".
И правда в пульте не бывает в 1 бит завершения готовности операции даже после программного сброса в НУ.
На рабочем контроллере все нормально.
На обоих признака ошибки и кода ошибки в региcтрах не бывает.
Далее буду на выходных смотреть осцилографом где теряем сигнальчик.
Спасибо всем большое за помощь!!!!!

Alex_K
25.02.2016, 22:49
Научите серого как из пульта посмотреть адреса 174000...174020.
Надо смотреть 22-разрядные адреса, т.е. 17774000...17774020.

dk_spb
25.02.2016, 22:57
Да, спасибо, я уже разобрался когда вторую часть предыдущего поста писал.
Просто сходу ошибся в количестве семерок и подумал что иду неверным путем.
Так что теперь точно понятно что теряется битик завершение операции. А программа TDW оказывается просто кака в некоторых вопросах.

MM
25.02.2016, 23:01
...
Нашел какую-то версию testdw, которая при чтении диска выдает ошибку "нет сигнала завершения операции".

Следует читать "непроходит прерывание".

dk_spb
27.02.2016, 19:30
Спасибо всем за помощь.
Починил.

SKcorp.
27.02.2016, 23:44
Спасибо всем за помощь.
Починил.

И что оказалось? МЛЗ?

dk_spb
28.02.2016, 00:18
А каким боком МЛЗ может относится к описанной проблеме?

SKcorp.
12.04.2016, 22:18
Так что в итоге оказалось? А то попалась мне пара контроллеров с таким же глюком.

dk_spb
13.04.2016, 02:01
Так я осцилом по схеме посмотрел.
Там всего две микросхемы этот сигнал генерируют. Причем по цепочке. В результате поменял 1818, не помню какую, но ту у которой половинка - обработчик прерываний.

SKcorp.
17.05.2016, 22:17
Поменял 1818ВК12 - ничего не изменилось. Или я не туда смотрю?

dk_spb
17.05.2016, 22:23
А у тебя именно такая же неисправность? Что осцилографом-то видишь?

SKcorp.
17.05.2016, 23:43
А у тебя именно такая же неисправность? Что осцилографом-то видишь?

Такая же 1 в 1.
Я и осциллографа не вижу. Нет его у меня.

dk_spb
18.05.2016, 08:02
Я и осциллографа не вижу. Нет его у меня.
Тогда ты прав:

Или я не туда смотрю?

SKcorp.
18.05.2016, 22:50
Тогда ты прав:

Посмотрел туда - все заработало.

dk_spb
19.05.2016, 07:44
Поздравляю! Если что - завсегда обращайся ;-)

SKcorp.
21.05.2016, 23:34
Еще на двух контроллерах ошибка 20000 (ошибка CRC адреса).

Куда копать?

dk_spb
22.05.2016, 10:21
А это самое плохое.
Если ты уверен что проблема именно в тракте чтения (то есть попробовал винт, отформаченный на другом КНЖМД) - это плохо.
Причин может быть масса: от битого ОЗУ и глюкавости ФАПЧ до неправильного срабатывания детектора маркера.
Думаю что в "бытовых" условиях (без анализатора и т.д.) можно только посмотреть везде ли в тракте чтения проходит сигнал данных. Если же проблема не в его "потере", а в некорректной работе, например, ФАПЧ - тут я даже не подскажу на что посмотреть. Тем более раз у тебя нет осцилографа.

SKcorp.
01.06.2016, 14:11
С 20000 починил.

Еще один контроллер при форматировании TDW пишет: Контроллер не выходит из состояния "занят".
Куда копать?

dk_spb
01.06.2016, 15:13
Сначала ручками почитать РСНУ на предмет бита "занят". Он всегда занят или только после операции "форматирование"?

SKcorp.
01.06.2016, 15:20
Сначала ручками почитать РСНУ на предмет бита "занят". Он всегда занят или только после операции "форматирование"?

После форматирования, иначе бы он не читал и не грузился с него.

dk_spb
01.06.2016, 15:33
Откуда же я знаю грузится он с него или нет.
ПЗУшки пробовал менять?

- - - Добавлено - - -

И проблемы только с форматированием, запись нормально проходит?

SKcorp.
02.06.2016, 19:14
Откуда же я знаю грузится он с него или нет.
ПЗУшки пробовал менять?

- - - Добавлено - - -

И проблемы только с форматированием, запись нормально проходит?

ПЗУ и проц. менял - все то же самое.

Запись тоже не проходит.

dk_spb
02.06.2016, 19:34
SKcorp., По-моему у тебя сложилось заблуждение что мне это нужно больше чем тебе ;-)
Ты же не блондинка, первичную диагностику вроде раньше умел делать.
А то пишешь что не работает форматирование с такой-то ошибкой.
Дальше клещами из тебя вытянули что чтение работает, а запись нет. И что ПЗУ и проц пробовал менять.
Теперь еще клещами тянуть с какой ошибкой не проходит запись?
Или спросить все ли детали на месте на плате?

Тракт записи там простой до безобразия. Осцилографом пробежать - 5 минут.

SKcorp.
02.06.2016, 20:55
Теперь еще клещами тянуть с какой ошибкой не проходит запись?
Или спросить все ли детали на месте на плате?

Дык с такой же ошибкой: Контроллер не выходит из состояния "занят".

dk_spb
02.06.2016, 22:14
Ну вот, еще одну деталь клещами вытянули ;-)

- - - Добавлено - - -

Теперь осталось посмотреть осцилографом проходит ли сигнал "запись" на диск и идут ли данные записи.
Чисто теоретически я бы рискнул предположить что сигнал с ноги 16 D45 (вв5) не проходит куда надо, но это на осцилом смотреть. Как мне, неопытному, кажется - больше в тракте записи ничего тормозить процесс не может (с учетом рабочего чтения).