-
1. Data: 2012-08-06 12:52:54
Temat: Konfiguracja kodeka ADAU1961 i linii I2S
Od: " kroq" <k...@W...gazeta.pl>
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.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
2. Data: 2012-08-14 22:22:27
Temat: Re: Konfiguracja kodeka ADAU1961 i linii I2S
Od: Michał Lankosz <m...@t...pl>
W dniu 2012-08-06 12:52, kroq pisze:
> 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.
>
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ł