leoniv.diod.club

Электронный счетчик для «Электроника-004»

В магнитофоне «Электроника-004» используется механический счетчик расхода ленты. Хоть он на скорости ленты 19.05 см/с и показывает нечто близкое к реальному времени в секундах, все равно такой счетчик для магнитофона высшего класса не такого уж старого года выпуска является нонсенсом.

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

В катушечных магнитофонах высокого класса, как правило, применяются электронные счетчики ленты. Например, такой счетчик имеется в магнитофоне Akai GX-747. Рядом со счетчиком расположено несколько кнопок и светодиодов, которые связаны с дополнительными функциями счетчика.

У магнитофона Teac X-2000R все несколько проще, но счетчик тоже имеет ряд дополнительных функций и связанных с ними кнопок и светодиодов.

Для реализации электронного счетчика требуется датчик вращения, который будет формировать электрические импульсы, частота которых пропорциональна скорости движения ленты. Желательно формировать и сигнал направления движения ленты, потому что при смене режима работы катушки могут некоторое время вращаться по инерции, в таких случаях определить направление движения ленты по сигналам управления весьма затруднительно.

Получение информации о частоте и направлении вращения обычно осуществляется с помощью инкрементальных энкодеров. Такие энкодеры формируют на выходе два сигнала, чаще всего прямоугольной формы, которые сдвинуты друг относительно друга по фазе на угол 90°. Про такие сигналы говорят, что они находятся в квадратуре, или просто – являются квадратурными.

Квадратурные энкодеры могут быть механическими, где используется скользящий контакт. Примером могут служить распространенные энкодеры PEC-12 и PEC-16 фирмы Bourns. Такие энкодеры широко используются в панелях управления различных приборов. Но скользящий контакт обладает рядом недостатков: дребезгом, повышенным трением, невысокой надежностью, малым сроком службы. Более качественные энкодеры используют оптический способ считывания информации. Они обычно имеют диск с прорезями, через которые свет от излучателя попадает на фотоприемник. Используются два фотоприемника, установленные под определенными углами. В результате на выходе получаются квадратурные сигналы. Оптические энкодеры дороже, зато они надежней и практически не нагружают вращающиеся механические детали механизмов.

Существуют и другие способы бесконтактного считывания информации о вращении, например, с помощью датчиков Холла или индуктивных датчиков. Но в данном случае проще всего реализовать оптический способ считывания информации. В магнитофоне «Электроника-004» есть подходящее место, где может быть установлен оптический датчик. На правом обводном ролике имеется металлическая крыльчатка, которая используется в составе датчика движения ленты. Эту крыльчатку вполне можно использовать и для оптического датчика счетчика ленты.

Декодировать квадратурные сигналы довольно просто. В самом примитивном случае используется один D-триггер. Тактирование триггера производится одним из сигналов, а на вход D поступает другой. Если фронт тактового сигнала приходит при высоком уровне второго сигнала – вращение вперед. Если при низком – назад. У такого декодера есть ряд недостатков. Представим ситуацию, что диск энкодера не вращается, а совершает небольшие повороты вперед-назад. При повороте в одну сторону будет формироваться фронт тактового сигнала, что будет вызывать счет. При повороте в другую сторону будет формироваться спад тактового сигнала, при этом счета происходить не будет. В результате «дрожание» на одном месте приведет к ошибочному монотонному счету.

Если рассмотреть логические состояния выходных сигналов энкодера, то прохождение одной лопасти крыльчатки будет вызывать смену 4-х состояний. Можно реализовать такую логику работы, когда любая смена состояния будет вызывать счет. Причем направление счета будет всегда соответствовать направлению вращения крыльчатки. Такой декодер называют 4X квадратурным декодером. Есть декодер, который производит счет каждого второго состояния, он называется 2X квадратурным декодером. Есть и 1X декодер, который фактически считает лопасти, т.е. считает каждое четвертое состояние. Именно 1X декодер получается на D-триггере. Хотя и такой декодер можно реализовать лучше, избавившись от ошибок счета.

Если проанализировать состояния выходных сигналов квадратурного энкодера, оказывается, что для вычисления направления проще всего использовать предыдущее значение одного из сигналов.

