ISD9160 - system audio w pojedynczym chipie

ISD9160 - system audio w pojedynczym chipie
Pobierz PDF Download icon

Układy scalone do bezpośredniego zapisu i odtwarzania dźwięku są znane od dawna. Do dzisiaj są one z powodzeniem stosowane w urządzeniach przemysłowych i konsumenckich wykorzystujących dźwiękowy interfejs użytkownika. Przykładem może być znana seria ISD o handlowej nazwie ChipCorder, produkowana przez firmę Nuvoton, a wcześniej przez jej firmę matkę - Winbond.

Układy ISD ewoluowały na przestrzeni lat od układów wykonywanych wyłącznie w technologii MLS (Multilevel Storage Technology - technologia pamięci wielopoziomowej), poprzez układy cyfrowe z pamięcią Flash aż do bardzo rozbudowanych układów SoC łączących funkcje standardowego mikrokontrolera ARM i procesora dźwiękowego. Przykładem tego ostatniego rozwiązania firmy Nuvoton jest układ dźwiękowy ISD9160, który jest pierwszym ChipCorder’em wyposażonym w 32-bitowy rdzeń ARM Cortex-M0. Na rysunku 1 przedstawiono jego budowę blokową, z której wynika, że właściwie jest to specjalizowany mikrokontroler ARM wyposażony w cyfrowy tor audio i liczne peryferie.

Rys. 1. Schemat blokowy układu ISD9160

Ten zoptymalizowany pod kątem niskiego poboru mocy i małej liczby niezbędnych elementów zewnętrznych, układ jest przeznaczony do szerokiego zakresu aplikacji dźwiękowych realizujących nagrywanie i odtwarzanie dźwięku. Z powodzeniem znajduje zastosowanie w takich obszarach, jak urządzenia przemysłowe i konsumenckie, gdzie pełni funkcję interfejsu dźwiękowego człowiek-maszyna, bezprzewodowe systemy monitorowania ze sprzężeniem dźwiękowym, przenośne urządzenia medyczne wykorzystujące powiadomienia dźwiękowe w formie informacji dla pacjentów lub instruktażu dla operatora oraz systemy zabezpieczeń z alarmami dźwiękowymi. Ze względu na niski pobór mocy jest szczególnie przydatny w urządzeniach zasilanych bateryjnie. Przykładowe zastosowania układu ISD9160 pokazano na rysunku 2.

32-bitowa architektura procesora umożliwia projektantom tworzenie skomplikowanych algorytmów, takich jak np. rozpoznawanie mowy, konwersja tekstu na mowę czy obsługa pojemnościowych paneli dotykowych. Dzięki temu jest możliwa prosta realizacja powyższych funkcji jako urządzenia

high-end, które w innych przypadkach wymagałyby zastosowania niezależnego procesora ARM, oddzielnego toru audio czy sterownika czujników pojemnościowych.

Rys. 2. Zastosowania układu ISD9160

Układ ISD9160 jest procesorem bazującym na rdzeniu ARM Cortex-M0, taktowanym do 50 MHz, pracującym w szerokim zakresie napięcia zasilania 2,4-5,5 V. W ramach podstawowego wyposażenia zawiera:

  • 145 KB wewnętrznej pamięci Flash programowanej w trybach ISP i ICP oraz 12 KB pamięci SRAM,
  • 24 wielofunkcyjne końcówki I/O, z których 8 może pracować w trybie analogowym,
  • dwa 24-bitowe układy czasowe z 8-bitowym preskalerem, watchdog, zegar czasu rzeczywistego (RTC),
  • dwa 16-bitowe generatory PWM, interfejsy: UART, SPI, I²C i I²S,
  • opcjonalne interfejsy pamięci zewnętrznej (SPI Flash, karty SD).

System zegarowy składa się z 3 oscylatorów:

  • wewnętrznego strojonego oscylatora RC o częstotliwości w zakresie 16-50 MHz,
  • energooszczędnego (<1 mA) wewnętrznego oscylatora 16 kHz dla funkcji watchdog oraz budzenia z trybów wyłączenia i uśpienia,
  • oscylatora 32,768 kHz z zewnętrznym rezonatorem kwarcowym dla zegara RTC i pracy w trybie energooszczędnym.

Układ zawiera rozbudowany system zarządzania zasilaniem z czterema trybami obniżonego poboru mocy (wartości prądu podane dla napięcia zasilania 3,3 V):

  • tryb głębokiego wyłączenia (Deep Power Down) polegający na odłączeniu zasilania rdzenia i praktycznie całej logiki - pobór prądu <1 μA,
  • tryb wyłączenia (Standby Power Down) przy zasilaniu tylko części logiki, w tym portów I/O, RTC, oscylatora 32,768 kHz i części pamięci RAM - pobór prądu ok. 3 μA,
  • tryb głębokiego uśpienia (Deep Sleep Mode), w którym rdzeń i cała logika są zasilane, wyłączony jest główny oscylator, a układ pracuje przy niskiej częstotliwości zegara 32,768 kHz - pobór prądu ok. 8 mA,
  • tryb uśpienia (Sleep Mode) z bramkowaniem sygnałów zegarowych rdzenia w celu ograniczenia pobieranej mocy - pobór prądu ok. 9 mA.

