Cześć,
rozbudowując wcześniejszy projekt Akwizycja danych sensorycznych postanowiłem pobierać również danych z mikrofonów. Po długiej walce z konfiguracją interfejsu SAI, doszedłem do etapu konwersji sygnałów PDM na PCM w użyciem biblioteki pdm2pcm. Czy ktokolwiek z Was korzystał z niej wcześniej? Niby producent dostarcza sporo materiałów informacyjnych, ale nawet po kilkukrotnym ich obejrzeniu stanąłem w miejscu.
Parametry systemu:
- 4 mikrofony PDM podłączone do 1 linii SCK (3.072 MHz) i dwóch linii danych (2 pary po 2 mikrofony)
- długość ramki 32 bity (w ramce dane z wszystkich 4 mikrofonów)
- sampling rate 48 kHz (akwizycja dźwięku do 24 kHz)
- decimation factor 64
- wykorzystanie DMA.
Moim celem jest przerobienie danych PDM na PCM.
Chciałbym mieć 4 osobne tablice PCM, każda zawierająca dane z innego mikrofonu (oczywiście może być też 1 tablica, którą sobie "ręcznie" rozdzielę). Na razie chodzi mi o zarejestrowanie kilkuminutowej ścieżki audio i jej zapis na kartę pamięci w sposób umożliwiający rozdzielenie 4 ścieżek z różnych mikrofonów.
Jakich wielkości buforów na dane PDM oraz PCM powinienem użyć?
W CubeIDE przy pdm2pcm ustawić 1 kanał czy 4?
in_ptr_channels powinno być równe 4?
out_ptr_channels powinno być równe 1 czy 4?
Jaką wartość output_samples_number wybrać?
Producent podaje, że w PDM_filter_handler powinien być skonfigurowany dla każdego mikrofonu osobno, natomiast w CubeIDE generuje mi się tylko 1 handler w pliku pdm2pcm.c (jeżeli liczba kanałów jest równa 1). Czy zatem How many channel do you use? ustawić mam na 4?
Jeżeli ktokolwiek miał z tym do czynienia lub po prostu jest w stanie pomóc, proszę o informację.