Интернет-магазин для радиолюбителей

РадиоКОТ - популярно об электронике. Авторские схемы, новые разработки. Обучение по электронике, микроконтроллерам, ПЛИС. Форум

 

Звуковой процессор для усилителя

 
 

Обещанная статья про звуковой процессор для усилителя на TDA7294 о котором я писал ранее здесь.

Идея сделать свой звуковой процессор возникла после повторения конструкции С.М. Рюмика опубликованной в журнале Радио. Устройство было самодостаточным и работоспособным, но как всегда, душа поэта хочет приключений, а моя - разных новых функций. Вносить изменения в чужую прошивку всегда сложнее чем в свою, да и бывает, что какая то функция работает не так как хотелось бы мне и проще сделать заново чем разбираться в чужой прошивке и переделывать, отсюда желание создать что-то своё - собственное.

Мой вариант звукового процессора на основе микросхемы TDA7318, специально её не выбирал - она у меня лежала без дела уже очень давно, вот и решил применить. Микроконтроллер выбрал ATmega16 - из-за доступности, количества портов и простоты в работе с ним. Особых требований к устройству не выдвигалось, это должен быть просто регулятор громкости и тембра с выбором источника сигнала и не хитрой автоматикой.

Звуковой процессор для усилителя состоит из 3 частей - основная плата с самим звуковым процессором и микроконтроллером, клавиатура и дисплей.

Как я уже сказал ранее, в качестве звукового процессора используется TDA7318. Честно говоря его характеристики далеки от идеальных, да и отзывы по качеству не самые лестные, но все же, со своими функциями он справляется. Если нет TDA7318, можно смело заменить на TDA7313 - это полностью совместимые микросхемы за исключением количества входов, у TDA7313 их всего три и максимальная степень усиления будет 11.25дб вместо 18.75дб.

ATmega16 - в стандартном включении, три порта микроконтроллера почти полностью использованы. Программирование осуществляется через ISP разъем, для работы программатора добавлен кварцевый резонатор, в обычном режиме он не используется, а микроконтроллер тактируется от внутреннего RC генератора 8МГц. Он нужен только на тот случай, если вы будете использовать микроконтроллер зашитый на работу от внешнего кварцевого резонатора, у новых микроконтроллеров фьюзы обычно выставлены на работу от встроенного RC генератора и кварцевый резонатор тогда не понадобится вообще.

На принципиальной схеме можно увидеть термодатчик DS18B20 и вентилятор. Я их ввел специально для принудительного охлаждения усилителя. Термодатчик устанавливаем на радиатор, как можно ближе к TDA7294, а вентилятор направляем на ребра радиатора. При превышении температры заданной в программе вентилятор включается с помощью ШИМ и в зависимости от степени нагрева меняет свою скорость вращения. Температура задается через меню усилителя и может быть выставлена от +30 до +70 градусов с шагом в 2 градуса.

Так же с помощью ШИМ меняется яркость подсветки дисплея. В качестве ключей используются полевые ключи IRFD110. Можно использовать любые другие с p-каналом.

Отдельно хочу рассказать о клавиатуре. Делать банальные кнопки не хотел, да и в голове давно была задумка сделать клавиши с подсветкой. Как я уже писал в статье о усилителе на TDA7294 корпусом поделился старый генератор Г6-37 уничтоженный вандалами в погоне за драгметаллами. Именно под этот корпус и разрабатывалась передняя панель. Материалом послужило оргстекло, как самый доступный и легко обрабатываемый материал, хотя изначально я хотел использовать алюминий. Лазерной резкой, по чертежам были вырезаны панель, клавиши и гравировка на них, а так же пластина из 1мм оргстекла под кнопки и шайбы для установки платы клавиатуры на панель. Пластина из 1мм оргстекла выполняет роль пружины, к ней приклеены дихлорэтаном клавиши, а с внутренней стороны наклеена светорассеивающая пленка от отслуживших ЖК панелей. Под клавишами на шайбах устанавливается плата клавиатуры с кнопками и светодиодами подсветки. При нажатии на клавишу она нажимает на микрокнопку на плате, а при отпускании - пружинящая пластинка возвращает клавишу обатно. Под всеми клавишами, на плате расположены светодиоды, по одному белому на каждую кнопку и красные под кнопками выбора источника сигнала.

 

Дисплей служит для вывода служебной информации и для осуществления настроек. Использован 4-х строчный по 16 символов в строке WH1604B фирмы Winstar. Изначально предполагалось использовать графический 128х64, но позже отказался, ввиду его низкой целесообразности. Почему именно 4 строки? По цене не намного дороже двух строчных, но при этом, информации можно вывести в два раза больше, контроллер в нем ST7066, совместимый по командам с привычным HD44780.

 

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

Звуковой процессор для усилителя работает по следующему алгоритму.

В момент включения устройства происходит инициализация устройств на шине 1-wire, i2c шины и LCD дисплея.

В целях проверки работоспособности яркость подсветки дисплея устанавливается на 50%, а вентилятор кратковременно включается на 100%.

Далее проверяется наличие температурных датчиков на шине 1-wire. Если температурный датчик DS18B20 не обнаружен – выводится предупреждение. 

ERROR! DS18B20 fault or not installed. FAN speed – 100%. (Ошибка!. DS18B20 неисправен или не установлен, скорость вращения вентилятора – 100%)

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

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

Так же, для теста в это время происходит проверка подсветки клавиш выбора источника сигнала и на экран выводится приветствующая надпись.