4X квадратурный декодер может быть реализован на логике, но в данном случае его проще реализовать программно.

Некоторые микроконтроллеры (например, семейства STM32) имеют возможность аппаратно декодировать сигналы квадратурного энкодера. Для этого их таймеры имеют специальный режим работы. Существуют и специализированные микросхемы для обработки сигналов квадратурного энкодера, например, HCTL-2000, LS7166. Но аппаратные решения имеют смысл только для скоростных энкодеров. Здесь же частота вращения невысокая, с декодированием вполне справится любой микроконтроллер программно. Микроконтроллеры семейства STM32, которые имеют аппаратный квадратурный декодер, хоть формально и лучше подходят для этой задачи, но здесь их применение вряд ли оправдано.

Для реализации 4X квадратурного декодера может пригодиться такая возможность микроконтроллеров, как прерывания по изменению состояний выводов порта. Такая возможность есть в линейке AVR-микроконтроллеров ATmega48/88/168/328. Учитывая предполагаемый объем необходимой памяти, для счетчика был выбран контроллер ATmega88. Декодирование можно реализовать в прерывании по изменению двух выходных сигналов с энкодера. Текст 4X квадратурного декодера приведен ниже:

#pragma vector = PCINT0_vect
__interrupt void Opto_Handler(void)
{
  static bool preF1 = 0;
  bool nowF1 = TCount::Pin_F1;
  bool nowF2 = TCount::Pin_F2;
  (preF1 == nowF2)? TCount::Count-- : TCount::Count++;
  preF1 = nowF1;
}

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

Надо отметить, что для подавления дребезга механических контактов гистерезис бесполезен. В отличие от оптических датчиков, там «шум» при переключении имеет полную амплитуду и никак не отличается от полезного сигнала, не считая скорости переключения. А смысл гитерезиса заключается как раз в том, чтобы подавлять сигналы малой амплитуды. Для механических контактов требуется не амплитудная, а временная селекция сигналов – надо пропускать на выход медленные сигналы и подавлять быстрые. Это может сделать фильтр нижних частот, например, в виде RC-цепочки, или специальный программный алгоритм подавления дребезга.

Квадратурные декодеры 2X и 4X имеют преимущество в том, что при том же количестве прорезей позволяют получить в 2 или 4 раза больше импульсов на оборот крыльчатки и повысить разрешающую способность. Например, для крыльчатки обводного ролика магнитофона «Электроника-004», которая имеет 5 лопастей, эти декодеры позволят вместо 5-ти импульсов на оборот получить 10 или 20 импульсов. Надо отметить, что для 2X и 4X квадратурных декодеров может наблюдаться некоторая неравномерность выходных событий при равномерном вращении диска. Это связано с тем, что любой энкодер имеет определенные погрешности изготовления. Особенно эта неравномерность заметна в простых оптических энкодерах, где световой пучок слабо коллимирован. Длительность импульса на выходе оптического датчика не равна в точности времени прохождения прорези диска, так как чувствительная зона фотоприемника представляет собой не точку, а окружность определенного радиуса. В качественных энкодерах эти погрешности сведены к минимуму. При использовании 1X квадратурного декодера погрешности будут меньше, но все равно они останутся из-за некоторой неравномерности изготовления прорезей. Для счетчика ленты равномерность событий энкодера не является критичной, а вот иметь побольше событий на оборот весьма желательно. Поэтому здесь вполне уместно применение 4X квадратурного декодера.

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

К сожалению, в магнитофоне «Электроника-004» применение щелевых оптронов со штатной крыльчаткой затруднено, так как крыльчатка расположена слишком близко к передней панели. Такой оптрон просто не влезет. Но есть еще один вид оптронов с открытым оптическим каналом – это отражательные оптроны. Они располагаются только с одной стороны крыльчатки, в данном случае их можно установить снизу. Отражательные оптроны более капризны в работе. Они более чувствительны к внешней засветке и требуют отражающей поверхности с определенными свойствами. Такие оптроны чаще всего работают в ИК-диапазоне, типичная длина волны составляет 940 нм. Коэффициент отражения на этой длине волны у разных поверхностей может сильно отличаться, причем иногда он может быть совсем не таким, как для видимого света. Хорошо отражают ИК серебристые поверхности – металлы, серебристая краска, серебристая пленка. Неплохо отражает пластик светлых цветов. Крыльчатку с нижней стороны можно покрасить серебристой краской, но оказалось проще заклеить ее пленкой Oracal серебристого цвета. Сигнал с оптронов это удвоило. Сверху крыльчатку оставил без изменений.

