Управление флоппи-приводом
У привода два разъёма — один для питания («mini-molex») и второй для управления (FDD). Запитывается дисковод сразу от 5В и 12В. Отличным решением будет использовать компьютерный блок питания. При работе с ним не забудьте замкнуть контакт PS_ON с контактом COM, чтобы включить его. Однако, подойдёт любой другой БП с такими же напряжениями. Главное, чтобы хватало выходного ампеража.
Разъём «mini-molex» имеет два контакта земли посередине и контакты 12В и 5В по бокам. Контакт 12В расположен слева и нередко с его стороны имеется «ключ», не дающий присоединить штекер не той стороной.
Хоть разъем FDD имеет пугающее количество контактов, оттуда понадобится всего два — 18 и 20.
18 контакт называется «Stepper Direction», и по нему устанавливается направление движения пишущей головки. 20 контакт называется «Step Pulse» и он уже непосредственно «толкает» шаговый двигатель.
Помимо этого нужно разрешить работу двигателя. Для этого нужно замкнуть на землю 12 контакт разъёма «Drive Select B». Это можно сделать либо джампером (перемычкой) между этим контактом и нижним (11 — землёй), либо непосредственно присоединить 12 контакт к проводу земли. Варвары же могут попросту загнуть этот контакт вниз, чтобы тот соприкасался с нижним контактом.
Схема подключения к флоппи-приводу
Распиновка интерфейса IDE FDD
Разъём интерфейса 34-пиновый, но на практике не все контакты нижнего ряда могут быть установлены.
Нижний ряд может быть и почти совсем «беззубым» (зависит от конкретной модели), нам не принципиально.
В общем случае, нижний ряд (нечетные контакты) – это минус (Ground), верхний ряд (чётные контакты) – сигнальные линии.
В разных документах описывается как минимум два варианта распайки разъема IDE FDD.
Вариант первый
Контакт | Сигнал | Контакт | Сигнал |
2 | М/С | 20 | Step Pulse |
4 | N/C | 22 | Write Data |
6 | N/C | 24 | Write Enable |
8 | Index | 26 | Track 0 |
10 | Motor Enable А | 28 | Write Protect |
12 | Drive Select В | 30 | Read Data |
14 | Drive Select A | 32 | Select Head 1 |
16 | Motor Enable В | 34 | (Spare) |
18 | Stepper Direction |
Вариант второй
Контакт | Сигнал | Контакт | Сигнал |
2 | Reduced Write | 20 | Step |
4 | Reserved | 22 | Write Data |
6 | Drive Select 3 | 24 | Write Gate |
8 | Index | 26 | Track 0 |
10 | Drive Select 0 | 28 | Write Protect |
12 | Drive Select 1 | 30 | Read Data |
14 | Drive Select 2 | 32 | Side 1 Select |
16 | Motor On | 33 | Diskette Change |
18 | Direction Select |
Не указанные в таблицах контакты – это минус (Ground)
или же контакт отсутствует или не подключён.
Контакты нижнего ряда замкнуты на минус (общий провод). Исключения могут составить не подключённый 1 и сигнальный 33 контакты. 34 контакт верхнего ряда также может быть минусовым. Корпус дисковода также, как правило, замкнут на минус. Всё это зависит от конкретной модели флоппика. Всегда можно воспользоваться тестером и определить минусовые контакты конкретного экземпляра.
Поскольку флопотрон не будет задействовать функционал по записи и считыванию данных, то необходимости разбираться в назначении абсолютно всех контактов интерфейса смысла нет.
Нам интересны только несколько контактов:
Контакт | Сигнал | Значение |
12 (6, 10, 14) |
Drive Select | Активизация привода |
18 | Direction Select | Смена направления движения головки |
20 | Step | Импульсы смещения головки |
16 (10) |
Motor Enable | Включение двигателя вращения диска * |
* Двигатель вращения диска громких звуков не производит,
поэтому в флопотроне он задействован не будет.
Питание дисковода FDD
Дисковод требует напряжения в 5 В. Запитать флоппик можно от компьютерного блока питания. Чтобы запустить блок питания, нужно на самом длинном разъеме перемкнуть контакт зеленого и любого из черных проводов.
Если вы впервые так «заводите» блок питания, то настоятельно рекомендую прочитать в интернете инструкцию на эту тему.
Ни в коем случае, не включайте блок питания компьютера без нагрузки!
Питание к дисководу подводится через четырехконтактный разъём (Mate-N-Lock). Чёрные провода – это минус, красный – +5 В, жёлтый – +12В. Напряжение в двенадцать вольт в дисководе не используется, поэтому соответствующий контакт впаян в плату, но ни к чему не подключён.
Для проведения экспериментов, мне оказалось комфортнее запитать дисковод от внешнего блока питания для жёсткого диска. Воспользовался переходником с Molex на Floppy. Такие переходники еще потребуются, поэтому рекомендую их подкупить заблаговременно.
На фотографии видно, что для питания действительно достаточно только двух проводов: +5 В (красный) и минус (чёрный).
Программная часть
Если вы решили использовать Arduino, то в первую очередь нужно установить Arduino IDE. Также стоит помнить, что для работы с клонами Arduino нужно установить соответствующий драйвер CH340G. Обо всём этом можно почитать в нашей статье.
Вначале стоит проверить флоппи-приводы на работоспособность. Для этого можно запрограммировать контроллер на какие-нибудь простые операции. Например такие:
Этот скетч должен заставить флоппи-привод, подключённый к первому каналу (2 и 3 пин), двигать считывающую головку равномерно по всей рабочей длине. Как только головка подходит к концу, направление движения инвертируется и цикл повторяется.
После того, как вы проверите все приводы, можно приступить к созданию программной части для флопотрона или просто использовать уже готовое решение.
Moppy — продвинутый контроллер для флопотрона. Он состоит из двух частей: прошивки для Arduino, которая непосредственно управляет флоппи-приводами, и компьютерной программы, которая посылает команды на контроллер по USB-кабелю.
Скачиваем последний релиз программы. Первый архив содержит скетч для Arduino, второй — программу для ПК.
Примечание Для работы прошивки нужна библиотека «TimerOne». Её можно найти в Менеджере Библиотек. Для этого откройте Скетч→Подключить Библиотеку→Управлять Библиотеками. Через поисковую строку открывшегося Менеджера Библиотек можно найти необходимую библиотеку «TimerOne».
После установки библиотеки прошивка готова к работе. Осталось выбрать порт, к которому подключена Uno, и прошить её.
Первый привод подключается к 2 и 3 пину платы («Stepper Direction» и «Step Pulse» соответственно). Следующий привод к 4 и 5, потом к 6 и 7 и так далее. К Uno можно подключить до 9 приводов (до пина A5). После подключения всех флоппи-приводов можно включать блок питания.
Откуда брать midi-файлы?
Есть несколько источников:
Найти готовый midi-файл нужной песни. Однако, шанс того, что файл сразу подойдёт для флопотрона, очень мал. Скорее всего, его нужно будет редактировать.
Специальные программы для midi-файлов. Например MidiEditor. В ней вы сможете как создать новый файл, так и отредактировать существующий (поменять местами или объединить дорожки).
Нотный редактор. Например Guitar Pro. Для него есть множество готовых композиций, которые с лёгкостью можно экспортировать в midi-файл
Обратите внимание, что каждый канал в midi-файле соответствует отдельному подключённому флоппи-приводу. Обычно к одной нотной дорожке в Guitar Pro подвязываются сразу два канала
Привязку каналов к дорожкам, естественно, можно редактировать.
Использовать готовые midi-файлы, созданные специально для флопотрона. Например в этом репозитории, или в документах этой группы.