Что дальше?

Jun 02, 2020 17:30



Когда-то давно, в самом конце 80-х, я проектировал маленькую переносную кассетную магнитолу с самодельным ЛПМ. Проект так и остался лишь на бумаге, а сегодня у меня есть аналог того, о чем тогда мечтал - это Sharp QT-70. Хоть он и несравненно проще того, что было задумано. В то время микроконтроллерная техника у нас только начинала свое распространение, поэтому выбор между управлением ЛПМ на микроконтроллере и жесткой логике был совершенно не очевиден. Тогда я параллельно проектировал два варианта. Позже микроконтроллеры получили развитие и широкое распространение, выбор отпал сам собой. Стало очевидным, что управление ЛПМ надо строить на микроконтроллере. В следующих своих проектах кассетных дек я так и поступил. Одна из этих дек работает по сей день. Управление там сделано на микроконтроллере, его разработка не вызвала особых трудностей, в правильности выбора не было никаких сомнений. Кто бы мог подумать, что спустя 30 лет снова придется задуматься о таком же выборе.



На форумах по катушечным магнитофонам давно обсуждалась тема блока управления (БУ). Было много предложений по доработке штатного БУ, который выполнен на логике. Но наиболее прогрессивные участники всегда высказывались в пользу полной переделки БУ на микроконтроллере. Заменить полтора десятка логических микросхем не виделось сколько-нибудь серьезной проблемой. Поэтому в таких обсуждениях я тоже всегда принимал сторону микроконтроллерной реализации.

САР натяжения ленты тоже предлагалось реализовать программно. Современные контроллеры имеют высокую производительность, имеют встроенные АЦП и ЦАП (или ШИМ). Полоса сигналов здесь узкая, менее 100 Гц, поэтому никаких трудностей сделать это не виделось. Но почему-то дальше многолетних разговоров на форумах дело не шло.

Катушечный магнитофон - моя давняя мечта. В конце 80-х хотел его сделать с нуля, до сих пор хранится целая папка эскизов, по сегодняшним меркам довольно смешных. Но осуществить проект не позволяла техническая база, в основном с точки зрения механики. Надо было или самому работать на каком-нибудь заводе с широким станочным парком, или иметь там знакомых и деньги. Ничего этого у меня не было. Поэтому вынужденно переключился на гораздо менее любимый кассетный формат, сделать кассетный ЛПМ можно было на коленке в обычной квартире.

Сейчас возможности гораздо шире, и то я не решился делать ЛПМ с нуля. К счастью, в отличие от 80-х годов, сейчас вполне подъемно купить аппарат с хорошим ЛПМ и взять его за основу. Лучший ЛПМ среди бытовых аппаратов, безусловно, был у магнитофонов «Электроника» и «Олимп». Я выбрал самый лучший с моей точки зрения аппарат - «Электроника-004» и занялся его доработкой.

Настало время форумные разговоры воплотить в реальное железо. Наученный многочисленными неудачами в своих электронных проектах, решил не начинать грандиозную работу по переделке всего сразу (хотя такой альтернативный план есть), а двигаться как можно более мелкими шагами, чтобы свести риск неудач к минимуму.

Первое, чем я решил заняться - это счетчик ленты. Штатно был установлен механический счетчик, приводимый пассиком, что не лезло ни в какие ворота. Изучив имеющиеся аналоги (например, счетчик авторства Макса Крюкова или Fagear), пришел к приемлемой конструкции - все размещается на одной плате. Как мне кажется, получилось достаточно хорошо. Программирование этой платы было долгим и очень сложным. Поскольку счетчик многоскоростной, с индикацией реального времени и метража, а также с калибровкой диаметра обводного ролика, там порядочно математики. Возник сложный вопрос с переполнением. Между всеми режимами должна быть однозначная связь - мы можем их переключать, счет не должен нарушаться. Но в разных режимах разная информационная емкость дисплея и разный темп счета. Поэтому переполнение в разных режимах будет наступать не одновременно, что разрушит всякое соответствие. Пытался найти какое-то логичное решение проблемы, долго находился в полном тупике. Но надо было что-то делать, реализовал нелогичное решение, когда счетчик переполняется в самом неожиданном месте, достигая каких-то магических цифр. Причем в разных режимах - разных. До сих пор не знаю, как эту проблему надо решать правильно, осталась некоторая неудовлетворенность. Одно успокаивает - переполнение счетчика наступает редко. Ну и традиционно получилось дико неудобное управление из-за только одной кнопки. В остальном проект нормальный, провальным я его не считаю.

