Inferno #10
30 апреля 2007
  Железо  

DIY - Универсальный 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 




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Тусовка - Полный отчет с FunTop'98: часть третья. Мысли во время Music compo: Virtual Vision group, Rage Technology.
Почта - Совсем недавно появился первый номер нашей газеты в ФиДо... и реакция последовала почти сразу.
Реклама - реклама и объявления.

В этот день...   23 сентября