Приветствую. Делюсь опытом изготовления эмулятора дисковода для Atari на базе Arduino Nano. Под катом инструкция по сборке, схема, прошивки и демонстрация работы.




В нашем музее (подробности в профиле) есть несколько компьютеров Atari, для которых хотелось сделать что-то, позволяющее быстро загружать программы. Оригинальные 410-е магнитофоны для этого не очень подходят, да и, если бы у нас был оригинальный дисковод, это тоже создало бы трудности. У Atari для загрузки программ в память используется собственный последовательный интерфейс — Atari SIO, разработанный Джо Декуром в 1979 году. Что примечательно, Джо также участвовал в разработке стандартов модемной связи, USB и Bluetooth. И аналоговый магнитофон и цифровой дисковод передавали данные в компьютер Atari по одной и той же последовательной шине, пропускная способность которой могла достигать 120 кбит/с. Так как протокол последовательный, данные можно загружать прямо с компьютера через USB-UART адаптер и программу AspeQt, позволяющую эмулировать периферию Atari. Но хотелось чего-то компактного и автономного. Заказывать и паять плату для SIO2SD — эмулятора с SD картой не хотелось, но в процессе поисков попался проект SIO2Arduino, на базе которого я и собрал свое устройство.

Эмулятор можно собрать в нескольких вариантах, мне хотелось девайс с экраном, на котором можно выбрать образ нужной дискеты.

Первый прототип был собран за пару часов, кабель снял с нерабочего магнитофона Atari XC12, если бы его не было, пришлось бы повозиться с разъемом.



Прототип был проверен на Atari 800XL, заработал сразу, без доработок и настроек.



Можно было переходить ко второй фазе — полноценному прибору.
Вместо большой Arduino UNO решил собрать все на базе Arduino Nano. Все было смонтировано на монтажную плату и распаяно старым добрым МГТФ.

Вид со стороны Arduino



Вид со стороны экрана



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

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



При прошивке готового устройства нужно не забыть поменять в Arduino IDE плату с Uno на Nano, оказывается они немного не совместимы и IDE не видела Nano, пока не изменил настройки. Весь проект для Arduino IDE с настройками под экран и кнопку доступен по ссылке

В собранном виде получился вот такой прибор:




Питание от кабеля micro-usb, карта памяти форматируется в FAT32, в корень скопировал образы дисков в формате ATR и XEX, большой архив с образами лежит на archive.org

Для Atari 800XL порядок работы следующий:

  • Включаем SIO2Arduino
  • Кнопкой выбираем нужный образ дискеты
  • Включаем Atari

Загрузка начинается автоматически после включения или сброса, о чем свидетельствует бодро моргающий светодиод на линии TX. Игра A-Zone, образ которой занимает 92 кБ, грузится около 30 сек. Самые большие образы в архиве занимают 130 кБ.

Результат на экране:



Благодарю за внимание

