Оглавление:
- Шаг 1: приобретение деталей
- Шаг 2: Планирование компоновки компонентов
- Шаг 3: Сборка
- Шаг 4: скомпилируйте и загрузите прошивку
- Шаг 5: понимание схемы
- Шаг 6: Работа с устройством
Видео: Макетный анализатор спектра звука MSP430: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Этот проект основан на микрофоне и требует минимального количества внешних компонентов. Используются 2 батарейки для монет LR44, так что я могу иметь всю конструкцию, работающую в рамках мини-макета со 170 узлами связи. Используются и демонстрируются ADC10, TimerA interrupt LPM wake-up, TimerA PWM как вывод, использование кнопок, целочисленная арифметика.
Функции
- 8-битное целочисленное БПФ 16 отсчетов с разделением 500 Гц
- показывает 8 амплитуд 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K нелинейных
- карта частичного логарифма для отображения амплитуд, ограниченная по мере уменьшения разрешения для 8-битного БПФ
- TLC272 одноступенчатый микрофонный усилитель с 100-кратным 100-кратным усилением (вы можете испытать с 2-мя ступенями)
- выбираемое меню дополнительное окно Хэмминга
- меню регулировки 4 уровней яркости
- Меню настройки 8 уровней частоты дискретизации / времени отклика
- 2 батарейки LR44 с питанием "на борту"
Шаг 1: приобретение деталей
Вот что нужно для этого проекта.
- MSP430G2452 (дополнительный чип от TI Launchpad G2 или любой 20-контактный микроконтроллер серии MSP430G 4K)
- мини-макетная или перфорированная плата на 170 узлов для конструирования предусилителяa
- TLC272 Двойной операционный усилитель
- мини электретный микрофон
- 47 кОм (подтягивающий), 100 кОм, 2 x 10 кОм, 1 кОм
- 1 х 0,1 мкФ
- перемычки
- двухрядный штыревой штекер для держателя батареи
- 2 батарейки типа таблетка LR44
Шаг 2: Планирование компоновки компонентов
Проект будет построен на мини-макете на 170 узловых точек. Расположение компонентов показано ниже. Особо следует отметить, что светодиодная матрица 8x8 должна быть размещена на MCU MSP430. Помимо компонентов, есть также соединительные перемычки, обозначенные символами «+ ------ +».
G V + Gnd (1 этап) МЫ ИСПОЛЬЗУЕМ ДАННЫЙ ПЛАН + ==================================== ================= + c0 ………… c7 | MIC……. + ----- + + - +…. | r0 o o o o o o o o | o || o + ----- [100k] --------------- +….. | r1 X o o o o o o o |. + -------------- + - +. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o o |…… |.. | b6 a7 | | c0 и r1 имеют один и тот же контакт и не будут отображаться | +. + - + - + - + | + - + - + - + - + - + - + - + - + - + | * возможно приложение иметь c6 + c0 + r1 | | | V + | | | G b6 b7 T R a7 a6 b5 b4 b3 | | это освободит b6 для часов xtal 32 кГц | | | TLC272 | | | | | | | из - + G | | | + a0 a1 a2 a3 a4 a5 b0 b1 b2 | | | +. + - + - + - + | + - + - + - + - + - + - + - + - + - + | | о || о о о. + - +.. R4 R6 C1 C2 R7 C4 R5 R2 | |…. о- [10к] - о……… | |. о- [1к] о о о………._. | | о ---- [10k] ----------- о……. о о | + ================================================= ==== +.1uF 100k 10k ADC Button + ----------------- +
мы используем только одну ступень TLC272
Шаг 3: Сборка
Вы можете приступить к размещению компонентов на основе макета макета. Поскольку это искусство ASCII, оно может быть не очень ясным. На этом шаге вы можете выполнить сопряжение с фотографиями, чтобы определить все соединения.
Необходимо соблюдать осторожность при размещении микросхем IC. Обычно на одном из углов есть точка, обозначающая контакт 1 устройства.
Я использовал провода кабеля Ethernet CAT5, и с ними очень легко работать в макетных проектах. Если у вас есть старые кабели CAT5, вы можете разрезать их, и вы обнаружите, что внутри есть 6 скрученных проводов. Они идеально подходят для макетов.
Шаг 4: скомпилируйте и загрузите прошивку
Исходный код обычно находится в моих репозиториях на github.
Для этого конкретного проекта единственный исходный файл на C nfft.c включен в мой репозиторий коллекций макетов. Вам просто нужен nfft.c
Я использую mps430-gcc для компиляции прошивки, но она должна хорошо работать с TI CCS. Вы можете избежать всех проблем с установкой IDE или компиляторов, перейдя в облако TI CCS, которое представляет собой веб-среду IDE. Он даже загрузит прошивку на ваше целевое устройство.
Это пример команды компиляции с переключателями
msp430 - gcc -Os -Wall -ffunction-section -fdata-section -fno-inline-small-functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- разделы -I / energia-0101E0016 / hardware / msp430 / cores / msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
Я использую TI Launchpad G2 в качестве программатора для программирования MCU.
Шаг 5: понимание схемы
Принципиальная схема представлена ниже.
MSP430G2452 или аналогичный, требуется двойной операционный усилитель 4K Flash TLC272, GBW @ 1,7 МГц, @ усиление x100, пропускная способность до 17 кГц
* мы используем только одну ступень TLC272
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1 - + | | | |, | Vcc | | | | подтягивания (47k) Vcc Vcc | --------------- | | | | _ | | | + -1 | ----. Vcc | 8- + | | | |, |, |, | ^.--- | 7 | | 16- + | | 10к | | 10к | | | / / ^ | | | | _ | | _ | 100k | _ | | / _ + / / / | | / | --- (см. макет макета) |.1u | | | | | / _ + / | | / | ------_ + - || --- | - [1k] - + - 2 | --- + | | | | | 15 GPIO | | | | + ---------- 3 | ----- + + - | - | 6 | P1.1-P1.7 | | 8x8 | | | + -4 | Земля + - | 5 | P2.0-P2.7 | | LED | | + | | --------------- | | | матрица | ((O)) |. | | / | | _ | | ВПК | | 10к | + -20 | Земля / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///
Светодиодное вождение
Светодиодная матрица состоит из 8 х 8 элементов. Они управляются 15 контактами GPIO. Они мультиплексированы по схеме 8 строк и 8 столбцов. Поскольку после того, как мы используем 1 контакт для входа АЦП, остается только 15 контактов, при мультиплексировании строка 1 и столбец 0 разделяют один контакт. Это означает, что отдельные светодиоды в строке 1 и столбце 0 не могут гореть. Это компромисс, поскольку выводов GPIO просто не хватает для управления всеми светодиодными элементами.
Захват звука
Звук улавливается через встроенный конденсаторный микрофон на учебном бустер-паке. Поскольку сигналы микрофона малы, нам необходимо усилить их до уровня, который может использовать ADC10 msp430 с разумным разрешением. Для этой цели я использовал двухкаскадный усилитель на операционном усилителе.
Усилитель на операционном усилителе состоит из двух каскадов, каждый с примерно 100-кратным усилением. Мне пришлось взять на вооружение TLC272, так как это тоже очень распространенная деталь, и она работает с 3В. Ширина полосы усиления около 1,7 МГц означает, что для нашего 100-кратного усиления мы можем только гарантировать, что он будет хорошо работать (то есть поддерживать желаемое усиление) при 17 кГц. (1,7 МГц / 100).
Первоначально я собирался сделать этот анализатор спектра измеряющим до 16-20 кГц, но в итоге я обнаружил, что около 8 кГц достаточно для воспроизведения музыки. Это можно изменить, заменив LM358 на что-то звуковое и изменив частоту дискретизации. Просто посмотрите на полосу усиления выбранных вами операционных усилителей.
Выборка и БПФ
Используемая функция БПФ - это код "fix_fft.c", принятый во многих проектах, который уже несколько лет витает в Интернете. Я пробовал 16-битную версию и 8-битную версию. В конце концов я остановился на 8-битной версии, так как для моей цели я не увидел серьезных улучшений в 16-битной версии.
У меня нет хорошего понимания механизма БПФ, за исключением того, что это преобразование временной области в частотную. Это означает, что частота (время) звуковых образцов после подачи в функцию вычисления БПФ будет влиять на частоту амплитуды, которую я получаю в результате. Таким образом, регулируя частоту дискретизации звука, я могу в результате определить полосу частот.
TimerA 0 CCR0 используется для сохранения времени выборки. Сначала мы определяем количество отсчетов, которое нам нужно для достижения частоты полосы (соответствует нашей тактовой частоте DCO 16 МГц). т.е. TA0CCR0 установлен в (8000 / (BAND_FREQ_KHZ * 2)) - 1; где BAND_FREQ_KHZ для меня 8. Его можно изменить, если у вас есть операционный усилитель получше и / или вы хотите, чтобы он был другим.
Полосы частот и масштабирование амплитуды
Прошивка обрабатывает 16 полос за одну развертку, а время захвата обеспечивает разделение между этими банками в 500 Гц. Светодиодная матрица состоит из 8 столбцов и отображает только 8 полос / амплитуд. Вместо того, чтобы отображать одну каждые две полосы, используется нелинейный список полос частот, чтобы показать более динамичные полосы частот (с точки зрения музыки). Список состоит из промежутков 500 Гц в нижнем диапазоне, промежутков 1 кГц в средних полосах и полос 1,5 кГц в верхних частотах.
Амплитуда отдельных полос уменьшается до 8 уровней, которые представлены количеством горизонтальных точек на светодиодном матричном дисплее. Уровни амплитуды уменьшаются с помощью нелинейной карты, которая переводит результаты БПФ в один из 8 точки. Используется своего рода логарифмическое масштабирование, поскольку оно лучше всего отражает наше восприятие уровней звука.
Имеется встроенная логика АРУ, и анализатор спектра попытается уменьшить уровни амплитуды, если в предыдущих циклах обнаружено несколько пиковых уровней. Это делается с помощью таблицы сравнения скользящей линейки.
Шаг 6: Работа с устройством
- Кратковременное нажатие клавиши в режиме отображения циклически переключает отображение без точки, одной точки, 2 точек и 3 точек.
- Длительное нажатие входит в режим настройки, последующее долгое нажатие перемещает по меню.
- Пункты меню проходят через «Параметр окна Хэмминга», «Диммер», «Частота дискретизации / обновления».
- В режиме настройки «Окно Хэмминга» короткие нажатия циклически проходят через режим «Нет хамминга», «Хамминга 1», «Хамминга» 2, «Хамминга» 3, длительное нажатие подтверждает настройку.
- В режиме настройки «Диммер» короткое нажатие переключает доступные уровни яркости от 0 до 3, длительное нажатие подтверждает настройку.
- В режиме настройки «Частота дискретизации / обновления» короткое нажатие циклически переключает доступные частоты обновления от 0 до 7, 0 означает отсутствие задержки, длительное нажатие подтверждает настройку.
- Мультиплексирование светодиодных сегментов включает временные задержки для компенсации разницы яркости отдельных строк.
Рекомендуемые:
Как сделать светодиодный анализатор спектра звука: 7 шагов (с изображениями)
Как сделать светодиодный анализатор звукового спектра: Светодиодный звуковой анализатор спектра генерирует красивый образец освещения в соответствии с интенсивностью музыки. На рынке доступно множество наборов DIY LED Music Spectrum, но здесь мы собираемся сделать светодиодный звуковой спектр Анализатор с использованием NeoPixe
Как самостоятельно собрать 32-полосный светодиодный аудио анализатор музыкального спектра с помощью Arduino Nano дома #arduinoproject: 8 шагов
Как самостоятельно сделать 32-полосный светодиодный аудио-анализатор музыкального спектра с использованием Arduino Nano дома #arduinoproject: Сегодня мы создадим дома 32-полосный светодиодный аудио-анализатор музыкального спектра, использующий Arduino, он может одновременно отображать частотный спектр и воспроизводить музыку. должен быть подключен перед резистором 100 кОм, иначе шум звука
Суперразмерный акриловый анализатор спектра: 7 шагов (с изображениями)
Суперразмерный акриловый анализатор спектра: зачем вам смотреть на эти крошечные светодиодные дисплеи или на эти маленькие ЖК-дисплеи, если вы можете сделать их большими? Это пошаговое описание того, как построить свой собственный анализатор спектра гигантского размера. светодиодные ленты для создания света, заполняющего комнату
Анализатор спектра звука БПФ своими руками: 3 шага
DIY FFT Audio Spectrum Analyzer: FFT-анализатор спектра - это испытательное оборудование, в котором для анализа спектра используются методы анализа Фурье и цифровой обработки сигналов. Используя анализ Фурье, можно преобразовать одно значение, например, в непрерывной временной области
10-полосный светодиодный анализатор спектра: 11 шагов
10-полосный светодиодный анализатор спектра: Добрый день, уважаемые зрители и читатели. Сегодня я хочу показать вам полное руководство по сборке 10-полосного светодиодного анализатора спектра