> Кстати, вот головки продаются http://rt22.ru/viewtopic.php?f=30&t=24923 Можно посмотреть, как они сами по себе выглядят.
Интересно. Не ожидал, что они так отдельно коробочками продаются.
У меня пара приводов ес-ок есть, у которых чтение выше середины диска идёт очень плохо, подозреваю, что дело в головах.
Младшие треки нормально читаются.
Правда, есть шанс, что эти приводы уже погнили в печальных условиях хранения.
Да и не факт, что эти головы туда встанут. А работающих приводов ещё несколько штук есть. Даже почти отлично работающих.
Если у кого есть контакты с продавцом, я бы штуки 4 купил.
====
Пока до готовности софта далеко, но постепенно отдельные его части вырисовываются, заодно из них делаю утилитку для offline-обработки нового формата Eim3. Ну и сам формат дополняю.
1)
Внезапно выявилось интересное: 3.25'' двигает голову на нулевой цилиндр, но затем переход на цилиндр 1 срабатывает не всегда (хотя щелчок в моторе слышен!). Следующий переход на 2 срабатывает уверенно. Причем в одной проге так (всегда всё надёжно), в другой - этак (через раз).
Получается двухкратное чтение нулевого цилиндра, а 79, соответственно, читается не всегда.
Для читалки вроде это и не критично: если расчётное положение головы не соответствует тому, что есть в полях адреса,
то корректируем положение в соответствии с полями. Так все агатовские драйвера поступают.
Но - с другой стороны - так не должно быть. При форматировании диска, например, на поля адреса расчитывать не приходится.
Для моста это тоже плохо: мост должен читать нестандартные форматы, а чудеса с удивительными адресными полями уже мне встречались. Т.е. мост не должен корректировать положение головки от адресного поля. Если есть предположение, что голова не на месте, он корректируется относительно нулевого трека.
Попробовал цеплять 5.25'' (впервые!!!) - там всё нормально. Ставлю опять 3.25'' - косячит.
Проги используют общую библиотеку управления приводами, да и вызовы везде простые.
Ясно, что у флопика есть счётчик фаз, ясно, что если у него датчик нуля сработал, он вроде как должен блокировать мотор.
Но, похоже, счётчик фаз в каких -то случаях может продолжать считать. Т.е. положение ротора не соответствует счётчику фаз
и на импульс перехода на цилиндр 1 он пытается перейти, условно, с -1 на 0. И остаётся в нуле.
Почему ? А я так и не знаю. Но помогло уменьшение импульса step. В доках на Агат упоминается 1 мкс. У меня была 1 мс, плюс ещё 8 мс - ожидание после снятия сигнала step. В мост2 формированием этого импульса занимался агатовский контроллер.
Уменьшил сперва длительность step до 100 мкс - всё заработало. Поставил тогда 10. Ниже 10 смысла нет снижать - у линуха на этом проце не то разрешение таймеров, чтобы с микросекундами играть. Оно болтается где-то от 10 до 100 мкс. На получение данных (типа Index) ещё можно интервал между импульсами поточнее оценить, а что-то другое делать - неа.
/*
Нестандартные номера треков в адресных полях: например, копировщик КПОН этим балуется (не копировщик, который в составе ИКП, а инсталятор КПОН, который на новый диск его записывает). На треках с нулевого по, примерно, 6 поля правильные - там сам копировщик. А на следующем треке номер 0, потом номер 1 и т.д. - там лежит КПОН со всеми своими адресными полями.
С одной стороны - такой диск фиг скопируешь адекватным софтом, с другой - копировщику удобно: он берёт очередной трек и лепит его на копию сразу со всей служебкой, только голову сместив на 6 треков к краю. Я не копал сильно глубоко этот код, возможно, задумка
там была в чём-то другом, но эти адресные поля хорошо запомнил.
*/
2)
Когда-то давно рассказывал про удивительный флопик ес5323.01 (возможно, на zx.pk.ru). По всем описаниям он 96 tpi должен быть, но у меня он 48tpi.
К делу не пристраивался ни разу, но, похоже, состояние хорошее.
Добыл, включил. Крутится, читает че-то. Думаю его к чтению 140ок приспособить.
Но тут возникает вопрос: если привод подключен на интерфейс 840ок - то обычно ожидается, что он 96tpi.
А если он 48 - там же соответствие физических треков и логических будет не такое как у мс5088.
Смешно, но как раз 5088 по счётчику треков - 96 tpi.
И ещё: судя по спектрам - 5088 явно лучше читает 840ки чем этот хитрый 5323.
Опять возвращаемся к вопросу о головах: могут они быть обе на 48tpi, но у 5088 при этом размер уже чем у 5323 ?
А всё это вместе плавно приводит к тому, что в eim3 неплохо бы записывать фактические характеристики приводов, а не только используемый интерфейс.
Но если приводы можно так легко заменить, то неплохо бы перед каждым съёмом узнавать параметры конкретного привода.
Скорость замерить можно быстро - 2-3 оборота и есть цифра.
А как замерить tpi ? Гоним головку на цилиндр 100, потом возвращаем к датчику нуля, считаем импульсы.
Занимает пару секунд. Но рычит громко, привод перегружен.
Или делать это один раз по запросу пользователя (если он не забудет) и сохранять в файлике-конфиге ?
Ещё вопрос: если уж этот привод неплохо читает 140ки (а это уже проверено), то вообще, для случая снятия 140ки на приводе с двумя головами, на интерфейсе 840, нужно ли читать сторону B? Младших четырех треков там не будет, но вдруг они уже прочитаны на другом приводе и вопрос только в том, чтобы дочитать, например, что нибудь в хвосте ? Чтобы дочитать, все средства хороши. Но если речь просто о съёме (когда диски 140 есть, а привода 140 нет) - то вроде как бы и не надо ?
Или читать всё сразу, а потом дискету перевернули и дочитали A- головой 4 младших трека B- стороны ?
3)
Нашел в заначке одного японца, который не имеет ни одного джампера кроме ds0/ds1 и крутит всегда 360 rpm.
Но если ему на пин 2 менять уровень, то АЧХ у него явно меняется. Сломно что -то?
По старым заметкам на этот привод говорится, что сама плата мотора на какой-то свой крайний контакт скорость меняет.
4)
У одного тика, хорошо работавшего раньше, сейчас чтения нет. Спектр шумовой.
Головки подключены. С одной головы что-то идёт, на спектре вершины видны, но дальше очень пологие склоны, сливающиеся друг с другом. На втором вообще плоскость, понемногу спадающая к более низким частотам.
Головы вроде чистые, но совсем сбоку, у края головки, на керамике, мелкая тёмная точка, диаметром не больше 1/4 мм.
Думал, что -то что-то технологическое. Но на всякий случай потёр спиртовой ваткой.
Используется фонарик, зеркальце (без рамки, только стекло), фонарик.
Иначе и нижнюю голову едва видно, а верхнюю не видно вообще.
Стал читать нормально.
Резюме: если для 5088 грязь видна как здоровый комок и она слегка мешает чтению, то для более тонких приводов даже мелкий кусочек, хоть чуть приподнимающий голову над поверхностью - уже полностью обнуляет шансы что-то вытащить.
Это видно и по попыткам поднять головы: если у 5088 убрать прижим, что-то ещё будет пытаться читаться, спектр при подъёме меняется плавно. У более тонких приводов почти сразу спектрограмма уходит в шум.
5)
Ещё один японский привод, головы отмыты, читает почти никак. Но если головку слегка прижать - читает нормально, даже - можно сказать - хорошо.
Пружинка на максимуме, но её не хватает.
Возможно, погнута пружинистая подвеска головы.
С учётом того, что разбирать блок голов - дело практически верно ведущее к мороке по последующей юстировке,
а даже просто снять блок голов без сдвига датчика нуля - тоже дело может быть не простое, пока отложил этот привод.
Можно ли, не разбирая блок, на просвет, попытаться восстановить углы положения головок ?
Или это только на стапеле ?
6)
Собрал, наконец, индикатор читаемого сигнала.
Просто датчик наличия ВЧ-переменки на входе чтения.
Схема примитивная: усилитель на полевике, кондёр на несколько десятков пф и усилитель на цифровом транзисторе, затем светодиод.
Работает довольно занятно: 140ка светится всегда, когда привод включен, но без дискеты - слабо.
К сожалению, не имею не записанных дискет, а то можно было бы поглядеть как она светит на чистой поверхности.
На 840ке светится всегда, кроме случаев, когда дисковод закрывает канал чтения.
мс-ки, как я понял, не закрывают его никогда, японцы - при любом удобном случае.
Голову ли подвигал или шпиндель притормозил или что нибудь ещё - всегда норовят выключиться.
Один японский привод без микрухи шагового мотора (lb1656). Так он вообще не включает канал чтения.
Микруха с него была снята для ремонта другого привода (лучше читавшего), так что всё остальное там должно быть в порядке.
Но даже если голову руками на нулевой трек отогнать, всё равно нет данных чтения.
Микру можно на али купить, пара штук за рублей 200-300. Или взять полностью привод на авито за 1000р с этой микрой.
Но вроде приводов и так пока хватает.
7)
Контакт 2 должен менять скорость привода, но также и АЧХ усилителя чтения.
Но, судя по спектрограммам, каждый производитель видит это слегка по разному:
срезы в верхней части спектра очень резкие, но граница у разных приводов находится в разных местах:
pin2 = LO: 1.3 .. 2.5 mks, 300 rpm.
pin2 = HI: 0.8 .. 1.1 mks, 360 rpm.