По материалам

Скачать книгу
Индикатор уровня звукового сигнала 
В бытовой электронике для индикации уровня сигнала используют всевозможные индикаторы уровня. Десять лет назад они, в основном, были стрелочными, но на современном этапе развития микроэлектрони­ки используют светодиодные или газоразрядные индикаторы совместно со специализированными микросхемами. Индикатор, предлагаемый ав­тором, — светодиодный, 16-разрядный. Он выполнен на доступных элементах как автономное, функционально завершенное устройство и может использоваться в звуковых усилителях, эквалайзерах и магни­тофонах для индикации заряда аккумулятора и т.п.
В основе схемы (рис. 6.1) заложен принцип преобразования анало­гового сигнала в цифровой. Для этого используется дешевый микрокон­троллер Атапу15 от компании Айпе1 [3], имеющий в своем составе 10-разрядный АЦП. Для микроконтроллерного моделирования этот пример является наглядным пособием по программированию.
Индикатор уровня собран на четырех микросхемах:
 1С1 — микроконтроллер для преобразования входного сигнала в цифровой код;
 1С2 — преобразование цифрового кода в сигналы управления инди­катором [6];
 ЮЗА — согласование уровня входного звукового сигнала и уровня АЦП;
 1СЗВ — фильтрация и интегрирование звукового сигнала;
 1С4 — стабилизация питающего напряжения и формирование 5 В для питания схемы управления.
Индикатор уровня имеет 16-разрядную шкалу, использует две ли­нейки по 10 разрядов индикатора (при этом четыре разряда не исполь­зуются) или три линейки по шесть разрядов индикатора.
Измерительный канал не имеет схемы выборки и хранения [8]. Ин­тегратор и фильтр верхних частот, построены на 1СЗ. Входной усили­тель 1СЗА реализует регулировку коэффициента усиления входного сиг­нала от одно- до двукратного усиления.
Поскольку питание операционного усилителя — однополярное, не­обходимо согласовать уровень входного звукового сигнала с уровнем АЦП. Эту функцию выполняет смещение 1СЗВ до определенного на­пряжения на выходе с помощью делителя 1120, 1121. Одновременно 1СЗВ интегрирует входной сигнал и фильтрует высокочастотную со­ставляющую звука. Совмещение интегратора и фильтра не очень хоро­шо отражается на качестве интегрирования звукового сигнала — этот пробел можно заполнить программной оцифровкой и обработкой звуко­вого сигнала. Однако в программе микроконтроллера отсутствует циф­ровая фильтрация и интеграция звукового сигнала, поскольку это требу­ет мощных математических ресурсов. Для решения задачи индикации уровня это излишне, поэтому микроконтроллер работает в ненагружен-ном режиме.
На выходе порта В микроконтроллера формируется шестнадцате-ричный код с изменением в сторону роста. Дешифратор 1С2 преобразу­ет этот код в напряжение низкого логического нуля на одном из выво-
дов [6]. В результате соответствующий светодиод начинает светиться. Засветка светодиодов происходит в динамическом режиме, что позволя­ет уменьшить ток потребления от источника питания до минимума.
Программа
Ассемблерный код программы представлен в листинге 6.1.
В начале программы настраивается конфигурация порта и АЦП. Алгоритм прост: опрашивается аналоговый вход микроконтроллера, и аналоговый сигнал преобразуется в цифровой код. В момент опроса и преобразования АЦП желательно остановить все процессы в микро­контроллере [9] (окончательно в рассматриваемой программе данная функция реализована в "спящем" режиме). Для этого организован цикл в 26 тактов. Согласно документации на микроконтроллер, для преобра­зования необходимо максимум 25 тактов [3]. Фактически, эта функция дублирует "спящий" режим процессора.
Как только АЦП закончил преобразование, генерируется прерыва­ние от АЦП, и по вектору прерывания продолжается работа программы. После преобразования и паузы в 25 тактов организован цикл увеличе­ния на единицу временного регистр (Я 16). Поскольку разрядность АЦП составляет 10 разрядов, результат преобразования максимального аналогового уровня будет иметь 1024 отсчета. Для получения 16 отсче­тов (потому что дешифратор и индикатор — 16 разрядные) необходимо согласовать преобразование с помощью коэффициента деления. Для данного случая коэффициент деления 1024/16 = 64. Однако, ввиду от­сутствия 17-го разряда, автор выбрал коэффициент деления 63.
Дешифратор не может включить все выводы выходного логическо­го сигнала одновременно, поэтому программа реализует пошаговое уве­личение уровня с шагом в 63 отсчета и выводом соответствующего кода на дешифратор. Если значение набранного уровня больше, чем код пре­образованного аналогового сигнала, то программа возвращается в нача­ло. Соответственно, зажигаются только те светодиоды, которые имеют меньший уровень или совпадают с отсчетом уровня аналогового сигна­ла. Для детального визуального различия разрядов светодиодной мат­рицы организована временная задержка подпрограммой 2ас1ег.
Сканирование аналогового входа происходит с частотой, равной тактовой частоте микроконтроллера, деленной на 16, чтобы аналого-цифровое преобразование происходило с частотой 50-200 кГц (согласно документации на микроконтроллер [3]). Деление тактовой частоты мик­роконтроллера реализовано в регистре АОСЭЛ. На случай сбоя по пита­нию существует подпрограмма 31еерКезе1:.
Шестнадцатеричный код программы, который занимает в памяти всего лишь 100 байт, представлен в листинге 6.2.
Любители моделирования спецэффектов могут добавить в про­грамму следующие эффекты:
 при включении питания эффект маяка — движение четырех засве­ток светодиодов от минимума к максимуму шкалы индикатора и обратно;
 при перегрузке на входе уровня звука — хаотическая засветка све­тодиодов индикатора;
 при окончании музыкального исполнения — эффект "Падающая капля", когда уровень звука падает, и верхняя ("максимальная") за­светка медленно движется в направлении "минимума" индикатора.
