Данный материал является логическим продолжением статьи "Цифровой регулятор громкости и баланса на MAX5440 с ДУ", опубликованной на нашем сайте. В адрес автора поступило много пожеланий, добрых отзывов и рекомендаций. Обобщив полученную информацию, мы пришли к выводу, что темброблок должен обладать следующими качествами:
- дешевые и доступные компоненты для монтажа в отверстия;
- модульная конструкция и простая схемотехника;
- возможность управления кнопками и энкодером;
- работа с пультами дистанционного управления RC5;
- индикатор с мультиязычным интерфейсом;
- плавное гашение подсветки при переходе в режим ожидания;
- автоматическое сохранение и загрузка настроек.
Действительно, в предыдущей статье требовались определенные навыки пайки компонентов для поверхностного монтажа и высказанные пожелания являются вполне обоснованными. Наличие различных вариантов управления также нами приветствуются, т.к. ситуации могут быть разными. Мультиязычная поддержка интерфейсов сейчас является нормой жизни и не требует обоснований. Остальные качества являются традиционными в подобных конструкциях.
Что касается дешевизны и доступности, то выбор мы остановили на аудиопроцессоре типа TDA8452. Это наилучшее решение в обычной стерео-аппаратуре. Характеристики у него - "среднестатистические", т.е. вполне приемлемые для современных устройств, даже не смотря на то, что разработан он был в конце 80-х годов. Для управления аудиопроцессором применен распространенный микроконтроллер PIC16F628А. Микросхемы монтируются на отдельных платах и имеют минимум обвязки.
Темброблок сделан в виде двух модулей: модуль микроконтроллера и модуль аудиопроцессора. К модулю микроконтроллера подключается:
- любой знакосинтезирующий индикатор 16*2 (2 строки по 16 знакомест) на контроллере HD44780, KS0066 и аналогичных;
- ИК-приемник, например, TSOP1736 (Vishay), SFH-506 (Siemens), TFMS5360 (Temic), ILM5360 (ПО "Интеграл");
- кнопки в матричном включении размерностью 3*3 (реально используется 6 кнопок, а остальные 3 кнопки зарезервированы);
- энкодер PEC16 или аналогичный механический.
Модуль микроконтроллера и модуль аудиопроцессора обмениваются данными на шине Ай-Ту-Си (I2C) по линиям SDA (data - данные) и SCL (clock - синхронизация). Ниже схема сопряжения микроконтроллера с внешними устройствами.
Аудиопроцессор включен по типовой схеме согласно документации.
Прокомментируем организацию питания.
Конструкция требует входного стабилизированного напряжения 12 вольт. Питание 12 вольт на модуль аудиопроцессора идет "транзитом" через модуль микроконтроллера.
Микроконтроллер и индикатор большую часть времени находится в режиме ожидания внешних управляющих сигналов и общий ток потребления составляет единицы миллиампер. Это позволило использовать слаботочный стабилизатор 78L05 без боязни перегрева за счет падения напряжения.
Питание подсветки индикатора взято с входных линий. Необходимый ток потребления (и как следствие яркость подсветки) определяются соответствующим сопротивлением. В нашем случае это сопротивление номиналом 33 Ом.
Модули выполнены на односторонних печатных платах. Топология печатных плат позволяет изготовить печатные платы с помощью маркера.
Аудиопроцессор TDA8425 может работать в различных режимах: обычное стерео, расширенное стерео, псевдостерео, моно. В стерео режиме микросхема работает как все "нормальные" стереомикросхемы. В моно режиме сигналы с обоих входов суммируются на внутреннем резисторном делителе и подаются на оба выхода микросхемы. В режиме "расширенное (пространственное) стерео" 50% сигнала из одного канала подмешивается во второе канал, что дает незначительное расширение стереобазы и иногда "слегка" украшает звук. В режиме псевдостерео в левом канале включается линия задержки, где время задержки регулируется внешними конденсаторами. В результате настоящий стереосигнал не получается, но звук действительно становиться чуть "красивей", чем в монорежиме. Эта опция особенно полезна при монофоническом сигнале.
Ниже фотографии собранных модулей.
На фотографии индикатор типа ACM1602K-FL-GBH-02.
Теперь рассмотрим вопрос о мультиязычности интерфейса индикатора. Для этого есть определенные ограничения. Традиционное ограничение связано с тем, что выводимые на экран фразы являются неотъемлемой частью прошивки и для каждого языка требуется соответствующая прошивка. Второе ограничение связано с типом используемого индикатора, т.к. не все индикаторы в своём знакогенераторе имеют необходимые национальные символы.
В нашем случае, фразы выводимые на экран можно вручную редактировать перед прошивкой микроконтроллера. Эти фразы находятся в области ПЗУ (EEPROM) микроконтроллера и могут быть легко изменены в программе, из которой будет прошиваться микроконтроллер (например, ICProg или WinPic800).
Для переименования следует придерживаться следующих правил:
- индикатор имеет строку из 16 знакомест, поэтому фразы должны быть не более 16 символов, включая пробелы;
- символы во фразах набираются в 16-ричном формате в соответствии с таблицей знакогенератора (см. по документации);
- в начале каждой фразы стоит порядковый номер в 16-ричном формате;
- всего 12 фраз, в конце 12й фразы ставится 16-ричное число 0D (признак конца фразы).
Далее приведем практический пример переименования.
1) Открываем документацию на индикатор и находим таблицу знакогенератора. Ниже типовой пример такой таблицы:
2) Запускаем программу, из которой мы будем прошивать микроконтроллер (например, WinPic800), открываем прошивку и переходим на закладку Data.
Красным цветом отмечены порядковые номера фраз, а зеленым подчеркнута первая фраза "Громкость". Синим цветом подчеркнуты настройки автосохранения параметров; здесь фразы нельзя размещать.
Теперь как в "морском бое" определите по таблице знакогенератора символы во фразе "Громкость" (A1 70 6F BC BA 6F 63 BF C4). Если нам нужна иная фраза, например "Volume", то после номера 01 следует набрать 56 6F 6C 75 6D 65. На украинском языке после 01 следует фраза "Гучнiсть", которая выглядит как A1 79 C0 BD 69 63 BF C4.
Для изменения 16-ричного числа достаточно щелкнуть по этому числу и с клавиатуры ввести новое 16-ричное число. Сделанные изменения можно сохранить в новую прошивку - меню File - Save As: . Если вы переведете интерфейсные фразы на другие языки - просим выслать модифицированную прошивку в форум этого сайта с указанием языка и типа индикатора. Сделанный перевод можно оценить в проекте Протеуса. Для корректного отображения кириллицы необходимо заменить файл библиотеки LCDALPHA.DLL в папке MODELS. Необходимо отметить, что модель ЖКИ 16*2 в Протеусе не совсем корректно работает (в реальной жизни немного иначе).
Ниже картинка собранного проекта в Протеусе.
Файлы:
Печатные платы в формате SL 4.0.
Прошивка МК с исходником.
Файл для Proteus, плюс LCDALPHA.DLL.
Автор - Анастасия Попкова.