РадиоКот :: Мегафон с "крякалкой" или "крякалка" с микрофоном.
Например TDA7294

РадиоКот >Чердак >

Теги статьи: Добавить тег

Мегафон с "крякалкой" или "крякалка" с микрофоном.

Автор: Albert_V
Опубликовано 01.02.2017
Создано при помощи КотоРед.

Если для кого-то принципиально:
Платы проектировал в PCAD-2006.
Схему рисовал после окончания работы.
Платы заказывал.
Исходника программы (.asm) не выкладываю (для себя комментарии не "строчил").

Внимание! Напряжение питания изделия: 9V - 20V

    Приблизительно год назад один из котов (Z-009) попросил меня сделать платы для замены "мусора с каплей" в "узкоглазом мегафоне".
Платы я отдал прошлым летом (2015 г.), и Z-009 попросил меня опубликовать статью о мегафоне, но, как обычно, всё оформить мешала либо работа, либо лень...
Идея использовать SD-карты для хранения звуков была отметена сразу, поскольку условия эксплуатации мегафона не идут ни в какое сравнение с портативной бытовой техникой.
Схемотехника получилась несложной.
Делалось из того, что было под рукой или было возможно купить "сейчас".

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[Далее по тексту "Key1 - Key3": в реальном изделии использовались кнопки с фиксацией]
[Плата с кнопками и светодиодом мною не делалась (Z-009 сделал сам)]

    На плате Power board, TPA3111 включена по типовой схеме, поэтому не вижу смысла заострять на ней внимание.
Уточню лишь что плата должна быть выполнена с металлизацией отверстий.
Через "пятак" (Thermal pad) TPA3111 отводится тепло от кристалла микросхемы, и вся плата, включая её крепление, является радиатором для TPA3111.
Thermal pad обязан быть припаянным к полигону GND.
VD1 и R1 можете не ставить, если уверены, что переполюсовка этому изделию "не грозит".
Запас по ёмкости электролитических конденсаторов по питанию делался из расчёта на эксплуатацию мегафона при минусовых температурах.
Перевод TPA3111 из Stand-by в рабочий режим - "0" по линии P_ON.
VD4 ставить обязательно!

    Что касается аналоговой части на плате Sound Board - тут тоже ничего сложного нет.
На DA4.1 собран простейший усилитель с лимитером.
"Пички" по амплитуде сигнала "отсекаются" ограничителем на VD2 и VD3.
R4, R5, C2 и C7 - простейший фильтр совместно с C1, R3, R2 и C6 (DA4.2).
Его параметры, естественно, зависят от угла поворота R6, но в данном изделии это не принципиально.

 

    Более подробно остановлюсь на цифровой части.

PIC18F26K20 здесь, конечно, как "из КОРД-а по мухам", но это единственное, что было в корпусе QFN-28 (было ограничение по размерам платы).
Звуки и каталог звуков хранятся в DD1 (AT25DF021).
На схеме указано AT25DFxx1, поскольку программно определяется максимальный объём памяти по ID flash (тестировалось в симуляции!!!).
Частота дискретизации - 15625Hz.
Буферизация - 256 байт.
Общее время звуков - 16 секунд (с AT25DF021).
Максимальное число звуков - 7 (при отказе от микрофонной части - 8).
Выбор звука - комбинация кнопок Key1 - Key3 до нажатия на кнопку "тангента" (KN1).
Время каждого звука не ограничено в пределах общего объёма памяти.
В каталоге для каждого звука указывается адрес старта, адрес окончания и, если надо, адреса Loop (зацикливание внутри звука, начало и окончание Loop).
Каталог находится в последних 128-ми байтах AT25DFxx1.
Напомню, что старшие байты адреса каталога вычисляются по ID flash.

Структура каталога по адресам:

 

 

 

 

 

X - Кнопка нажата.
n - значение байта не учитывается.
Start - Адрес начала звука (x1h - старший байт, x3h - младший).
Loop_In - Адрес начала Loop (x5h - старший байт, x7h - младший).
Loop_Out - Адрес окончания Loop (x9h - старший байт, xBh - младший).
! Если Loop не требуется - прописать в Loop_In и Loop_Out значения 000000h]
End - Адрес окончания звука (xDh - старший байт, xFh - младший).
P - Параметры воспроизведения:
Бит 0 (только если адреса Loop_x = 000000h):
0 - При удержании тангенты звук зацикливается (loop по Start<>End).
1 - Звук воспроизводится до адреса End и Stop.
Бит 1:
0 - При отпускании тангенты воспроизведение останавливается.
1 - При отпускании тангенты звук воспроизводится до адреса End.
*! Если значение в адресе окончания звука 000000h или FFxxxxh, считается, что звука нет, и включается микрофон.

    Звуки были подготовлены в программе Adobe Audition 2.0 (как вариант подойдёт предшественник Adobe Audition - CoolEditPro).
Для подготовки этого файла не рекомендую использовать новые версии программы, т.к. копания Adobe решила убрать возможность указания произвольной частоты дискретизации.
Вначале подготавливаете звуки (по уровню, АЧХ и т.д.).
После этого собираете все звуки в один файл (не забудьте указать 15625Hz, 8bit, Mono).
Выберите Display Time Format > Samples.
Это значение (в dec) будет соответствовать реальным адресам во flash.
Определяетесь с началом/окончанием звуков и с Loop_x (CoolEditPro позволяет прослушать Loop).
После подготовки звуков необходимо сохранить файл в формате *.pcm (без meta-data).
Открываете этот файл в любом редакторе *.bin файлов (к примеру, в WinHex), прописываете каталог и после сохранения файла "заливаете" его в AT25DFxx1.

 

    Остановлюсь подробно на настройке плат (опытным котам можно не читать).

