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