Загрузка страницы

ПОСЛУШАЙ, САМОДЕЛЬНЫЙ МИКРОФОН НА STM32 . Настройка I2S .Внешний ЦАП.PDM2PCM

STM32f4 MEMS микрофон. Вывод звука с PDM микрофона MP45DT02 на внешний ЦАП CS43L22. ЗВУК ДЛЯ ВИДЕО ЗАПИСАН НА PDM МИКРОФОН MP45DT02 НЕ ОБРАБАТЫВАЛСЯ КАК ЕСТЬ !!!
00:00 тест на шумы
00:18 stm32f4discovery что будем делать ?
00:32 используемые проекты с github
00:38 проекты от ST для f4discovery
00:55 для генерации использовалась среда STM32CUBE
00:58 PDM микрофон установленный на плате
01:07 как выглядит PDM сигал на выходе микрофона
01:42 PCM микрофоны с которыми работали ранее
01:51 PCM сигнал
02:01 PDM поток в PCM
02:46 PDM2PCM библиотека для PDM микрофонов от ST
02:58 подключение PDM микрофона по интерфейсу I2S
03:05 выбор стерео канала в микрофоне.Когда считывать данные.
03:29 два PDM микрофона в параллель ?
03:46 STM32CubeMX настройка I2S2 приемник slave
04:37 STM32Cube настройка I2S3 передатчик master
05:27 STM32Cube настройка PDM2PCM библиотеки
06:21 программная реализация.
07:44 САМОЕ ГЛАВНОЕ ДЛЯ ТЕХ У КОГО НЕ РАБОТАЕТ!!!
Всем привет. Сегодня речь пойдет о моей старой отладочной плате STM32F4 discovery. Мне захотелось поиграться с имеющимся MEMS микрофоном на плате. А именно вывести звук с микрофона напрямую на внешний ЦАП. Готовых примеров я не нашёл, но смог разобраться и объединить разные проекты с гитхаба. Есть проекты от ST, но они морально устарели и не дают данного функционала. Хотя в них можно найти много чего интересно, что можно использовать в своих проектах.Проект сгенерирован в Cube с использованием библиотеки HAL и поддается любым доработкам.На плате установлен все направленный микрофон MP45DT02, который на выходе выдает однобитный поток в виде импульсов разной плотности. Выглядит это следующим образом. Частая смена логических уровней с одинаковой шириной соответствует нулевой амплитуде сигнала. Если ширина импульсов с логической единицей следующих друг за другом больше чем ширина импульса с логическим нулем, то можно говорить о положительном значении амплитуды сигнала. Чем больше ширина импульса с логической единицей, тем больше значение положительной амплитуды и на оборот при отрицательном значении амплитуды будет преобладать ширина импульса с логическим нулем. Ранее мы работали с аналоговыми микрофонными модулями, с которых снимали сигнал c нужной частотой дискретизации при помощи 12 битного АЦП. На выходе получали PCM выборки где определенному значению амплитуды аналогового сигнала соответствовало число в диапазоне от 0 до 4095.Теперь же чтобы получить привычные для нас данные, т.е. преобразовать PDM поток с микрофона в PCM. Необходимо подвергнуть их фильтрации и децимации. На стадии децимации частота выборки PDM сигнала снижается до необходимой частоты дискретизации в нашем случае 48kHz. Если частота с которой тактируется микрофон равна 3,072 мегагерца, то чтобы получить 48 килогерц берутся каждые 64 бит потока и из них получается одна PCM выборка. В этом случае говорят что коэффициент децимации равен 64. Ну и перед стадией децимации PDM данные проходят через ФНЧ. На самом деле не все так сложно как кажется, так-как ST предоставляет готовый скомпилированный черные ящик в виде модуля библиотеки, который делает всю эту работу и настраивается прямо из куба.Подключение микрофона выполнено по интерфейсу I2s, который реализован в блоке SPI микроконтроллера.У микрофона имеется два канала какой из них будет активен определяется логическими уровнями на входе LR микрофона. В моем случае этот вход подключен к земле через нулевой резистор. Значит активен левый канал. Данные читаются на низком уровне клока первые пол периода, другие пол, выход микрофона находится в высокоимпедансном состоянии. Можно подключить еще один микрофон соединив линии данных и тактирования вместе. При условии что у другого микрофона будет активен правый канал. Данные правого канала будут читаться на высоком уровне клока.Настройка интерфейса выглядит следующим образом. Режим работы полу duplex.Режим передачи – приемник(будем принимать PDM поток с микрофона). Хочу отметить, что у нас не знаковые значения передаются, а поток бит поэтому следующая настройка может быть изменена на другие. 32 бита на 32битный фрейм , но можно установить 24 бита на 32битный фрейм и тоже будет работать. Частота дискретизации аудио - 48 килогерц. Полярность клока низкий. Настройка DMA .DMA1 поток 3.Направление передачи из периферии в память, размер данных половина слова.Для воспроизведения задействован внешний набортный ЦАП CS43L22, интерфейс передачи аудио тоже I2s . Его настройка выглядит следующим образом. Режим работы полудуплекс мастер. Активирован выход тактирования. Настроен на передачу. Стандарт обмена данными I2S филипс.24 бита на 32битный фрейм. Частота аудио 48 килогерц. Полярность клока низкий....


купить PDM MP34DT01 микрофон http://ali.pub/514o6h
купить отладочную плату stm32f4dicovery http://ali.pub/514oji
скачать проект для KEIL https://drive.google.com/file/d/1QUBxso2SIrSIxNUaaQ84a-vVT9O6Jsrv/view?usp=sharing

Видео ПОСЛУШАЙ, САМОДЕЛЬНЫЙ МИКРОФОН НА STM32 . Настройка I2S .Внешний ЦАП.PDM2PCM канала ElectroHobby
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
24 августа 2020 г. 10:00:04
00:08:45
Яндекс.Метрика