Второй блок, который я решил переделать - это блок управления. Значительная часть БУ отвечает за управление боковыми двигателями. С ними связан самый главный недостаток этого магнитофона - гудение. На исследование боковых двигателей было потрачено примерно полгода, проверялись различные способы питания, вплоть до частотного преобразователя. В результате пришел к тому, с чего начинал - штатной схеме управления. Единственное, что на практике помогает справиться с гудением - это механическая обработка статоров двигателей.

Кроме самой схемы питания двигателей БУ содержит САР натяжения ленты. Это главная функция БУ, которая работает постоянно. САР натяжения посвящены все последние посты в журнале, где описываются непреодолимые на сегодняшний день проблемы. Как один из вариантов, рассматриваю гибридный БУ с аналоговой САР натяжения. С одной стороны, эта полная глупость, все это в теории может делать микроконтроллер. Но от неумения его правильно запрограммировать можно смириться с лишней схемой. Вообще, в поздних магнитофонах Studer эта система была реализована именно так - микроконтроллер лишь управлял, а сам регулятор был аналоговый. Схемная реализация регулятора там была очень сложная. Но в то время производительность микроконтроллеров была значительно ниже, чем сегодня. Любительские проекты с программной стабилизацией натяжения встречал (например, БУ от того же Fagear), но ни один из них, вроде, не доведен до конца.

Но не только САР натяжения отталкивает меня от нового БУ. В аппаратном плане особых претензий к этому блоку нет, а вот программная часть получилась страшно сложной и запутанной. Никогда не мог подумать, что так сложно будет заменить микроконтроллером полтора десятка микросхем простой логики. Но логика - это параллельно работающая система, а тут это все надо запихнуть в одну исполняющуюся последовательно программу. С реализацией многозадачности я знаком, тут параллельно крутится несколько процессов, используя кооперативную многозадачность. Но прозрачности коду это не добавляет. Программа имеет такой вид, что туда страшно влезать. Она основана на каких-то бесконечных заплаточках, где тронув одно, рушится другое. Бывает, когда некоторая программа так и просит рефакторинга кода, когда очевидно, как должно быть, и вопрос только в силах и времени, чтобы привести ее к такому виду. Тут же ситуация иная. Если бы я сегодня сел за рефакторинг, то не знал бы, что делать. Не удается построить красивую структуру программы, с которой было бы приятно иметь дело.

Широкие возможности микроконтроллерной реализации позволяют сделать новые функции. Но с добавлением каждой функции приходится делать выбор, как именно ее реализовывать. Иногда выбор настолько сложный, что проще его отложить и сделать в программе опцию. Сейчас флаги опций уже занимают два байта, а вся программа заполнена бесконечными проверками условий, что делает ее крайне запутанной.

Новые функции требуют новых кнопок и новых светодиодов, которых нет. Приходится вешать по несколько функций на одну кнопку. Порой думаешь, что лучше бы этих новых функций не было вовсе. Вечное подвешенное состояние - что делать, а что нет.

В результате проект нового БУ превратился в нечто отталкивающее и неприятное. Кроме красивой платы больше ничего хорошего в нем нет. Спустя 30 лет я снова всерьез задумываюсь, какой БУ мне оставить в магнитофоне - микроконтроллерный или на жесткой логике. Как тогда, взвешиваю все «за» и «против».

1. САР натяжения. В штатном БУ устойчиво работает, в новом находится на грани устойчивости. Любое изменение (например, новые датчики) приводит к заметному ухудшению качества работы. Переходные процессы в новом БУ красивей, зато есть вечная боязнь поймать генерацию и есть дерганье боковых двигателей шумоподобным сигналом.

2. Резкое включение перемоток. Это главный минус штатного БУ. Порой приводит даже к деформации ленты. В новом БУ есть режим архивной (щадящей) перемотки, когда отношение к ленте бережное. Но получается довольно неудобно - есть два разных режима перемотки на каждой кнопке. Такой режим реализовать в старом БУ довольно сложно. А плавный старт настоящей перемотки возможен только в случае переделки блока питания магнитофона. Это потребует изменений в программе БУ. Для старого БУ такое тоже можно сделать, но только с добавлением новых схем.

3. Преднатяжение ленты. Оно появилось в новом БУ и используется для выбора петли и проверки наличия ленты. В эксплуатации это удобно, но выгладит некрасиво - при переключениях режимов есть подергивания ленты. Даже не знаю, плюс это, или минус. Порой хочется, чтобы было как в старом БУ.