Отражательные оптроны бывают разных форм и размеров. Для упрощения компоновки лучше подходят малогабаритные оптроны. Есть целое семейство малогабаритных оптронов с похожими характеристиками. Например, CNB1302, ON2170, KTIR0711S, KTIR0811S, KTIR0821DS, ITR8307, TPR-105F, QRE1113. Есть похожие оптроны и в SMD имполнении: KRC011, EE-SY193, EE-SY199. Самыми доступными оказались оптроны KTIR0821DS.

Одной из проблем в применении оптронов является их низкое быстродействие. Это особенно актуально для тех типов, которые реализованы на основе составного фототранзистора (например, KTIR0821DS). Чтобы оценить требуемые частотные рамки, надо рассчитать максимальную скорость вращения обводного ролика. При перемотке скорость ленты может достигать 10 м/с. При диаметре ролика около 40 мм его частота вращения составит около 80 об/с (4800 об/мин). Учитывая количество лопастей на крыльчатке, максимальная частота сигнала с выхода каждого оптрона составит около 400 Гц.

Существуют методы повышения быстродействия фотоприемников. Как правило, они сводятся к одному – уменьшению размаха напряжения на выходе фотоприемника, чтобы облегчить перезаряд паразитных емкостей. Чаще всего делают токовый вход усилителя фотоприемника, например, применяя инвертирующий усилитель на ОУ. Можно поступить проще и применить усилительный каскад с общей базой на одном транзисторе. Он тоже значительно снизит размах напряжения на выходе фотоприемника. Подобная схема применяется для высокоскоростных оптических датчиков в магнитофоне Studer A820.

Конечно, здесь не требуется такая большая частота, но быстродействие оптронов все равно лучше проверить. Для проверки на фотодатчик оптрона было направлено излучение внешнего ИК-диода, который питался от генератора прямоугольных импульсов частотой 1 кГц. Ниже приведены фотографии экрана осциллографа (масштаб по вертикали 1V/div, по горизонтали 0.5 ms/div).

Оптрон с одиночным транзистором, нагрузка 1 кОм:

Оптрон с одиночным транзистором + внешний каскад с ОБ, нагрузка 1 кОм:

Оптрон с составным транзистором, нагрузка 1 кОм:

Оптрон с составным транзистором + внешний каскад с ОБ, нагрузка 1 кОм:

Видно, что оптрон с составным транзистором имеет быстродействие заметно хуже. Добавление каскада с ОБ значительно улучшает ситуацию.

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

Такое решение, кстати, было поддержано большинством участников форумов по магнитной записи, которые тоже имеют планы заменить счетчик в таком аппарате. Сравнение нескольких вариантов рисунков передней панели с разным размером цифр позволило сделать выбор оптимального размера индикатора. Подошел индикатор Kingbright SA39-11SRWA с высотой цифры 0.39 дюйма.

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

Для реализации статической индикации можно использовать, например, цепочку сдвиговых регистров. Каждый разряд индикатора тогда будет подключаться к отдельному регистру, загружать которые можно по последовательному интерфейсу, что требует минимального количества соединений с процессором. Количество микросхем в схеме при этом заметно возрастает, но есть еще одно неудобство – это необходимость включения в цепь каждого сегмента всех индикаторов отдельных резисторов. В случае 6-ти разрядов индикатора требуется 48 резисторов. Есть возможность от них избавиться, если применить специальные микросхемы драйверов светодиодов. Это те же сдвиговые регистры, но их выходы устроены так, что обеспечивают постоянный ток. Примером может служить микросхема MBI5170. Но цена и доступность подобных микросхем оставляет желать лучшего. В результате оптимальным решением является применение 6-ти сдвиговых регистров типа 74HC595 с резисторами размером 0603 на каждом их выходе.

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

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

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

