Смекни!
smekni.com

Звуковые возможности микроконтроллера STM32F (стр. 2 из 2)

Рис. 3. Пример физической реализации шины I2S в виде разъема HDMI

Как использовать встроенный ЦАП

Ранее мы подчеркивали наличие в микросхемах STM32F105xx/107xx встроенного двухканального 12-битного ЦАП, который может быть вполне пригоден к использованию во многих звуковых приложениях, где нет необходимости в высокой точности преобразования.

Заявленные параметры ЦАП:

Два полностью независимых преобразователя;

8/12-битный равномерный выход;

Выдача до одного миллиона семплов в секунду;

Возможность синхронизации для вывода стереосигнала;

Отключаемый выходной буфер для увеличения нагрузочной способности;

Отдельный канал прямого доступа к памяти;

Встроенный генератор псевдослучайных чисел;

Встроенный генератор треугольных импульсов;

Погрешность смещения- 10 мВ или до 12 МЗР;

Дифференциальная нелинейность 2 МЗР, интегральная- 4 МЗР.

Несмотря на относительно невысокое разрешение (до 12 бит), сфера применения таких ЦАП может быть достаточно широка, в том числе и за счет встроенных генераторов треугольных импульсов и псевдослучайных чисел. Например, с помощью последнего несложно реализовать генератор белого шума с равномерным спектром и перестраиваемой постоянной составляющей. Это бывает необходимо в синтезаторах электронной музыки для получения необычных звуковых эффектов или даже для симуляции некоторых «живых» инструментов с высокой шумовой компонентой (перкуссия, цимбалы и т.п.).

Также генераторы шумов могут быть использованы для тестирования частотных характеристик аудиоцепей (фильтров, усилителей). При оцифровке музыки и других низкочастотных сигналов возможно применение шумовых сигналов для увеличения разрядности АЦП сверх заявленной (т.н. шумовой оверсемплинг).

Если говорить о прямом применении АЦП МК STM32F для воспроизведения звука, то оно оправдано во многих сферах, где качество звучания играет второстепенную роль. Например, в телефонной или радиосвязи вполне достаточно и меньшего разрешения, при этом микроконтроллер мог бы взять на себя иные интерфейсные функции - оцифровку звука встроенным АЦП, кодирование/декодирование подходящим вокодером, отработку кнопок, вывод на экран. Аналогичным образом множество иных приложений могут быть реализованы практически на единственном чипе: диктофоны, автоответчики, системы безопасности с интеркомами, говорящие игрушки, беспроводные гарнитуры и т.д.

Немаловажной особенностью встроенного ЦАП является наличие отключаемого буфера, который призван уменьшить выходное сопротивление преобразователя. Это позволяет значительно увеличить нагрузочную способность прибора, чего часто бывает достаточно для подключения напрямую внешней нагрузки без использования дополнительного операционного преобразователя. Для сравнения, допустимая минимальная резистивная нагрузка с включенным буфером равна 5 кОм, без буфера (для получения 1% точности) она составит не менее 1.5 МОм. При подключении нагрузки меньше допустимой напряжение на выходе ЦАП будет отличаться от заданного программно (нагрузка будет «просаживать» выход по напряжению), что приведет к уменьшению точности преобразования.

Кодеки, кодеки и еще раз кодеки

При работе с микроконтроллерами немаловажным при выборе аппаратной платформы является наличие у производителя соответствующих программных инструментов, облегчающих разработку: драйверов контроллеров, стеков для различных протоколов и т.д. В случае работы с аудио необходимой частью программного обеспечения являются кодеки, позволяющие читать и сохранять файлы из/в популярные форматы. Основная задача кодека при записи файла – это сжатие (с потерями или без) исходного аудиопотока для более экономного его хранения на внешних носителях и/или передачи по каналам связи. При декодировании возникает обратная задача – преобразовать сжатые данные в аудиопоток, пригодный для прямого перевода в аналоговую форму.

Разные кодеки имеют разную эффективность и качество сжатия, также они отличаются количеством вычислительных операций для проведения кодирования/декодирования, некоторые кодеки являются проприетарными, другие распространяются бесплатно. Поэтому следует ответственно подойти к вопросу выбора того или иного кодека для разрабатываемого приложения. Например, при реализации аудиоплеера важна поддержка как можно большего числа форматов воспроизведения звука. При создании аппаратуры для радиосвязи важно не разнообразие форматов, а эффективный двунаправленный кодер речи (вокодер), минимально загружающий CPU и канал приемопередачи.

Общей особенностью практически всех аудиоприменений является критичность к временным задержкам, поэтому выбор кодека необходимо осуществлять с учетом необходимой производительности CPU, которая должна быть достаточной для произведения всех необходимых вычислений кодирования/декодирования «на лету». Использование каналов прямого доступа к памяти также значительно увеличивает общую производительность системы, поскольку эти каналы устраняют необходимость участия процессора при передаче уже обработанных данных от одного периферийного устройства к другому.

Среди кодеков для применения в семействе МК STM32F можно отметить:

Speex Vocoder – бесплатный open-source кодек для кодирования/декодирования речи. Предоставляет полноценное решение для записи, воспроизведения или передачи речи. Область применения – автоответчики, интеркомы, диктофоны, коротковолновые рации. При применении данного кодека на процессорах STM32F103xx с частотой ядра 72 МГц кодирование речи со средним качеством загружало CPU на 52%, декодирование – на 8%. Объем памяти необходимый для работы кодека: память данных (Flash) – 32 кбайт, память программ (RAM) – 7 кбайт [5].

