Konfiguracja kodeka ADAU1961 i linii I2S

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.

Reply to
kroq
Loading thread data ...

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ł

Reply to
Michał Lankosz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.