Если напряжение питания будет продолжать падать, сработает встроенный в процессор детектор уровня питания (BOD), который запрограммирован на 2.7 В, что вызовет сброс процессора. При восстановлении питания процессор стартует обычным образом, считывает из EEPROM сохраненное значение и после этого готов к продолжению счета.

Особой обработки требует ситуация, когда питание лишь кратковременно «просело», а не пропало совсем (brown out, а не black out). Компаратор зарегистрирует падение напряжения, но BOD может не сработать. Для такого случая предусмотрен автоматический возврат в нормальный режим работы. Если после сохранения данных в EEPROM нормальный уровень питания восстановится, порты микроконтроллера будут снова настроены в рабочий режим, и счет продолжится с минимальной потерей.

Чтобы подсчитать необходимую емкость буферного конденсатора, надо обратиться к графикам зависимости потребляемого тока микроконтроллера от тактовой частоты и напряжения питания. При тактовой частоте 16 МГц и напряжении питания 4.5 В потребление составляет примерно 6.3 мА. Зависимость от напряжения питания почти линейная, поэтому микроконтроллер как нагрузку можно приблизительно представить в виде резистора сопротивлением порядка 0.7 кОм.

Для сохранения одного байта в EEPROM требуется время 3.4 мс. Сохранять нужно 8 байтов (по 4 на счетчик реального времени и счетчик длительности фрагмента), что займет 27.2 мс. Конденсатор надо выбирать с некоторым запасом, скажем, с временем разрядки до 2.7 В порядка 50…100 мс. Моделирование показывает, что для этого достаточно емкости 220 мкФ. Это совсем небольшой по размеру конденсатор: алюминиевый диаметром 8 мм и высотой 6 мм, или танталовый в корпусе D (7.3 x 4.3 x 2.9 мм).

В результате получается схема counter_sch.pdf, основой которой является микроконтроллер U4 типа ATmega88. Питается микроконтроллер через диод Шоттки VD3, напряжение питания контроллера получается примерно +4.5 В. Для питания контроллера во время сохранения данных используется буферный конденсатор C13.

К контроллеру подключен светодиодный дисплей HG1…HG6 через цепочку сдвиговых регистров U5…U10. Питание регистров осуществляется напряжением +5 В. Разница напряжений питания контроллера и сдвиговых регистров незначительна и не сказывается на надежности передачи данных. Предусмотрена установка индикаторов как с общим анодом (устанавливается перемычка R70), так и с общим катодом (устанавливается перемычка R1). При смене типа индикаторов требуется смена прошивки. Для индикаторов с общим анодом дополнительно предусмотрен стабилизатор U12 (который можно не устанавливать). Регулируя с помощью подбора резистора R74 выходное напряжение этого стабилизатора, можно регулировать общую яркость дисплея.

Обработка сигналов оптодатчиков осуществляется с помощью транзисторов VT1, VT2 и сдвоенного компаратора U3. Резисторами R7, R8 устанавливается величина гистерезиса, порог срабатывания задан резисторами R1, R2. Одновременно эти резисторы задают ток питания излучателей оптронов.

К микроконтроллеру подключена кнопка «Сброс» SB1, вместо которой может быть установлен энкодер ENC1. При этом требуется смена прошивки.

Прошивка может загружаться в контроллер внутрисхемно, для этого на плате предусмотрен 6-контактный разъем XP3 (ISP). Разводка этого разъема стандартная, рекомендованная фирмой «Atmel». Для загрузки прошивки может быть использован любой программатор, поддерживающий контроллер ATmega88, например, клон STK-500.

Для связи с блоком управления (реализованном на микроконтроллере) предусмотрен последовательный порт. Обмен ведется через встроенный UART, связь полудуплексная, используется физический уровень RS-485 (дифференциальный сигнал). Все необходимые сигналы выведены на разъем XP2.