Базируется на технологии CELP (code-excited linear prediction);

Три частоты семплирования (8/16/32 кГц) при постоянном битрейте;

Технология VBR- кодирование с переменным битрейтом (от 2 до 44кбит/с)

Детектирование присутствия голоса (VAD), прерывистая передача (DTX);

Подавители эха и шумов.

STM32 Spirit Audio Engine – комплексный высококачественный аудиодвижок, бесплатно предоставляемый для использования с STM32F. Модель распространения несколько неудобна - для получения бесплатного доступа пользователь должен связаться с региональным дилером, подписать лицензионное соглашение, после чего ему будет выслан диск, содержащий аудиодвижок, документацию и примеры. Необходимо также заметить, что хотя сам движок бесплатен, разработчик не освобождается от оплаты отчислений за использование форматов .mp3 и .wma.

Кодирование аудио в формате *.mp3;

Декодирование аудио в форматах *.mp3 и *.wma, с встроенным эквалайзером;

Регулятор громкости;

Трехполосный эквалайзер;

Микшер каналов.

Демонстрационные платы

Компания STMicroelectronics предлагает отладочную плату на основе МК STM32F107VCT, в которой реализована попытка максимально использовать всю имеющуюся в чипе периферию. Касательно интересующей нас звуковой части, на плате размещен отдельный 24-битный дельта-сигма стерео ЦАП CS43L22, подключенный к МК по интерфейсу I2S. Это производительный ЦАП с низким энергопотреблением, он имеет в своем составе усилитель, рассчитанный для работы как на наушники (14 мВт; 16 Ом@2.5 В), так и на небольшие громкоговорители (класс D, выходная мощность в стерео 2×1 Вт, 8 Ом@5 В).

Демонстрационная плата может быть настроена для вывода звука через ЦАП, встроенный в МК, в этом случае внешний ЦАП используется как усилитель. Также на плате размещен 3.5 мм разъем для подключения средств звуковоспроизведения.

В сети можно встретить близкие функциональные аналоги этой платы с некоторыми мелкими отличиями, например, с наличием микрофона [6].

STMicroelectronics выпускает еще одну плату, разработанную специально для использовании в звуковых применениях – STEVAL-CCA021V1 (рис. 4) на основе МК STM32F103RE с поддержкой USB.

Рис. 4. Демонстрационная плата STEVAL-CCA021V1 для звуковых приложений

В состав платы входят несколько аудио микросхем, а именно: 16-битный I2S ЦАП TS4657 с линейным RCA-выходом; два усилителя класса D – моно TS4962 (1.4 Вт; 8 Ом@5 В) с выводом на встроенный динамик/моно-джек, стерео TS2012 (2×1.15 Вт; 8 Ом@5 В) с выходами на внешние громкоговорители; микрофонный предусилитель TS472 с усилением до 40 дБ.

МЭМС-микрофоны

Данный обзор был бы неполным без нескольких слов о новых микрофонах, выполненных по технологии МЭМС. До недавнего времени, когда шла речь о МЭМС, в большинстве случаев имелись в виду компактные встраиваемые акселерометры. Однако сама технология значительно шире и подразумевает под собой использование средств производства электронной техники (литография, травление и т.п.) в изготовлении различных механических устройств (собственно говоря, МЭМС – это МикроЭлектроМеханическая Система). По мере развития технологии находятся все новые и новые применения для нее – сенсоры давления, микродвигатели, гироскопы и т.п. Теперь дело дошло и до микрофонов. По принципу действия старая проверенная конструкция конденсаторного микрофона осталась без изменений – та же заряженная гибкая мембрана, двигающаяся под действием механических колебаний. Однако технологически это совершенно иной продукт, которому прогнозируют широчайшее применение. Дело в том, что размеры и стоимость производства МЭМС-микрофонов на порядок ниже, чем у их собратьев, сделанных по классической технологии. При этом качество преобразования звука и надежность выше. Поэтому МЭМС-устройства обещают революцию в этой области и могут быть внедрены практически в любой прибор, требующий преобразования звука, без особенного влияния на его размер и конечную стоимость.

В 2010 году STMicroelectronics приступила к производству МЭМС-микрофонов – модель MP45DT01 имеет однобитный PDM-выход (pulse density modulation - плотностно-импульсная модуляция) и требует тактирования внешним сигналом с частотой 2.5 МГц. Характеристики устройства следующие:

Чувствительность –26 dBFS;

Отношение сигнал/шум 58 dB;

Точка акустической перегрузки 120dBSPL;

Размеры 4.72 × 3.76 мм;

Средний ток потребления – 0.65 мА при 1.8 В

Возможность совместной работы пары микрофонов в стерео режиме [7]

Наличие PDM-выхода позволяет использовать сигнал как в цифровых, так и в аналоговых схемах (пропустив его предварительно через фильтр нижних частот).

Список литературы

STM32F105xx/107xx Datasheet (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00220364.pdf)

I2S bus specification. Philips Semiconductors, 1996.

Reference Manual for STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx [RM0008]

http://www.flickr.com/photos/mikelaaron/3946085257/

Vocoder demonstration using a Speex audio codec on STM32F101xx and STM32F103xx microcontrollers [AN2812]

http://www.embedinfo.com/en/list.asp?id=57

MP45DT01 Datasheet. MEMS audio sensor omni-directional digital microphone, STMicroelctronics, 2010.