Pushbutton Volume, Mute
Input Pins
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: PushButton Up | int - control | Сигнал GPIO от кнопки, увеличивающий громкость |
| Pin 1: PushButton Down | int - control | Сигнал GPIO от кнопки, уменьшающий громкость |
| Pin 2: Interface Read | n/a | Регистр Interface Read для загрузки предыдущего постоянного значения данных в алгоритм |
| Pin 3: Interface Read | decimal - audio | Аудиовход для регулятора громкости |
Output Pins
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Interface Write | n/a | Регистр Interface Write для хранения постоянных данных громкости с целью их последующего восстановления |
| Pin 1: Output Audio | decimal - audio | Аудиовыход с отрегулированной громкостью |
GUI Controls
| GUI Control Name | Default Value | Range | Function Description |
|---|---|---|---|
| Invert GPIO | unchecked | [checked, unchecked] | Установка этого флажка инвертирует сигнал на входах для кнопок GPIO. Аппаратное обеспечение SigmaDSP GEN2 имеет регистровые функции для инвертирования сигнала, однако аппаратное обеспечение GEN3 этого не поддерживает. Установка или снятие этого флажка требует повторной компиляции, поскольку для достижения этой функции программный код добавляется или удаляется. |
| Hold (ms) | 500 | [0, 10000] | Определяет, как долго удерживается текущий уровень громкости, прежде чем будут генерироваться повторяющиеся импульсы для увеличения/уменьшения громкости, пока кнопка удерживается нажатой. |
| Repeat (ms) | 250 | [0, 10000] | Задает временной интервал между повторяющимися импульсами во время удержания. |
| Volume Table Points | 33 pts | [2, 800] | Задает размер таблицы: количество точек, используемых в кривой таблицы громкости. |
| Volume Table Values | 1 | [-16, 15.99] | Точки таблицы представляют собой фактические значения усиления для кривой громкости в линейном представлении. Хотя диапазон поддерживает полные значения [-16, 15.99], значения таблицы обычно должны находиться в диапазоне [0, 1] для правильной регулировки усиления. Пользователь имеет полный контроль над этой таблицей, чтобы добавить линейную, логарифмическую или собственную кривую изменения громкости. |
| SW Slew Rate | 12 | [1, 23] | Управляет скоростью нарастания (slew) для перехода громкости между последовательными точками усиления громкости |
DSP Parameter Information
| GUI Control Name | Compiler Name | Function Description |
|---|---|---|
| Hold (ms) | PushButtonVolAlg1holdtime | Время удержания записывается в DSP как количество сэмплов, представляющих время в миллисекундах: Samples = HoldTime(ms)*10^-3 *Fs |
| Repeat (ms) | PushButtonVolAlg1repeattime | Время повторения записывается в DSP как количество сэмплов, представляющих время в миллисекундах: Samples = HoldTime(ms)*10^-3 *Fs |
| Volume Table Points | PushButtonVolAlg1maxindex | Количество точек минус 1 является максимальным индексом в таблице. |
| Volume Table Values | PushButtonVolAlg1table_p0 … | Все точки в таблице записываются в DSP в их линейном формате усиления. |
| SW Slew Rate | PushButtonVolAlg1step | Значение скорости нарастания (slew rate), записываемое в DSP, соответствует формуле: 2^(-SW Slew Rate) |
Algorithm Information
Регулятор громкости PushButton Volume позволяет двум входам GPIO от кнопок управлять пользовательской кривой громкости. Кривая громкости может быть любой линейной, логарифмической или пользовательской кривой, построенной с любым количеством точек. При нажатии кнопки «Up» (Вверх) громкость увеличивается, индексируясь вверх по значениям таблицы. При нажатии кнопки «Down» (Вниз) громкость уменьшается, индексируясь вниз по значениям таблицы. При достижении предельного индекса на любом конце громкость просто удерживается.
Когда кнопка удерживается в положении «вверх» или «вниз», алгоритм будет прокручивать точки усиления громкости со скоростью, определяемой временем удержания (hold) и повторения (repeat). Время удержания определяет, как долго должна удерживаться кнопка, пока не будет запущен новый импульс повторения. Импульс повторения определяет интервал между инкрементами или декрементами точек громкости, пока кнопка удерживается.
Для PushButton Volume with Mute добавлена дополнительная функция: при одновременном нажатии обеих кнопок выход будет отключен (mute). Любой последующий сигнал от кнопки реактивирует громкость, и она будет увеличиваться или уменьшаться от последнего значения громкости до отключения звука.
Example
На следующем изображении показано, как два входа GPIO используются для управления алгоритмом громкости в блоке PushButton Volume. Алгоритм PushButton Volume был расширен для поддержки стереофонического аудио. Переключатель mux позволяет сравнивать прямой сигнал от входов и сигнал с отрегулированной громкостью, направляемый на выходы. Блоки Interface Read и Write позволяют сохранять и восстанавливать последний уровень громкости.

Algorithm Details
| Toolbox Path | GPIO Conditioning - Volume Control - Push Button - PushButton Volume |
| Cores Supported | ADAU170x ADAU144x ADAU176x ADAU178x |
| “Grow Algorithm” Supported | yes - see Algorithm Growth Information |
| “Add Algorithm” Supported | no |
| Subroutine/Loop Based | no |
| Program RAM | 102* |
| Program RAM (Invert GPIO) | 106* |
| Data RAM | 31* |
| Parameter RAM | 37* - Based on 33 points in table: each point = 1 Parameter RAM |

