2015-10-05 8 views
9

Я работаю над аудиопроектом с обнаружением STM32F4, и я заметил одно: все стандарты I2S работают только с одним микрофоном (в зависимости от того, какой край использует отдельные биты). Для примера. с стандартами Philips, MSB или LSB, которые используют падающие грани в качестве триггеров бит, только улавливает заземленный микрофон L/R, и, если я использую стандарт PCM, который использует нарастающие края в качестве триггеров бит, он захватывает только микрофон High L/R. Я не могу найти способ поймать обе микросхемы MEMS за один период. Является ли STM32F4 неспособным использовать микрофоны сразу без внешних микросхем?STM32F4 stereo MEMS mic

+1

У меня такая же проблема, на той же платформе, пожалуйста, вы можете поделиться своим решением с нами, (aswering свой вопрос), как вы делали это в конце концов? Большое спасибо! – An0nym0u5

ответ

3

Решение было бы, чтобы выбрать I2S часов данных в два раза быстрее, чем часы ввода микрофона MEMS, так что процессор может поймать образцы на любой Mems тактового импульса

+1

Хорошо, но как синхронизировать быстрые и медленные часы? Как вы предлагаете генерировать тактовый сигнал? – An0nym0u5

+0

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

1

Вы можете попробовать использовать I2S2 и I2S3, второй для генерации часов для микрофонов, а первый для генерации часов для выборки значений pdm (с двойной скоростью), разделяющих один и тот же PLL, часы должны быть синхронизированы. Поступая таким образом, я думаю, что вы можете получить бит pdm, прочитав регистр recv I2S2, но я также думаю, что биты из двух микрофонов будут чередоваться (немного от микрофона 1, другого от микрофона 2 и т. Д.).

1

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

Вот пример с четырьмя микрофонами. (В вашем случае просто удалите SPI)

enter image description here

Дополнительную информацию можно найти на этом.

http://www2.st.com/content/ccc/resource/technical/document/user_manual/f5/06/94/40/a6/01/49/ae/DM00187405.pdf/files/DM00187405.pdf/jcr:content/translations/en.DM00187405.pdf