Если последовательный порт не используется, можно установить перемычки R14…R16 и использовать разъем XP2 для подключения к плате счетчика других логических сигналов (в текущей прошивке не поддерживается).

Для конфигурирования режима работы счетчика на плате предусмотрены три перемычки JMP1…JMP3. В текущей версии прошивки задействована только перемычка JMP3, при установке которой вместо скоростей 9 и 19 поддерживаются скорости 19 и 38. Если счетчик устанавливается в трехскоростной магнитофон, то вместо установки перемычки JMP3 на плату счетчика можно подать дополнительный логический сигнал (на порт контроллера PC2). При низком логическом уровне будет включаться набор скоростей 19 и 38.

Чтобы конструкция счетчика была технологичной, желательно все компоненты разместить на одной печатной плате. Для этого требуется решить задачу обеспечения нужной высоты установки для каждого компонента. Критичными здесь являются три вида компонентов: кнопка, индикаторы и оптроны. Если плату установить над шасси на высоте 20 мм, данная задача решается. Индикаторы оказываются на расстоянии примерно 1 мм от передней панели, кнопка с колпачком примерно соответствует по высоте кнопке оригинального счетчика, а оптроны оказываются на нужном расстоянии от крыльчатки, если их приподнять над платой на 3…3.5 мм. Это сделать несложно, так как оптроны имеют выводы достаточной длины. Для более точной и удобной установки можно изготовить прокладку под оптроны.

Учитывая приливы шасси высотой 2 мм в местах крепления механического счетчика, требуемая высота крепежных стоек составляет 18 мм. Стойки – латунные, с одной стороны имеют внутреннюю, а с другой стороны внешнюю резьбу М3. На плате предусмотрено место для дополнительной опоры длиной 26 мм, которая может быть установлена для уменьшения деформации платы при нажатии кнопки.

Размеры платы с правой стороны особо не ограничены, что позволило разместить на ней 6 индикаторов. Под платой находится пружина и другие детали натяжителя ленты, зазор составляет примерно 4 мм. Это накладывает ограничение на размещение на нижней стороне платы высоких компонентов. При разводке платы удалось разместить все компоненты только на верхней стороне платы.

Кнопка сброса тоже впаивается прямо в плату, это стандартная тактовая кнопка с высотой толкателя 9.5 мм. Штатный колпачок хорошо садится на такой толкатель.

В итоге получилась вот такая печатная плата:

1 – оптические датчики; 2 – микроконтроллер; 3 – перемычки для задания опций; 4 – дисплей; 5 – место для дополнительной опоры; 6 - кнопка сброса и выбора режима; 7 – разъем подключения счетчика; 8 – дополнительный разъем; 9 – разъем для программирования; 10 – точки крепления платы.

Печатная плата счетчика имеет небольшие размеры (83.5 х 54.5 мм) и относительно несложная. Поэтому она может быть изготовлена в домашних условиях по LUT-технологии:

Собранный на промышленной плате счетчик выглядит так:

Надо остановиться на некоторых особенностях сборки счетчика.

Номиналы токоограничивающих резисторов для индикаторов (R22…R69), указанные на схеме, в случае применения ярких индикаторов могут оказаться слишком малыми. В своем экземпляре счетчика увеличил эти резисторы до 680 Ом. На плате предусмотрена установка дополнительного стабилизатора для питания индикаторов (U12, R73, R74, R72). Этот стабилизатор позволяет регулировать яркость всех индикаторов с помощью одного резистора (R74).

Оптодатчики U1 и U2 могут использоваться и в SMD-исполнении. Тогда в отверстия для их выводов впаиваются пары штырьков с шагом 2.0 мм. Затем пластик поднимается над платой на 1 мм, и штырьки обрезаются вровень с пластиком. Затем пластик снова опускается вниз до уровня платы, а на штырьки сверху припаивается SMD-корпус. Номиналы элементов на схеме приведены для оптронов KTIR0821DS, которые имеют фототранзисторы Дарлингтона. Для оптронов с одиночным фототранзистором (например, ITR8307) номиналы резисторов R3 и R4 должны быть 100 кОм, R7 и R8 - 2.2 МОм. Возможно, эти номиналы придется подобрать для конкретного типа оптронов.

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

