Из журнала Info Guide #10, Рязань, 05.2007



Универсальный TAPE интерфейс


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

   Начнём с того,что ни в одном компе,про-
шедшем через меня,не было нормальной схемы
загрузки, да и записи тоже... Но если уро-
вень записи "обрезался" автоматически, ма-
гнитофоном,то АЦП загрузки требовал значи-
тельной  проработки. Впрочем, у  фирменных
схем на ОУ проблем быть не должно, но я их
как-то не встречал...
   Все схемы, проходившие через меня, были
на  К561ЛН2, на  которой ещё обычно собран
FLASH-генератор (поскольку счётчик деления
кадровых импульсов редко устанавливали). У
всех  схем  были  определённые недостатки,
ухудшающие работу с лентой. Загрузка часто
превращалась  в кошмарный  ритуал, терпеть
который  не  каждый  согласится... Отладив
схему  и эффективно попользовавшись  ею, я
пришёл к весьма печальному выводу: если бы
в  былые  времена, те  самые, когда Speccy
только  стали у нас выпускать, они снабжа-
лись нормальной схемой загрузки, а качест-
во/количество  наших магнитофонов было по-
лучше, то  количество  Speccy  (вследствие
возросших заказов) и грамотность населения
- были  бы  значительно  выше... Но так уж
распорядилась судьба...
   Мне повезло! Первый 48-ой компьютер,ку-
