Радиолоцман Электроника en
расширенный поиск +
  
Срезы:Измерительные приборы
Микроконтроллеры

18-01-2011

Анализатор спектра в реальном времени на PIC18F4550. Часть 1. Схемотехническое решение

Проект демонстрирует реализацию анализатора спектра звуковых частот на 8-разрядном микроконтроллере PIC18F4550 производства компании Microchip. Анализ спектра выполняется при помощи оптимизированного алгоритма быстрого преобразования Фурье (Fast Fourier Transformation, FFT), написанного полностью на языке Си. Визуализация данных (спектра) в реальном времени осуществляется на графическом ЖК дисплее с разрешением 128×64 точки.

Анализатор спектра на PIC18F4550

Основные характеристики:

  • частота дискретизации 20 кГц;
  • диапазон частот 312 Гц – 10 кГц;
  • скорость отображения 10 кадров в секунду;
  • разрешение дисплея 128×64 точки;

Аппаратная часть
Принципиальная схема устройства

Принципиальная схема: анализатор спектра на PIC18F4550
Кликните для увеличения

Для вычисления значений по алгоритму быстрого преобразования Фурье в диапазоне звуковых частот необходимо должным образом подготовить сигнал для дальнейшей обработки микроконтроллером. PIC18F4550 имеет встроенный многоканальный АЦП, который может использоваться для измерения напряжения в диапазоне 0 В – 5 В с 10-битным разрешением (0-1023).

Основные характеристики микроконтроллера:

  • ядро PIC18, рабочая частота до 48 МГц;
  • 32 КБайт Flash-память программ;
  • 2 КБайт RAM;
  • один 8-разрядный таймер, три 16-разрядных таймера;
  • USB интерфейс, SPI интерфейс;
  • 13-канальный 10-битный АЦП;
  • до 35 линий ввода/вывода общего назначения.

Звуковой сигнал с линейного выхода аудиоустройства представляет собой переменный сигнал, волну с амплитудой около 1 В. Осциллограмма ниже наглядно отображает звуковой сигнал синусоидальной формы частотой 5 кГц (контрольная точка на схеме W2).

Осциллограмма синусоидального сигнала 5 кГц

Если такой сигал подать непосредственно на вход АЦП микроконтроллера, мы получим лишь малый диапазон значений входного напряжения (0 В – 0.5 В), т.е. мы получим значения лишь верхней волны и вычисление алгоритма FFT будет неверным.

Для того, чтобы получить верные вычисления, нам необходимо над исходным сигналом проделать некоторые действия. Сперва необходимо усилить сигнал с целью использования всего рабочего диапазона АЦП микроконтроллера (0 В – 5 В). На втором этапе нам необходимо сместить сигнал на 2.5 В («виртуальный» 0), чтобы АЦП мог захватить все значения аналогового сигнала. Таким образом микроконтроллер сможет делать выборки положительной и отрицательной полуволны сигнала.

С этой целью в устройстве применен простой усилитель на микросхеме LM386-1 – решаем первое условие – усиление сигнала. Питание усилителя осуществляется напряжением +5 В, и благодаря этому, мы выполняем второе условие – положительное смещение сигнала. С этой же целью допустимо использование rail-to-rail операционного усилителя (ОУ c размахом выходного сигнала, равным напряжению питания).

Осциллограмма ниже демонстрирует форму сигнала после усилителя LM386-1 (контрольная точка на схеме W3).

Осциллограмма смещенного синусоидального сигнала 5 кГц

Устройство имеет стерео вход J4, однако при помощи двух резисторов (R1, R2) номиналом 10 кОм проводится смешивание двух сигналов. С помощью потенциометра R3 возможно регулирование амплитуды сигнала. Выходной сигнал с усилителя проходит через простой RC фильтр 10 кГц, и результирующий сигнал поступает на вход АЦП микроконтроллера.

RC фильтр 10 кГц в нашем случае применен в качестве фильтра «сглаживания» для FFT, который не может корректно обнаружить сигнал с частотой выше 10 кГц. Стоит отметить: RC фильтр – самый простой фильтр и очень неэффективный, но данный тип фильтра был выбран из-за простоты реализации, т.к. требуется все два пассивных элемента. Пользователи могут самостоятельно заменить данную часть схемы, например на фильтр с использованием операционного усилителя.

Для отображения данных используется графический ЖК дисплей ATM12864D, выполненный на базе контроллеров KS0108B и KS0107B. Дисплей подключается непосредственно к микроконтроллеру по 8-битной шине. Дополнительно имеются три светодиода, которые используются в тестовом режиме преобразования «музыка-свет». Две кнопки SW1 и SW2 предназначены для переключения режимов отображения. Второй разъем J5 предназначен для реализации сквозного канала (например, для подключения наушников). Разъем J2 предназначен для подключения программатора и внутрисхемного программирования микроконтроллера. Для питания схемы применен регулятор напряжения LM7805.

Разработанная односторонняя печатная плата рассчитана на применение и установку компонентов со штыревыми выводами.

Печатная плата: анализатор спектра на PIC18F4550
Кликните для увеличения

Однако принципиальная схема устройства не сложная и позволяет собрать ее на макетной плате. Возможно применение другого микроконтроллера, программно совместимого с PIC18F4550 (например, PIC18F2550).

Демонстрация работы анализатора спектра на микроконтроллере PIC18F4550

Загрузки

Принципиальная схема и печатная плата (формат expressSCH и expressPCB) - скачать

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

waitingforfriday.com

На английском языке: Real-Time Audio Spectrum Analyser on PIC18F4550

Перевод: Vadim по заказу РадиоЛоцман

Срезы ↓
Электронный штангенциркуль из углепластика
Цена: 3.58 $ (223 руб.)
Бесплатная доставка: Весь мир
Датчики влажности и температуры ДВТ-03.ТЭ
Цена: от 3 168 руб.
Доставка: Россия и страны СНГ
Оригинальная ручка для подарка технарям
Цена: 0.97 $ (60 руб.)
Бесплатная доставка: Весь мир
радиолоцман вконтакте радиолоцман одноклассники радиолоцман facebook радиолоцман twitter радиолоцман google плюс