- stereofoniczny mikrofon z cyfrowym torem przetwarzania sygnału,
- kształtowanie charakterystyki sygnału np. dla poprawienia wyrazistości mowy,
- poziom sygnału wyjściowego ograniczany cyfrowym limiterem,
- niewielki pobór prądu – przy zasilaniu 4,5 V wynosi ok. 5 mA.
W module zastosowano cyfrowe mikrofony PDM typu MP34DT05 oraz procesor ADAU1772, znany Czytelnikom z projektu PicoDSP. Zastosowanie mikrofonów z cyfrowym interfejsem PDM umożliwia eliminację analogowych bloków wzmocnienia, znacząco upraszczając budowę układu.
Układ ADAU1772 w swojej strukturze wewnętrznej, która została pokazana na rysunku 1, integruje nie tylko rdzeń DSP, ale także kodek audio z przedwzmacniaczami, bloki programowalnego wzmocnienia PGA oraz pomocnicze układy peryferyjne takie jak układ polaryzacji dla mikrofonów pojemnościowych, generatory transmisji szeregowej I2S/PDM umożliwiające realizację kompleksowego toru audio z obróbką DSP. Ze względu na przeznaczenie układu ADAU1772 do aplikacji mobilnych, cechuje się on niewielkim poborem mocy przy zachowaniu dużych możliwości kształtowania sygnału.
Podstawowe cechy procesora ADAU1772:
- obróbka sygnału z częstotliwością próbkowania do 192 kHz, z niską latencją,
- 4 przetworniki A/D 24-bitowe z programowanym PGA,
- 2 przetworniki D/A 24-bitowe,
- wbudowane obwody polaryzacji dla mikrofonów elektretowych,
- wbudowany driver dla słuchawek niskoomowych (do 30 mW na 16 Ω),
- interfejs dwukierunkowy I2S, TDM, PDM,
- 7 konfigurowalnych portów GPIO,
- tryb Selfboot, umożliwiający pracę bez zewnętrznego mikrokontrolera,
- napięcie zasilania 1,8...3,3 V, niski pobór mocy (<50 mW),
- łatwe programowanie w graficznym środowisku Sigma Studio (od wersji 3.14).
Budowa i działanie
Schemat urządzenia został pokazany na rysunku 2. Procesor U1 współpracuje z dwoma cyfrowymi mikrofonami MIC1 i MIC2 poprzez interfejs PDM. Mikrofony typu MP34DT05 wykonywane są jako moduły monofoniczne, ale oczywiście mogą pracować parami w trybie stereo. Wybór aktywnego kanału PDM, możliwy jest przez konfigurację sprzętową i odpowiednią polaryzację wyprowadzenia wyboru kanału LR. Zasilanie mikrofonów jest odsprzęgane filtrami z elementami FB1, FB2, C12...C15.
Oscylator X1 o częstotliwości 12,288 MHz zapewnia taktowanie procesora DSP. Analogowy sygnał wyjściowy i zasilanie układu wyprowadzone są na złącze OUT. Układ U3 typu ADP160-1.8 dostarcza napięcia zasilania 1,8 V. Układ zasilany jest z baterii 2...3×LR6 lub akumulatora LiPo 4,2 V. Zakres napięcia zasilania ograniczony parametrami stabilizatora U3, powinien zawierać się w przedziale 2,2...5,5 V. Wbudowany w DSP pomocniczy stabilizator LDO dostarcza napięcia DVDD = 1,1 V dla zasilania rdzenia DSP. Całkowity pobór prądu przy zasilaniu 4,5 V wynosi ok. 5 mA.
Pamięć U2 typu 24AA32 służy do przechowywania aplikacji DSP. Zwora SB umożliwia wybór trybu pracy U1, stan wysoki wyprowadzenia SB wprowadza DSP w tryb pracy samodzielnej Selfboot, gdzie program pobierany jest każdorazowo podczas włączenia zasilania z pamięci EEPROM.
Montaż i uruchomienie
Układ zmontowany jest na niewielkiej okrągłej dwustronnej płytce drukowanej o średnicy 25,2 mm. Rozmieszczenie elementów zostało pokazane na rysunku 3.
Podczas montażu należy zadbać o poprawne przylutowanie pada termicznego układu DSP oraz zabezpieczenie mikrofonów zgodnie z nota katalogową. Zmontowany moduł został pokazany na fotografii tytułowej oraz na fotografii 1.
Jeżeli moduł jest poprawnie zmontowany, pozostaje przygotowanie aplikacji dla DSP. Do programowania, a raczej konfiguracji ADAU1772 służy SigmaStudio w wersji od 3.14 (aktualnie wersja 4.5). Niezmiennie jest udostępniane za darmo, wymaga jedynie rejestracji na stronie producenta analog.com. SigmaStudio to środowisko graficzne, w którym budujemy schemat z gotowych, parametryzowanych bloków funkcjonalnych oraz określamy konfigurację sprzętową procesora.
Układ jest programowany/konfigurowany tak, jak pozostałe procesory Sigma DSP – poprzez interfejs USBi. Ze względu na konieczność zachowania niewielkich rozmiarów płytki zrezygnowano z typowego złącza USBI typu IDC10, na rzecz miniaturowego złącza JST 1 mm z odpowiednią przejściówką. Ze względu na napięcia zasilania 1,8 V podczas programowania konieczne jest ustawienie zwory w programatorze USBi w pozycji „1,8 V”.
Po poprawnej instalacji oprogramowania, sterowników programatora USBi, podłączeniu magistrali I2C do złącza USBi płytki mikrofonu oraz doprowadzeniu zasilania i podłączeniu wzmacniacza do złącza OUT, możliwe jest rozpoczęcie pracy z urządzeniem.
W pierwszej kolejności należy dokonać konfiguracji układu i pamięci zgodnie z rysunkiem 4 i rysunkiem 5.
Teraz można przejść do konfiguracji sprzętowej i przygotowania aplikacji. Należy skonfigurować układ generacji sygnałów zegarowych i zasilanie rdzenia DSP zgodnie z rysunkiem 6.
Częstotliwość oscylatora (External Clock) wynosi 12,288 MHz i taktuje procesor bezpośrednio z pominięciem bloku PLL. Dla poprawnej pracy interfejsu mikrofonów PDM, konieczne jest generowanie przebiegu zegarowego PDCK na wyprowadzeniu MP6 (CKO). Częstotliwość sygnału musi zawierać się w dopuszczalnym dla MP34DT05 przedziale 1,2...3,25 MHz, co można osiągnąć poprzez odpowiedni wybór podziału na wyjściu Output Clock. W wyniku podziału 12,288 MHz przez 2 (Main Clock) i 2 (Output Clock) daje spełniającą warunki częstotliwość 3,072 MHz (opis 6,144 MHz jest błędem w oprogramowaniu). Sygnał zegarowy dostępny jest wielofunkcyjnym wyprowadzeniu GPIO MP6, które należy skonfigurować do realizacji funkcji Clock Output zgodnie z rysunkiem 7.
Następnie należy skonfigurować blok wejść zgodnie z rysunkiem 8, aktywując źródło sygnału dla rdzenia DSP na obsługę mikrofonów Digital Mic0/1 i wyłączyć wyciszanie kanałów ADC0,1 – Mute. W zakładce Signal Routing ustalamy przepływ sygnału przez ADAU1772 zgodnie z rysunkiem 9.
Konfiguracji wymagają wyjścia DAC sygnału audio, tak jak to pokazuje rysunek 10. Należy ustawić typ Line Out oraz wyciszyć nieużywane bufory wyjść symetrycznych LN/PN W zakładce Chip Control wyłączamy nieużywane bloki DSP w celu minimalizacji poboru prądu (rysunek 11).
Po zakończeniu konfiguracji DSP można przejść do przygotowania aplikacji. W modelu sygnał z mikrofonów podlega obróbce w bloku korekcji charakterystyki częstotliwościowej i ograniczeniu poziomu limiterem. Schemat blokowy aplikacji został pokazany na rysunku 12.
Sygnał wejściowy z mikrofonów, poprzez bloki Input1 i Mute1, które używane są tylko podczas uruchomienia, doprowadzony jest do bloku wzmocnienia Gain1, a stąd do bloku filtrów. Wskaźniki poziomu dBDisplay1...3 pozwalają dostroić optymalne wzmocnienie układu dostosowane do warunków pracy mikrofonu.
W bloku filtrów, których schemat pokazuje rysunek 13, kształtowana jest charakterystyka częstotliwościowa toru. W pierwszej kolejności z sygnału eliminowane są, poprzez filtr górnoprzepustowy GenFilter1, składowe poniżej 80 Hz, które w większości przypadków przenoszą więcej zakłóceń otoczenia niż sygnału użytecznego mowy. Kolejne trzy bloki GenFilter2...4 kształtują charakterystykę sygnału, najpierw w klasycznym regulatorze barwy tonu, a następnie w dwóch filtrach parametrycznych. Dobierając odpowiednio częstotliwości i dobroci filtrów możemy dopasować przebieg charakterystyki pod kątem aplikacji mikrofonu, poprawiając np. wyrazistość mowy. Ostatnim filtrem jest filtr dolnoprzepustowy eliminujący wysokie częstotliwości odpowiedzialne za nieprzyjemne głoski „syczące”. Dobór filtrów i ich ustawień nie jest sprawą prostą, warto więc skorzystać z narzędzia Stimuls/Probe pozwalającego wyznaczyć charakterystyki częstotliwościowe korekcji przy zadanych ustawieniach.
Z bloku filtrów sygnał doprowadzony jest do limitera ograniczającego poziom wyjściowy, przy zbyt wysokim poziomie sygnału z mikrofonu. Blok limitera umożliwia ustawienie wzmocnienia układu poniżej i powyżej progu ograniczenia oraz stałych czasowych reakcji. Sygnał po obróbce doprowadzony jest do wyjść OUT0 i OUT1 oraz po zsumowaniu do wskaźnika poziomu wyjściowego. Po dostrojeniu parametrów aplikacji należy zaprogramować pamięć EEPROM (zwora SB zwarta) zgodnie z rysunkiem 14.
Po zaprogramowaniu, wyłączeniu zasilania, zdjęciu zwory SB i ponownym podaniu zasilania zewnętrznego procesor DSP realizuje funkcje już bez pomocy USBi i środowiska Sigma Studio. Przykładowy projekt ADAU1772_DigMIC.dspproj oraz zawartość EEPROM dostępna jest w materiałach dodatkowych. Aplikacja oczywiście nie wyczerpuje możliwości cyfrowego mikrofonu z DSP, a stanowi tylko szablon i zachętę do własnych eksperymentów z jednym z najprostszych procesorów rodziny Sigma DSP.
Adam Tatuś
adam.tatus@ep.com.pl
- R1, R5, R7: 100 Ω
- R2, R3: 4,7 kΩ
- R4, R6: 47 kΩ
- R8, R9: 1,5 kΩ
- C1, C2: 22 pF SMD0603
- C3, C5, C9, C10, C11, C13, C15, C17, C18: 2,2 µF SMD0603
- C4, C6, C7, C8, C12, C14, C16: 0,1 µF SMD0603
- CE1: 10 µF/10 V tantalowy SMD A
- MIC1, MIC2: mikrofon PDM typu MP34DT05TR-A HCLGA4
- U1: ADAU1772BCPZ (LFCSP40)
- U2: 24AA32A (MSOP8)
- U3: ADP160AUJZ-1.8 (SOT-23-5)
- FB1, FB2, FB3: 1 µH koralik ferrrytowy 1000 Ω SMD603
- OUT: złącze B4B 2 mm 4 piny proste
- SB: listwa SIP2 2 mm + zwora
- USBi: złącze JST 1 mm kątowe
- X1: rezonator kwarcowy 12,288 MHz CFPX-180