AUDIO AMPLIFIER – усилитель звука
HW4.0 SW1.1 – четвертая версия железа и версия прошивки 1.1
System starting – старт системы
Loading settings – загрузка настроек.

Если усилитель включается в первый раз, то в EEPROM памяти ничего не сохранено и в TDA7318 могут загрузиться неверные данные. В этом случае, при самом первом включении усилителя после сборки необходимо в момент включения нажать и удерживать кнопку “SET/MENU” и в момент инициализации в память микроконтроллера будут записаны настройки по умолчанию (Громкость - -75db, тембр НЧ – 0db, тембр ВЧ – 0db, усиление – 0db, источник сигнала – Line 1, яркость подсветки – 50%, температура включения вентилятора – 50 градусов). Либо можно пробежаться по меню и установить все значения вручную.

При загрузке значений по умолчанию на экран выводится соответствующая надпись.

Saving defaults – сохранение настроек по умолчанию.

Затем выводится основной экран усилителя.

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

Одновременно загорается светодиод под кнопкой выбранного источника сигнала.

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

(При вызове основного меню, при изменении громкости, баланса, яркости подсветки и т.п. менять источник сигнала нельзя).

При нажатии на кнопки вверх и вниз вызывается меню настройки громкости.

Уровень громкости выводится так же в условных единицах и децибелах. Плюс, дополнительно, в виде наглядной шкалы. При нажатии кнопки вверх – громкость увеличивается, при нажатии кнопки вниз – соответственно уменьшается. При изменении громкости новое значение тут же посылается в TDA7318 и громкость меняется сразу. При нажатии на кнопку SET/MENU – текущее значение запоминается и сохраняется в памяти микроконтроллера. То же самое происходит, если вы не нажимали кнопок в течении приблизительно 10 сек. На экран выводится бегущая полоса и надпись Data stored – данные сохранены.

При нажатии кнопки SET/MENU – переходим в основное меню усилителя. Здесь доступно 6 опций – Volume - громкость, Bass – тембр НЧ, Treble – тембр ВЧ, Signal gain – усиление сигнала, Backlight – яркость подсветки дисплея, Fan on temp – температура включения вентилятора.

Переход между опциями осуществляется кнопками вверх и вниз, выбор опции – кнопкой SET/MENU, этой же кнопкой - подтверждение изменений и выход обратно в меню. В итоге звуковой процессор для усилителя фактически управляется всего тремя кнопками.

Первый пункт - громкость, мы его уже рассмотрели ранее, затем идет Bass – тембр НЧ. Тембр мы можем менять от -14db до +14db с 16-тю шагами. Причем из-за особенностей микросхемы значений 0db – два. Опция Тембр ВЧ – Treble такая же как и для НЧ.

Изменение настроек осуществляется так же как и у громкости.

        

Затем идет опция – Signal gain – усиление сигнала. TDA7318 имеет предусилитель с 4-мя фиксированными значениями – 0db, +6.25db, +12.5db, +18.75db. Этими значениями мы и можем управлять выставляя любое из четырех.

Следующая опция – Backlight – подсветка.

Здесь можно настроить яркость подсветки дисплея. Шагов настройки яркости – 25, данные выводятся в шестнадцатиричном виде.

Последняя опция – Fan ON temp – температура включения вентилятора.

Настроить температуру включения вентилятора можно от +30 до +70 градусов по Цельсию с шагом в 2 градуса.

По скольку вентилятором я управляю при помощи ШИМ – значит можно регулировать скорость его вращения. Так сказать, умный ШИМ.

Когда температура усилителя меньше выставленного значения на 6 градусов – вентилятор включается на 50%

Когда меньше на 3 градуса – вентилятор включается на 75%

Когда температура усилителя равна выставленной – вентилятор включается на 100%

А если температура усилителя превышает выставленную на 5 градусов – вентилятор включается на 100% и одновременно громкость уменьшается до максимального значения –78.75db

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

Как видно, в "легком" режиме вентилятор работает на 50-ти процентах от номинала, хотелось сделать 30%, но на практике оказалось, что не все вентиляторы стабильно стартуют при таком значении, поэтому, было выбрано именно 50% для стабильного запуска почти всех вентиляторов.

Далее, опции повторяются по кругу. Переход к главному экрану происходит автоматически, после примерно 10 секунд бездействия.

Fuse bits можно расставить с помощью этой картинки.

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

 

Выражаю огромную благодарность Агешину Андрею за помощь в изготовлении красивых плат методом ЛУТа.

 

Файлы к проекту.




Комментарии:
2016-05-11 19:49:37 | Wasker
если есть напечатайте пожалуйста прошивку с
использованием 1604А .
Администратор
1604A и WH1604B - аналоги, различия могут быть только в распиновке контактов и размерах.
2016-03-24 08:20:22 | Rem
День добрый! Не планируете прошивку под TDA7439?И,может быть,режим VU-метра или спектранализатора?
2016-02-26 12:05:11 | Алексей
Доброго всем времени суток, а не поделитесь ли исходником, хотелось бы под другой аудио процессор переписать прошивку PT2313. TDA7318 мне ценой не нравится.
Администратор
Исходники выложил, у PT2313 и TDA7318 адрес i2c одинаковый - 88h, т.е. просто ставите вместо TDA7318 - TDA7313, PT2313, PT7313 и будет работать. Адрес надо изменить если будете использовать к примеру TDA7314.
Оставьте комментарий
Ваше имя


Код проверки

введите проверочный код с картинки