Комментарии (17)


  1. foxin
    17.10.2017 08:51

    "Первый прототип был собран за пару часов,"
    а часто вам приходится заниматься ардуиной? У меня обычно вечер-другой на прототип уходит.


    1. alk0v Автор
      17.10.2017 12:01

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


  1. feed
    17.10.2017 13:02

    А для zx-pentagon 128 есть что-нибудь подобное?


    1. alk0v Автор
      17.10.2017 13:31

      trolsoft.ru/ru/sch/zx-tapper
      Вот такая штука есть, тоже лежит собранный, но прошить не могу, возможно, камень битый, говорили, такое бывает. Для эмуляции дисковода — не знаю, могу поспрашивать.


  1. seri0shka
    17.10.2017 22:08

    Вот умеют же люди! Час на прототип. У меня б это несколько дней заняло.
    А вот кто бы мне подсказал. Имею в наличии уникальный в сваём роде жёсткий диск Cornice Storage Element 3.0GB 300CMSHA754 (вроде как использовались в смартфонах Samsung i300) со своим уникальным интерфейсом. Реально ли разузнать его протокол и попытаться использовать, само собой интерес чисто спортивный, скорость абсолютно не имеет значения. Когда впервые об этом задумался, сразу подумал именно про Ардуино. Диск, конечно, даже просто как изделие меня радует, имею слабость к миниатюрным дискам, но любой музейный экземпляр ценнее в действии. Почти официальные данные диска здесь


    1. dmitryrf
      17.10.2017 23:15

      Самый простой вариант хоть как-то оценить происходящие — послушать обмен между диском и использующим его устройством с помощью логического анализатора. Можно будет понять хотя бы тип шины и её скорость. Отсюда уже делать выводы о необходимом для реализации железе.
      Но вот реверсить протокол… Имхо, нужен хороший бэкграунд в этой области.


      1. seri0shka
        17.10.2017 23:46

        Для «реверсить» нужно устройство целиком, у меня же только диск, когда приобретал, даже не знал сферы применения. И вроде как непользованный. Как-то даже нашёл распиновку, сейчас не вспомню где. По памяти интерфейсных 13 пинов, остальные питание и внешний электролит. Контроллер по сути внешний, так что диск точно не АТА.


    1. mukoladerevlo
      18.10.2017 09:46

      Скорее всего там ide как у cf card, в интернете мало инфы конкретно по диску, наверное проще будет найти схему устройств которые его использовали и там посмотреть. К atmega вроде cf card цепляли успешно, в интернетах есть примеры


      1. seri0shka
        18.10.2017 18:30

        У CompactFlash обычный ATA (IDE) и подключить к компьютеру можно пассивным переходником без единой детальки. Здесь точно не АТА.


    1. ice938
      18.10.2017 16:22

      Для них был разработан свой интерфейс. Когда-то существовала такая вещь, как Cornice to ATA adapter, стоил неприличных денег и я не встречал попыток его повторить самостоятельно. Зато видел такую вещь, как Intuix Super Key S600 3GB, внутри которой жил такой же HDD, но с адаптером на USB 2.0 =)


      1. ice938
        18.10.2017 16:39

        На вскидку- есть такой USB 2.0 to ATA/ATAPI Bridge Controller TUSB6250 от Texas Instruments, который умеет Cornice Storage Element 1.5GB. Интерфейс у 1.5GB и 3Gb, вроде бы, одинаковый…


        1. seri0shka
          18.10.2017 18:45

          Скачал pdf на TUSB6250, не нашёл ничего про Cornice. Здесь описание Intuix Super Key S600 3GB, там чётко написано про двойное преобразование интерфейса:

          2-stage architecture with Cornice to ATA and ATA to USB bridge

          А вы этот Intuix Super Key живьём видели? Хотелось бы такой раздобыть.


    1. Tallefer
      18.10.2017 17:05

      Раз есть слабость к мелких дискам — а нет ли инфы, можно ли где-то купить б/у микродрайв (хард с интерфейсом CF)? И почему они так редки? Даже несколько лет назад не нашел ни одного.


      1. seri0shka
        18.10.2017 19:00

        В какой стране (городе) живёте? У меня Microdrive три штуки- новый и два б.у., один очень битый, другой был с парой бэдов и перестал отвечать у меня на руках, скорей всего по питанию проблемы. Купить не проблема, дорого (от 15 у.е. по курсу). Чуть позже попробую найти и написать где покупал новый.
        Отдельно прошу прощения у автора статьи alk0v за оффтоп.


        1. alk0v Автор
          19.10.2017 12:03

          Одни битый в Харьков забрали бы, на стенд с носителями информации


  1. seri0shka
    17.10.2017 22:14
    +1

    И вот ещё нашёл, раньше не попадалось


    1. alk0v Автор
      17.10.2017 22:32

      Интересный винчестер, никогда таких не видел. Судя по количеству дорожек на шлейфе, там параллельная шина, возможно, что-то по образу и подобию обычного АТА. Учитывая редкость прибора, найти готовый проект будет проблемно. Cкорости у Arduino тоже скорее всего не хватит.