Более подровно все особенности сборки рассмотрены в файле History_counter.txt

В программе счетчика реализованы следующие функции:

  • Индикация реального времени до ±9.59.59 (часы.минуты.секунды)
  • Индикация времени фрагмента до ±9.59.59 (часы.минуты.секунды)
  • Индикация метража до ±2999.9 м
  • Индикация реальной скорости ленты до 999.999 см/с
  • Калибровка диаметра ролика от 30 до 60 мм
  • Автоматическое сохранение всех величин в EEPROM

Управление счетчиком производится с помощью одной кнопки. Различается короткое нажатие, удержание в течение 1 сек. и длинное удержание в течение 4 сек.

Короткое нажатие кнопки переключает режимы индикации: "Реальное время", "Время фрагмента", "Метраж", "Скорость" и так далее по кругу.

Реальное время отображается в часах, минутах и секундах. В качестве разделителей между ними используются точки.

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

Метраж отображается в метрах и дециметрах, в качестве разделителя используется точка, которая в данном случае отображается во втором разряде справа.

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

Счет времени и метража ведется вверх и вниз (со знаком «минус»). Это удобно для реверсного аппарата, так как при обратном направлении движения ленты можно наблюдать реальное время (хоть и со знаком минус), а не обратный счет.

Удержание кнопки в течение 1 сек. производит сброс текущих показаний (в режиме "Скорость" сброс не производится). Для режимов "Реальное время" и "Метраж" используется общий счетчик, поэтому при сбросе одной величины будет сброшена и другая. "Время фрагмента" сбрасывается независимо. По сути, это второй независимый счетчик реального времени.

При удержании кнопки в течение 4 сек. производится вход в режим калибровки диаметра обводного ролика. Вход возможен из любого режима индикации, но если нежелательно, чтобы сбрасывался счетчик, вход надо осуществлять из режима "Скорость". При входе в режим калибровки на дисплей выводится буква "d" и текущее значение диаметра ролика (до сотой миллиметра). Чтобы выйти из режима калибровки без изменения диаметра, надо сделать короткое нажатие кнопки.

Если в режиме калибровки удерживать кнопку в течение 4 сек., на дисплее появится мигающая надпись "CAL", и начнется процесс калибровки. Примерно через 20 сек. процесс калибровки закончится, при этом будет выведено новое значение диаметра ролика. Калибровку можно повторить длинным удержанием кнопки, или выйти из нее коротким нажатием. При этом новое значение диаметра будет сохранено.

Если при калибровке произошла ошибка (например, скорость ленты при калибровке имела сильное отклонение от 19.05 см/с), то на дисплее вместо нового значения диаметра ролика появится надпись "Err". В этом случае можно или повторить калибровку длинным удержанием кнопки, или выйти из нее коротким нажатием, при этом новое значение сохраняться не будет. Допустимые пределы калибровки для диаметра ролика – от 30 до 60 мм.

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

При вычислении реального времени учитывается скорость 9 или 19, которая выбирается с помощью логического сигнала 19/9 (контакт 1 разъема XP1). Для работы на скорости 19 и 38 на плате надо установить перемычку J3.

Наибольшие затруднения вызвала обработка переполнения. Пришлось ограничить диапазоны счета, чтобы ни в одном из режимов переполнение не наступало. Информационная емкость дисплея в режиме метража составляет ±9999.9 метров, а в режиме реального времени составляет ±9 часов, 59 минут, 59 секунд (±35999 секунд). На скорости 38.1 см/с это соответствует метражу примерно ±13716 м, на скорости 19.05 см/с это ±6858 м, на скорости 9.525 см/с это ±3429 м. Как видно, наиболее жесткое ограничение дает индикация реального времени на самой низкой скорости. Чтобы избежать переполнения, пришлось ограничить диапазон метража величиной ±2999.9 м, что достаточно для катушек любого размера с любой толщиной ленты. В результате диапазоны реального времени составляют:

  • на скорости 9.525 см/с до ±31496 секунд (±8 часов, 44 минут, 56 секунд),
  • на скорости 19.05 см/с до ±15748 секунд (±4 часа, 22 минут, 28 секунд),
  • на скорости 38.1 см/с до ±7874 секунд (±2 часа, 11 минут, 14 секунд).

