Konfiguracja kodeka ADAU1961 i linii I2S

Aug 06, 2012 1 Replies

Witam, Mam problem przy zapisie dźwięku z kodeka ADAU1961 do bufora. Używam mikroprocesora STM32F417 i dedykowanych dla niego bibliotek STM32F4xx_DSP_StdPeriph_Lib do konfiguracji peryferiów. Rejestry kodeka konfiguruję za pomocą linii I2C, natomiast próbki dźwięku przesyłane są do mikroprocesora przez linię I2S. Chciałbym otrzymać dźwięk o następujących parametrach: częstotliwość próbkowania = 48kHz, 16 bitów na próbkę, 2 kanały. Po skonfigurowaniu linii I2S oraz kodeka niestety otrzymuję szumy. Kodek pracuje w trybie master i ma podpięty zewnętrzny zegar 12.288MHz.



Czy ktoś posiada doświadczenie w konfiguracji linii I2S i kodeka ADAU1961 i mógłby mi pomóc w otrzymaniu poprawnego dźwieku. Za wszelkie uwagi i sugestie wielkie dzięki.


W dniu 2012-08-06 12:52, kroq pisze:

Wszystkie STM32 mają ten sam błąd interfejsu I2S pracującego w trybie slave. Według mnie olewa on sygnał na linii WS (LRCK), przez co nie synchronizuje się do ramki audio. Jest to opisane w erracie. Tak samo jeśli zagubi się cykl SCLK interfejs rozsynchronizowuje się. Nie wiem dlaczego ST ciągnie ten błąd? Już w 2008 roku musiałem przeprojektować układ właśnie z tego powodu, a też się naużerałem z tym bo pierwszy raz bawiłem się I2S. Zgłaszałem to do przedstawiciela, rozmawiałem, ale nic z tego nie wynikło a jedynie po roku czy dwóch trafiło do errat. Moja rada, ustaw interfejs w tryb master i podepnij 12.288MHz do uC. Ale najpierw sprawdź oscyloskopem linie SDATA i LRCK, czy dane są prawidłowo ułożone i spróbuj metody opisanej w erracie.

Michał

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required