Из журнала 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