Переполнение может возникнуть только в том случае, если продолжать проигрывание нескольких катушек без сброса счетчика. Возможно, имеет смысл сделать автоматический сброс счетчика при включении рабочего хода после заправки ленты.

Подключается счетчик к магнитофону с помощью всего трех проводов (разъем XP1 счетчика), которые идут к разъему блока управления ведущим двигателем (разъем XT1 регулятора скорости). Порядок подключения следующий:

  • Контакт 1 XP1 (19/9) подключается к контакту 7 XT1 (нижняя скорость).
  • Контакт 2 XP1 (+5V) подключается к контакту 6 XT1 (+5 В).
  • Контакт 3 XP1 (GND) подключается к контакту 3 XT1 (корпус).

Для программирования микроконтроллера к разъему XP3 необходимо подключить программатор. Во время программирования на плату счетчика через разъем XP1 должно быть подано напряжение питания +5 В. Питание от программатора здесь невозможно, так как в схеме имеется диод VD3. Если используется программатор, совместимый с STK-500, то для программирования достаточно запустить файл Prog.bat. При этом будут записаны фузы и сама прошивка. Если используется другой программатор, фузы придется сыставить вручную. На рисунке ниже показано, как должны выглядеть фузы в AVR Studio.

Для дисплея окно в панели надо увеличить симметрично вверх и вниз, а также вправо до размеров 67 х 18 мм. Сверху отверстие закрывается дымчатым оргстеклом размером 69 х 20 мм и толщиной 3…4 мм, в котором по контуру фрезеруется ступенька 1 х 1 мм.

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

Счетчик имеет достаточно много функций, что может запутать пользователя. Как альтернатива, есть вариант прошивки с минимальным набором функций (Counter_mini.hex): только счет реального времени и вспомогательный режим калибровки диаметра ролика. Сброс производится по нажатию кнопки, вход в калибровку - по удержанию.

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

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

Обновления:

23.04.2019 Добавлен вариант счетчика для STM-310, разведенный на трех отдельных платах (плата индикации и кнопок, плата оптодатчика, плата прооцессора). Предусмотрены три кнопки (RESET, METRAGE, TIME). Вариант прошивки счетчика для этого варианта плат пока не делал за ненадобностью.

22.05.2019 Добавлена новая версия прошивки (1.03), изменения коснулись алгоритма измерения скорости, теперь быстрее определяется остановка ленты. Также добавлен вариант прошивки с уменьшенной разрядностью индикации скорости.

22.05.2019 Добавлена новая ревизия печатной платы (Rev4), крепежные отверстия смещены вправо на 1 мм, немного изменена форма платы, по-другому подключено питание разъема программирования.

10.09.2019 Добавлена новая версия прошивки (1.04). Изменен алгоритм работы кнопки: теперь короткое нажатие - это сброс, а удержание - переключение режимов. Вход в режим калибровки - короткое нажатие из режима отображения скорости. Внесены и другие мелкие исправления. Старый алгоритм работы кнопки тоже поддерживается, это выбирается опцией компиляции. В архиве есть все варианты файлов прошивки.

10.09.2019 Добавлена версия прошивки для трехплатного варианта счетчика STM-310. Пока поддерживается только одна кнопка RESET. Прошивка сделана на основе версии 1.04 и названа 2.04. Находится внутри архива counter_stm.zip.

Downloads:
counter_user.pdf (352 kB) - руководство пользователя.
counter_sch.pdf (143 kB) - принципиальная схема.
counter_pcb.pdf (121 kB) - печатная плата.
counter_pcad.zip (1797 kB) - файлы разводки платы (PCAD 2006, pdf для LUT, Gerber).
counter_source.zip (262 kB) - прошивка, исходный текст (C++ IAR EWAVR).
counter_stm.zip (770 kB) - вариант счетчика на трех платах для STM-310.
Ридико Леонид Иванович www.leoniv.diod.club e-mail: wubblick@yahoo.com