пленный  мной когда-то, был "питерским ва-
риантом", или "Ленинград", как следует те-
перь  судить. Схема "без излишков" и масо-
чное ПЗУ, почему-то выдававшее после сбро-
са  чёрную  рамку  и  надпись: ...DIDAKTIK
SKALICA... Какой-то умелец,а возможно,отец
друга ( DEAD ANGEL 'а), отладил  схему  на
ЛН2, и она весьма успешно грузила.
   Впрочем,сбои были.Даже на своих записях
порой, но  редко. Приходилось подкручивать
головку,чтобы добиться загрузки иных прог-
рамм, почти все из которых были играми...
   Сперва я совсем не умел работать с лен-
той,затем не знал,как сделать автозапуск у
своих программ (описания BASIC'а не было).
Потом стал делать свои копии,с "привязкой"
положения  головки к некому эталону - кас-
сете с музыкой (вроде как фирменной). Уди-
влялся  загружаемости   с  "жёваных"  лент
(спустя  какое-то время, когда "расправля-
лись") и  с хромовых  - "чёрных", частично
"осыпавшихся"... Короче, это был кошмар!
   Перейдя на Pentagon 128, я не забыл ко-
шмар, который  мне  отчасти нравился... Но
дособрав пентагоновскую схему по её распе-
чатке, ужаснулся! Загрузка была отвратите-
льной! И лишь некоторые программы, с особо
сильным уровнем,грузились.Вспомнил и слова
Steve/ADG, который  предупреждал  об  этом
курьёзе, и  немножко  разочаровался  из-за
плохой   соместимости  более  совершенного
компа  со  старым  носителем. Тогда  я ре-
шил исправить схему, повторив надёжную - с
48-го.
   Каково  же  было моё удивление, когда и
эта  схема  стала  работать  кое-как...  Я
поменял  детали пару раз и понял, что дело
не  в самой  схеме, а в её применении. Она
замечательно  работала на простых моделях,
но плохо подходила для более сложных. Вова
Макаров замечал,что у простых компов более
грамотно  разведено  питание, да и дорожки
понадёжнее... Уровень  помех на более сов-
ренном  компьютере значительно выше, и они
"разбивают" слабый сигнал с ленты. Высоко-
частотные выпадения нарушают загрузку дан-
ных. Чтобы это понять, я написал маленькую
программку,превращающую поток информации с
ленты  в поток  длительностей нулей и еди-
ниц, а затем анализировал информацию через
STS. Просто  захотел  загрузить  несколько
игр (с неплохим - на слух - уровнем  запи-
си), но  загрузка  спонтанно  обрывалась в
разных местах. Что же я увидел в STS?
   Честно говоря,не помню точно длительно-
сти  интервалов, которые я получал в своей
программе, но определимся так: 7 - синхро-
низация, 25 - у пилот-тона, 30 - "1", 15 -
"0". Начало данных должно выглядеть приме-
рно так (опуская почти весь пилот-тон):

..25,25,25,25,25,7,7,15,15,15,15,15,15,15,
15,15,15,15,15,15,15,15,15,15,15,30,30,15,
15,30,30..

   В  этом  примере  сперва  идёт  нулевой
байт, а затем биты 0,1,0,1...
   А теперь  посмотрим  на этот же сигнал,
разбитый помехами:

..25,25,2,2,21,25,25,7,1,2,5,15,15,15,15,
15,15,2,3,12,15,2,2,14,15,15,15,15,15,15,
1,1,15,30,30,15,15,30,27,1,3,2,1,26...

   Как видим,"мелочь" местами "отнимает" у
нормальных  данных их длину. Но страшно не
это, так как запас длительности данных мо-
жет их спасти (кроме мгновенья с синхроси-
гналом). Загрузка  будет прервана ошибкой,
если будет найден интервал,слишком малень-
кий  или  большой для стандартного. И если
большой  интервал  может  быть завершением
записи, а не выпадением данных,и не приве-
дёт к ошибке (совпадёт последний байт чёт-
ности), то маленький интервал - однозначно
признак ошибки, и в итоге - сбой!
   В приведённом примере  больших провалов
- выпадений  -  в  потоке  нет. Они  могут
встречаться  на повреждённой/мятой  ленте,
при слабом/размагниченном сигнале, при не-
исправном механизме или кассете (её прижи-
ме). Маленькие  ВЧ-выпадения  также  могут
проявляться при слабой записи (уровень шу-
мов ленты при помехах всего тракта воспро-
изведения), но почти всегда они появляются
в самом компе, в его несовершенном АЦП!
   Учитывая мощные помехи в самом компе,от
его цифровой схемы, можно считать, что си-
гнал с ленты уже разбит мелочью.Но уровень
помех  всё же очень мал по сравнению с са-
мим сигналом. Поэтому его синусоида,с пре-
имущественно большими экстремумами, хорошо
процифровывается в нули и единицы. Однако!
Смена  знака  сопровождается  прохождением
через 0, когда  сигнал помех явно преобла-
дает. В такие моменты мелочь проявляет се-
бя, как  отражено на примере. Но процедура
загрузки  может  не распознать коротенький
провал, почему и удаётся проскочить начало
записи,а потом бывает сбой. Почему же так?
Потому,что интервалы помех бывают разными,
и процедура загрузки может "поймать" более
длительный,который редко бывает. Но помехи
могут  состоять из нескольких всплесков, и
тогда не самый первый из них,а последующие
приведут к нарушению загрузки. Если предс-
тавить,что синусоида сигнала обладает зна-
чительной  амплитудой, то смена знака про-
исходит  весьма быстро (скорость изменения
напряжения велика и,соответственно,прохож-
дение  через 0 - весьма быстрое), и помехи
едва  успеют себя проявить. Всплески помех
будут очень короткими,и процедура загрузки
их  не воспримет. Поэтому сигнал с большой
амплитудой может весьма успешно грузиться.
Но  в самом конце, последний полубит может
содержать  всплеск  помех  (ведь следующий
бит отсутствует). Я уверен в том, что вла-
дельцам   старых  компов  знакома  обидная
ситуация: грузили - грузили, а  в  итоге -
сброс! Облом конкретный  и весьма объясни-
мый.Большинство схем не обладали конденса-
тором обратной связи, который как раз поз-
волял  гасить  помехи. Достаточно было его
поставить (порой единицы пикофарад), чтобы
загрузка стала приемлемой. Наблюдая сигнал
в отладчике, я  подоткнул  кондёр. В итоге
проблема была решена.Но не совсем! Я хотел
построить более совершенную схему, с защи-
той от мощных всплесков и выделением поле-
зной  составляющей  среди помех. Помнится,
Dave/ADG рассказывал,как у него взорвалась
ЛН2 (аж  в потолок  кусочек чипа отлетел),
когда он подал сигнал с колонок.
   Приведённая  мной  схема это исключает.
Подумав  о загрузке через телефон, правда,
через переходной трансформатор,а не напря-
мую (напрямую  не советую), я  использовал
высоковольтный конденсатор и мощный резис-
тор на входе.Для разрядки кондёра на входе
есть  1 МОм. Далее ограничитель на диодах,
с  привязкой  к земле  резюком и первичным
подавлением  помех - конденсатором.  Затем
ограничитель/усилитель  на одном элементе,
опять  же  с кондёром, и компаратор. Вот и
всё! Впрочем, схема непроста.
   И,конечно,предусмотрен FLASH-генератор.
Если этот генератор не нужен,соедините ло-
гику по схеме, а конденсатор и резистор не
ставьте,и соедините 13 и 14 ножки микрухи.
Тогда можно заменить 470 мкФ на 100 мкФ, и
33 Ом на 100 Ом.
   Все диоды на схеме - КД521 или подобные
кремниевые.
   На схеме написаны уровни напряжения для
разных случаев:
  - лента  с дефектами, когда запись может
быть слабой (30 мВ);
  - вызов телефона,когда максимально боль-
шой сигнал (120 В);
  - разрыв  цепи  с  индуктивностью, когда
возможен  всплеск высокого напряжения (670
В).
   Частоты:
  - лента Me: 30 Гц - 17 кГц;
  - 5 соединённых компов: 25 Гц - 20 кГц;
  - 2 соединённых компа: 8 Гц - 200 кГц.
   Кроме этого, я решил расфильтровать пи-
тание.
   Для справедливости отмечу,что и без фи-
льтрации питания всё грузится хорошо,и не-
которые  элементы в ряде случаев не обяза-
тельны. Но  пренебрегать  излишками  и без
того  немаленькой, но  ответственной схемы
просто  глупо! Кстати - тот  же  генератор
своей  слабой  помехой снижает вероятность
загрузки  в некоторые  проблемные моменты.
Если  он  не нужен, схему можно упростить.
Однако  логику следует соединить, подвесив
первый вход к плюсу (для удобства),и филь-
трующие элементы цепи питания не исключать
(хотя  вводить  их  на Pentagon 128 весьма
неудобно).
   Схема  выхода  (ЦАПа)  кажется  излишне
сложной, но не без смысла. Резистор подпи-
рает выход к плюсу, учитывая его "техноло-
гическую слабость". Далее собственно дели-
тель с фильтрацией и линеариазацией харак-
теристики по выходу. Когда делал,рассчиты-
вал  на стандарты сопротивлений входов/вы-
ходов и амплитуду порядка 0.3 V.
   В итоге  получаем весьма культурный ин-
терфейс, которому  пофигу - откуда грузить
и куда писать. Ничего не боится! Недостат-
ки,конечно,есть. Не самое лучшее выделение
сигнала  из  помех (хотя для такой простой
схемы - нормальное),не самый мощный выход,
хотя "мягкий",не лучшая частотная характе-
ристика для стандартных процедур.Последнее
объясняется  полным  частотным  диапазоном
(20-20000 Гц), в котором пролезают помехи,
искажающие сигнал (при повреждённой/неуда-
чной записи). В ряде случаев удавалось за-
гружать, используя  переходник, в  котором
отдельно отсекались лишние частоты. Но это
для  действительно паршивых случаев. Запас
же даёт преимущество, если объединить нес-
колько компов в TAPE - локальную сеть. При
этом схема позволяет соединить вместе вход
и выход,и использовать затем лишь 2 прово-
да:минус питания (GND) и сигнал. Так можно
соединить,наверно,компов 8, хотя лишь один
из  них можно использовать для передачи на
остальные - в любой момент времени.
   Реально  делать  подобную  локалку я не
пробовал, и  потому  приведённые  на схеме
данные - условны (прикинул). Ограничение в
17 кГц для кассет (и то - четвёртого типа)
объясняются несовершенством протяжки ленты
и выпадением  подобных ВЧ-сигналов (посему
и подходят они лишь для синхронизации,а не
продолжительных данных).
   Для  универсальности  загрузки  с ленты
надо иметь возможность отрезать частоты, и
желательно "в процессе". Для обрезки ВЧ  у
первого  логического элемента можно поста-
вить переменный конденсатор. А для НЧ при-
дётся  использовать набор входных ёмкостей
с переключением. Изменять  ёмкости  больше
чем в 20 раз нецелесообразно.

   Данной  схемой  оборудовал уже 4 компа.
Работает отлично! Использую пишущий плейер
с микрофонным входом через специальный пе-
реходник/делитель (встроенный в металличе-
ский экранирующий штекер).Хитрость в коэф-
фициенте деления. Если пустить слишком бо-
льшой уровень в плейер, то его схема, ста-
раясь  придавить  сигнал, исказит его уро-
вень, и он  перестанет  грузится. Головку,
конечно, не трогаю, хотя многие старые за-
писи  просто так не загрузишь (лучше через
отдельный  старый магнитофон). На практике
девиация  и скоростые различия для Speccy-
данных  не  страшны. В ряде случаев эффект
даёт  включение функции MEGABASS, которая,
кстати, и верхи поднимает. А вот коррекция
типа ленты, кажется,лишь ухудшает... Авто-
ограничение громкости не использую. Прове-
ряю  запись  на  среднем её уровне. Но для
надёжности и на максимальном уровне должна
грузить (возможные дефекты могут проявить-
ся).
   Грузить  лучше  с одной стороны (у меня
выключатель для каждой). Дефекты на лентах
- редкость, но  бывают!  Вообще, при  всём
неудобстве  это  очень  надёжный носитель.
Иногда  для загрузки старых записей прихо-
дилось  подкладывать  ватку  под  пружинку
кассеты. Может  расшататься/отойти контакт
в гнезде (от платы) или в штекере. Однажды
после  записи  один канал оказался слабым.
Дело либо в кусочке мусора на головке,либо
в частичке поролона  пружинки, попавшей на
ленту. В обоих случаях - малейший зазор от
едва заметной крошки  сильно гасит запись.
Головку чищу, в основном,перед записью или
после старых лент.Для загрузки проблемати-
чных лент извращался по-всякому. Отдельные
блоки   "блокбастера"  BAGDAD  приходилось
грузить, меняя в отдельные моменты уровень
громкости  и  переключая каналы на лету...
Использую  классный, наглядный копировщик,
без полос и со счётчиком. Вообще,при нали-
чии  8-битного  АЦПа и, конечно, с большой
памятью можно загнать проблематичный поток
в файл  и оцифровать "визуально и логичес-
ки", через собственные программки.
 
                       By KSA-7G 28.4.2007