Działanie urządzenia polega na przetworzeniu sygnału analogowego na cyfrowy poprzez przetwornik A/D zawarty w kodeku WM8904, a następnie rozdzieleniu go w zespole pasmowych filtrów cyfrowych o różnych częstotliwościach. W każdym kanale częstotliwościowym można dokonać regulacji amplitudy sygnału. Następnie wartości ze wszystkich kanałów są sumowane i podawane na przetwornik D/A kodeka.
Opis programu komputerowego
Cały program składa się z dwóch części - procedur przetwarzania sygnału, w skład których wchodzi również komunikacja z kodekiem oraz z interfejsu użytkownika, który jest odpowiedzialny za ustawianie parametrów urządzenia i obsługuje przyciski sprzętowe, enkoder oraz steruje wyświetlaczem graficznym.
Sterowanie kodekiem
Sterowanie kodekiem WM8904 odbywa się poprzez dwa interfejsy: I²C oraz I²S. Magistrala I²C służy do konfiguracji układu. Proces ten polega na programowaniu wewnętrznych rejestrów procesora dźwięku. Można w ten sposób zaprogramować m.in.:
- wzmocnienie wewnętrznego wzmacniacza PGA,
- źródła sygnału wejściowego i wyjściowego,
- częstotliwość próbkowania, itp.
Interfejs I²S służy do przesyłania próbek dźwiękowych. W naszym programie zastosujemy gotową bibliotekę dźwiękową służącą do konfiguracji kodeka. Obsługa transmisji danych odbywa się poprzez dwa interfejsy I²S. Zastosowany mikrokontroler dostarcza system dziewięciu uniwersalnych bloków komunikacji szeregowej nazwanych FLEXCOM, każdy z nich można skonfigurować jako jeden z następujących interfejsów do transmisji danych:
- UART/USART
- SPI,
- I²C,
- I²S.
W naszym układzie użyjemy bloków FLEXCOM6 i FLEXCOM7, ponieważ są one elektrycznie podłączone do kodeka WM8904. Interfejs I²S zaimplementowany w module FLEXCOM6 jest używany jako wejście sygnału akustycznego, natomiast transmisja realizowana przez FLEXCOM7 wysyła dane do przetwornika DAC, czyli pełni funkcję wyjścia. Ponieważ sygnały sterujące transmisją (BCK i WS) są takie same dla obydwu interfejsów, należy dokonać ich połączenia. Służy do tego moduł SYSCTL.
Ponadto program ma funkcję regulacji sygnału wyjściowego oraz ustawienia typu wejścia: wejście mikrofonowe lub wejście liniowe. Rodzaj wejścia odbywa się poprzez zmianę wzmocnienia wewnętrznego wzmacniacza PGA (Programable Gain Amplifier). Obydwa te parametry można zmieniać poprzez ustawianie wartości w rejestrach kodeka.
Do działania układu WM8904 niezbędne jest dostarczenie sygnału taktującego na wejście MCLK. Sygnał ten wytwarzany jest przez mikrokontroler i wyprowadzony na odpowiednio skonfigurowane wyjście MCLK. Częstotliwość sygnału wynosi 24576000 Hz. Jest to zalecana wartość częstotliwości, która umożliwia wytworzenie wymaganych przebiegów sterującym przy pracy dla standardowych prędkości próbkowania.