________________________

Для настройки потребуется:
ЛБП (лабораторный блок питания 12V, 2A с регулируемым ограничением по току), мультиметр, генератор звуковой частоты и осциллограф.
Генератор звуковой частоты и осциллограф можно заменить на звуковую карту с соответствующим софтом (к примеру, SpectraLab) и пониманием, как не "спалить" звуковую карту.

При первом включении:
Ограничение по току на ЛБП выставляем 50mA.
Подаём питание на плату Sound Board.
Если ЛБП ушёл в защиту по току - ищем и устраняем ошибки монтажа.
Проверяем +5V, +3.3V и +2.5V (+2.5V - на верхнем выводе C10, левом выводе C14 и на TP1).
Если всё верно - прошиваем контроллер и flash (питание от программатора в его программной оболочке НЕ разрешать!!!). Цоколёвка кабелей указана на схеме.
Отключаем питание.
Отключаем программатор.

Ограничение по току на ЛБП выставляем 100mA.
К плате Sound Board подключаем плату с кнопками и светодиодом.
Подключаем питание.
Убеждаемся в том, что светодиод на плате с кнопками светится (не ярко).
Если не так - ищем и устраняем ошибки монтажа.
Положение подстроечных резисторов R6, R10, R34 выставляем приблизительно на 50%.
На MIC_IN подаём сигнал (sin) 1KHz 1Vp-p (через разделительный конденсатор).
Подключаем осциллограф к верхнему выводу R10.
Нажимаем кнопку тангенты.
Убеждаемся, что на верхнем выводе R10 амплитуда сигнала не превышает 3Vp-p (это значение с большим запасом).
Если видим почти "прямоугольник" или превышение по амплитуде, значит, есть ошибки в монтаже, которые надо устранить.
Убеждаемся, что лимитер работает (при вращении R34, с некоторого положения его движка, амплитуда на верхнем выводе R10 перестаёт увеличиваться пропорционально вращению R34).
Подключаем осциллограф на TP1.
Подстроечным резистором R10 "ловим" начало ограничения сигнала.
Запоминаем амплитуду (Vp-p) на TP1, оставляем R10 в этом положении и больше его не трогаем.
Отпускаем кнопку тангенты.
Отключаем генератор от MIC_IN.
Выбираем какой-либо звук (Key1 - Key3), нажимаем кнопку тангенты и убеждаемся в воспроизведении звука.
Подстроечным резистором R6 выставляем запомненную амплитуду сигнала на TP1 и больше его не трогаем.
Отключаем и откладываем плату.

Далее, на очереди, проверка платы Power board:
Ограничение по току на ЛБП выставляем 50mA.
Нагрузку (динамик) не подключаем!
Подстроечный резистор R25 выставляем на "0" и R36 в положение "Max".
Подаём питание на плату Power board.
Проверяем: светодиод VD4 светится, ток потребления платы не более 20mA.
Если что-то не так - проверяем ошибки монтажа.
Ограничение по току на ЛБП выставить 500mA.
Соединяем линии P_ON и GND.
Если ЛБП ушёл в защиту по току - ищем ошибки...
Проверяем постоянное напряжение равное 1/2 Uпит. (6V) на -SP и +SP.
Разница в напряжениях на -SP и +SP должна быть не более 30mV!
Если всё правильно - проверку этой платы можно считать законченной.

Далее:
На этом этапе надо знать параметры динамика (сопротивление (R) и мощность (P)).
Считаем:
Vp-p = sqrt(2*P*R)

Подключаем Sound Board к Power board.
Нагрузку (динамик) пока не подключаем.
Подключаем осциллограф к +SP или -SP.
Подаём питание с ограничением по току 500mA.
На MIC_IN подаём сигнал (sin) 1KHz 1Vp-p (через разделительный конденсатор).
Нажимаем кнопку тангенты.
Подстроечным резистором R25 выставляем просчитанное ранее Vp-p на выходе УНЧ.
Если просчитанное Vp-p больше, чем может выдать TPA3111 при вашем напряжении питания, - подводим R25 под ограничение сигнала.
Подстроечным резистором R36 "ловим" начало ограничения сигнала.
Отпускаем кнопку тангенты, отключаем генератор с MIC_IN и питание.

Подключаем микрофон и динамик.
Собираем мегафон, оставляя доступ к R34.

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

R34 выставляем в Min, подключаем питание, выбираем кнопками Key1 - Key3 "микрофон", нажимаем тангенту и, используя мегафон по назначению, регулировкой R34 выставляем такой уровень громкости с микрофона, при котором гарантированно не будет "свиста" (акустической обратной связи).
Если окажется так, что "чуть-чуть R34 от min = свист", уменьшаем коэффициент усиления DA4.1 (уменьшаем номинал R16). Такая ситуация вполне возможна, поскольку у микрофонов разная чувствительность. Так же, порог "свиста" зависит от акустического оформления микрофона в гарнитуре и... но это уже тема про акустику...

_________

Недочёты, допущенные при трассировке платы, в файлах архива исправлены.

Если будут вопросы - пишите в теме или в ЛС.

_________

Фото от Z-009:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Файлы:
Архив


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

1 0 4