В обычных светодиодных аудио-индикаторах создать спецэффекты невозможно. В рассмотренной программе спецэффекты не реализованы.
Плата
Монтажная схема платы индикатора уровня представлена на рис. 6.2, а схема разводки — на рис. 6.3. Плата изготавливается из двух­стороннего текстолита или на макетной плате (рис. 6.4). Размеры платы могут быть приспособлены для установки в бытовую аппаратуру. На плате присутствуют два разъема (при монтаже внутри аппарата можно обойтись без разъемов):
 XI — для подключения нестабилизированного напряжения 7-9 В;
 Х2 — для подключения одного из каналов звукового сигнала.
Другие компоненты платы:
 индикатор 10-разрядный Kingbright DC763HWA;
 1С 1 — микроконтролдлер ATtiny 15L-1 PI в DIP корпусе;
 IC2 — 74LS154 или советский аналог К155ИДЗ;
 IC3 — любой операционный усилитель с питанием 5 В (автор ис­пользовал LM358);
 IC4 — стабилизатор 5 В 78L05.
Ток потребления схемы с К155ИДЗ составляет приблизительно 70 мА, а для варианта с микросхемой 74LS154 — приблизительно 30 мА. Максимальный выходной ток стабилизатора 78L05 — 140 мА. В наличии запас по току, что очень важно для миниатюризации устрой­ства.
Настройка схемы
На схему подается нестабилизированное питание 7 В. Перед на­стройкой на панельку микроконтроллера в плате ничего не устанавли-
вается. От линейного выхода бытового магнитофона подается звуковой сигнал на вход индикатора уровня. На аналоговом входе микроконтрол­лера (вывод 2 микросхемы) проверяется напряжение, которое не должно превышать 2,5 В.
При подаче внешнего звукового сигнала на вход платы настраива­ется максимальный уровень 2,5 В с помощью подстраиваемого резисто­ра К23. Начальный уровень на АЦП микроконтроллера подбирается ре­зистором 1121. В случае, если звуковой сигнал имеет большой уровень напряжения, необходимо установить делитель напряжения. Для этого от вывода 3 микросхемы ІСЗА к "земле" подключается резистор делителя
(подбирается экспериментально). Если звуковой сигнал имеет малень­кий уровень напряжения, то необходимо поэтапно увеличить сопротив­ление К22 и К24 для изменения коэффициента усиления операционных усилителей. Эту операцию необходимо проводить очень осторожно во избежание насыщения ОУ при усилении сигнала.
Как только микроконтроллер установлен на панельку платы, и вклю­чено питание, должен засветиться первый светодиод (необходимый на­чальный уровень) индикаторной линейки. При подаче звукового сигна­ла индикатор отображает уровень засветкой светодиодов в такт музы­кального сопровождения. Поскольку сканирование сигнала происходит с частотой около 50 кГц, то, возможно, понадобится большее интегри­рование уровня сигнала, уменьшение эффекта "раздражающего мерца­ния" в результате резонанса некоторых звуковых гармоник и частоты преобразования АЦП. Для этого к С5 добавляется дополнительно ем­кость 0,1-100 мкФ. Необходимый результат достигается эксперимен­тально в зависимости от применяемого микроконтроллера (внутренняя настройка тактовой частоты процессора может отличаться).
В заключение автор хотел бы отметить, что себестоимость индика­тора уровня составляет около $10, однако возможности для моделиро­вания спецэффектов в бытовой аппаратуре неограниченны, учитывая огромное неиспользуемое пространство памяти микроконтроллера.
Hosted by uCoz