4. Автостоп. Логика автостопа в новом БУ более интеллектуальная, датчик окончания ленты позволяет производить старт на ракорде, срабатывает по перепаду, есть защита от коротких повреждений рабочего слоя ленты. Задействованы датчики натяжения, что ускоряет срабатывание автостопа. Все это удобно на практике. Такое можно реализовать и в БУ на логике, но ценой дополнительных схем. Но и со штатным автостопом вполне можно жить.

5. Торможение двигателями. Оно реализовано в новом БУ. Особых преимуществ не дает и может быть легко реализовано на старом БУ простой доработкой.

6. Управление электромагнитами. В новом БУ каждый электромагнит имеет стартовый импульс и пониженный ток удержания. Который к тому же стабилизируется, в результате уменьшается поле рассеяния и уровень помех. В старом БУ ступенчатое управление есть только для электромагнита ролика. В принципе, особого улучшения это не дает.

7. Дистанционное управление. В новом БУ есть поддержка ИК ДУ. В штатном БУ оно проводное. Но с помощью дополнительной платки я добавил ИК ДУ. Конечно, количество кнопок ограничено на уровне штатных кнопок управления. Хотя в принципе можно сформировать какие-то дополнительные сигналы и управлять логикой где-то внутри. А может они и не нужны.

8. Программные режимы - Auto Reverse, Auto Play, Auto Rewind. Ничего этого в старом БУ нет, в новом - есть. Но насколько это надо? Из-за отсутствия органов управления доступ к этим режимам затруднен, а логика БУ стала более сложной и менее дружественной.
9. Поиск по счетчику. В новом БУ планировалась интеграция с электронным счетчиком - поиск нуля, поиск точки в памяти, поиск по времени. Пока это не реализовано. Для старого БУ такое невозможно. Максимум, можно сделать поиск нуля счетчика, и то без предварительного торможения, т.е. неточно.

10. Потребление. С переводом штатного БУ на КМОП-серию 74НС потребление стало ниже, чем у нового, так как тут нет переключающихся схем. Хотя и у нового оно невелико.

11. Уровень помех. У штатной платы на логике нет никаких работающих генераторов, поэтому она не генерирует помех. Микроконтроллер шумит, хотя практически в звуковом тракте магнитофона помех от него не слышно.

12. Помехоустойчивость. Есть нарекания по поводу плохой помехоустойчивости штатного БУ. Там могут самопроизвольно включаться или выключаться режимы. Этому способствует статическое электричество, которое может накапливаться на катушках с лентой. Такие сбои я несколько раз наблюдал. Но с переводом БУ на серию 74HC они, вроде, прекратились. С новым БУ случайных сбоев не наблюдал.

Как видно, радикальных преимуществ БУ на микроконтроллере не дает. Со старым БУ вполне можно жить, единственный серьезный минус - это резкое включение перемотки. Но какой-то доработкой его можно победить. Какие возможны варианты дальнейших действий?

1. Поставить предсказуемый и приятный в общении штатный БУ. Некоторые доработки в нем я уже сделал, можно будет сделать что-то еще. Но в этом случае пойдет в корзину вся работа над новым БУ, которая отняла полтора года жизни. Жалко, однако...

2. Допилить прошивку нового БУ. На данный момент этот пункт является невыполнимым. В первую очередь, в связи с тупиком в САР натяжения. Ну и со структурой программы надо что-то делать.

3. Сделать новый БУ на STM32. Чисто в теории, с САР натяжения тогда должно полегчать, ведь можно поднять частоту дискретизации до невиданных высот. Но на разработку уйдет еще как минимум год, причем результат под вопросом.

4. Сделать гибрид цифрового и аналогового БУ: процессором заменить только логику управления, а САР натяжения оставить аналоговой. Вроде, особых подводных камней не видно, жалко только готовую плату, которая пойдет в корзину.

Update: часто звучит совет взять мощный процессор, большой графический дисплей и т.д. Это имеет смысл, но только при полной переделке аппарата. Такой вариант у меня тоже продумывается, но это для другого аппарата. На этом я тренируюсь реализовывать отдельные функции. Если научусь - тогда можно браться за большую переделку.

Пока рассматривается только БУ, совместимый со штатным. Никаких других функций он нести не должен. Вопрос в том, по какому пути дальше двигаться при создании такого БУ.

Конечно, самым желательным является вариант 2, тогда не пропадет зря проделанная работа, да и ответственность есть перед людьми, которые повторили печальную плату этого варианта БУ.

reel-to-reel, облом, микроконтроллер, Электроника-004, electronics, магнитофон, катушечник

Previous post Next post
Up