Zgodnie ze swoim przeznaczeniem układ ma wysokiej jakości tor audio, którego trzon stanowi 16-bitowy przetwornik A/C typu ΣΔ o odstępie sygnału od szumu SNR = 90 dB i zakresie częstotliwości próbkowania 8-32 kHz. Takie parametry umożliwiają przetwarzanie dźwięku w jakości audio. Przetwornik współpracuje ze wzmacniaczem wejściowym o wzmocnieniu regulowanym w zakresie 12-35 dB, do którego można podłączyć sygnały z wejść mikrofonowych lub z analogowych końcówek I/O. Przetwornik wraz ze współpracującymi z nim wzmacniaczami jest objęty pętlą automatycznej regulacji poziomu. Zakończeniem toru audio jest wzmacniacz mocy klasy D z wyjściem różnicowym (DPWM) o mocy 1 W/8 V przy zasilaniu 5 V. Elementem toru audio jest również 4-przewodowy cyfrowy interfejs I²S umożliwiający komunikację z zewnętrznym kodekiem lub procesorem DSP.

Rys. 3. Moduł demonstracyjny ISD-DEMO9160 z podłączonym panelem dotykowym

Jak już napisano wcześniej, zastosowanie rdzenia Cortex-M0 daje możliwość zaimplementowania w układzie wielu interesujących funkcji, wymagających znacznej mocy obliczeniowej. Przykładem może być, mocno eksponowana przez producenta, funkcja rozpoznawania mowy obejmująca zestaw poleceń głosowych, za pomocą których można sterować działaniem różnych urządzeń. Dla tych potrzeb producent opracował odpowiednie algorytmy programowe oraz biblioteki poleceń głosowych w następujących językach: angielskim, włoskim, francuskim, niemieckim, hiszpańskim, portugalskim, rosyjskim, japońskim i chińskim. Obsługa tej funkcji jest wspomagana firmowym oprogramowaniem Voice Sensor SDK, w którym użytkownik ma m.in. możliwość stworzenia własnego zestawu poleceń. Proces rozpoznawania mowy jest w tym przypadku oparty na fonemach, dzięki czemu jest niezależny od mówcy. Na zaadaptowanym modelu językowym zawierającym do 10 poleceń jego dokładność przewyższa 95%. W celu adaptacji do warunków otoczenia algorytm realizuje także redukcję szumu. Praktyczny zasięg działania sięga 5 metrów.

Układ ISD9160 jest elastyczny w projektowaniu i łatwy w użyciu. Może być programowany, jak typowy procesor ARM, w języku C za pomocą środowiska programistycznego firmy Keil. Na potrzeby projektowania aplikacji wykorzystujących ten układ firma Nuvoton stworzyła szereg narzędzi programowych (na komputery PC) i sprzętowych, tworzących swoiste środowisko badawczo-projektowe. W jego skład wchodzą poniższe elementy:

  • moduł demonstracyjny ISD-DEMO9160 (rysunek 3) do prezentacji podstawowych funkcji układu, który może pracować albo jako samodzielne urządzenie, albo można nim sterować z komputera PC przez sprzętowy debugger ICE (In-Circuit Emulator) typu ISD-Nu-Link z interfejsem USB;
  • rozbudowany moduł ewaluacyjny ISD- -ES9160_USB z wbudowanym debuggerem ICE, interfejsem UART, gniazdem kart SD i wyświetlaczem LCD;
  • program ICP Tool do programowania procesora układu ISD9160 w trybie ICP (In-Circuit Programming), czyli bezpośrednio w urządzeniu;
  • środowisko programistyczne Keil μVision4, w którym dostęp do układu ISD9160 uzyskuje się przez wspomniany wcześniej debugger ICE i sterownik programowy Keil Nu-Link;
  • sterownik Keil-Nu-Link umożliwiający rozpoznanie układu ISD9160 przez środowisko Keil μVision4;
  • sterowniki do układów peryferyjnych, takich jak przetwornik A/C czy PDMA oraz biblioteki gotowych procedur programowych do realizacji określonych funkcji lub do obsługi urządzeń zewnętrznych, np. pamięci SPI Flash, kart SD, kodeków Siren7, pojemnościowych paneli dotykowych itp;
  • program VPE9160 umożliwiający tworzenie i edycję plików dźwiękowych, zawierających określone sekwencje (komunikaty) dźwiękowe na potrzeby projektowanej aplikacji. Te pliki mogą być zapisane w pamięci Flash układu ISD9160 za pomocą środowiska Keil μVision4 lub oprogramowania ICP Tool.

Większość elementów tego środowiska projektowego firma Nuvoton dostarcza w pakiecie. Pakiet nie zawiera jednak programu VPE9160, który musi być instalowany oddzielnie oraz środowiska programistycznego Keil μVision4, które użytkownik powinien zainstalować we własnym zakresie.

Potencjalny zakres zastosowania układu ISD9160 jest oczywiście znacznie szerszy, niż to przedstawiono na początku artykułu. Wszystko zależy od inwencji projektantów.

PDW Marthel
www.marthel.pl

Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2014
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów