Cyfrowy wzmacniacz audio 2×10 W w formacie RPi Zero

Cyfrowy wzmacniacz audio 2×10 W w formacie RPi Zero

W artykule zaprezentowano cyfrowy wzmacniacz audio wysokiej jakości, zaprojektowany w taki sposób, aby pasował do formatu płytki Raspberry Pi Zero. Moduł będzie pomocny przy budowaniu aplikacji multimedialnych, takich jak odtwarzacze sieciowe, odbiorniki radia internetowego czy kioski informacyjne. Dzięki zastosowaniu przetwornicy obniżającej finalna aplikacja wymaga tylko jednego zasilania.

Podstawowe parametry:
  • moc 2×10 W przy impedancji 8 Ω (4 Ω),
  • interfejs I2S oraz I2C,
  • zasilanie 9...14 VDC,
  • zintegrowany stabilizator o napięciu 5 V i wydajności 2 A do zasilania RPi.

Pomimo niewielkich rozmiarów płytka integruje dwa kanały wzmacniacza o mocy 2×10 W przy 8 Ω i zasilaniu 12 VDC. Dodatkowo zawiera stabilizator impulsowy o napięciu 5 V i wydajności 2 A, który pozwala zasilać Raspberry Pi. Dzięki temu całość wymaga tylko jednego napięcia zasilającego z przedziału 9...14 V, co ułatwia zastosowanie wzmacniacza, także z zasilaniem akumulatorowym lub bateryjnym. Moduł bazuje na układzie SSM3582, którego struktura wewnętrzna została pokazana na rysunku 1.

Rysunek 1. Budowa wewnętrzna SSM3582

SSM3852 zawiera dwa mostkowe stopnie mocy oraz stereofoniczny przetwornik DAC, współpracujący z magistralą I2S lub TDM. Konfiguracja i monitorowanie stanu układu odbywa się poprzez magistralę I2C, dzięki czemu ułatwione jest zdalne zarządzanie pracą wzmacniacza w aplikacjach sieciowych.

Budowa i działanie

Schemat ideowy modułu został pokazany na rysunku 2. Wyjściowy sygnał audio w standardzie I2S (BCLK, LRCK, SDO) ze złącza GPIO Raspberry Pi, poprzez rezystory dopasowujące R1...R3 doprowadzony jest do układu U1. Tam jest konwertowany poprzez wbudowany DAC na sygnał sterujący dwukanałową mostkową końcówką mocy, pracującą w klasie D. Wszystkie parametry interfejsu cyfrowego I2S – regulacja poziomu, wzmocnienie toru audio, ustawienia limitera, konfigurowane są poprzez interfejs I2C. Adres bazowy na magistrali I2C ustalany jest wyprowadzeniami ADR1, ADR0, w układzie jest to 0x10.

Rysunek 2. Schemat modułu wzmacniacza

Do celów diagnostycznych SSM3582 ma wbudowany czujnik temperatury struktury, monitor napięcia zasilania oraz sygnalizację stanów awaryjnych, dzięki którym otrzymujemy podstawowe informacje o stanie układu. W przypadku zasilania bateryjnego monitor napięcia może zostać użyty do ograniczania mocy wyjściowej zależnie od stanu baterii, co chroni głośniki przed pracą z przesterowaną końcówką mocy i zapewnia możliwie najniższy poziom zniekształceń sygnału przy zmiennych warunkach zasilania.

Aplikację SSM3852 uzupełniają tylko filtry wyjściowe EMI, FB1...FB4, C12...C15 wystarczające, gdy kable do głośników nie przekraczają długości kilkunastu centymetrów. Wzmocniony sygnał wyprowadzony jest na złącza OUTL, OUTR. Kondensatory C5...C8 są elementami polaryzacji wyjściowych tranzystorów mocy, pozostałe kondensatory odsprzęgają zasilanie. Układ U1 ma wbudowany stabilizator, dostarczający napięć zasilania do wszystkich bloków funkcjonalnych układu.

Wzmacniacz zasilany jest napięciem 9...14 V poprzez złącze PWR, transil TVS1 zabezpiecza U1 i U2 przed skutkami przepięć na linii zasilania. Dioda LD1 sygnalizuje obecność zasilania. Przetwornica obniżająca na układzie U2 typu ADP2302-5.0 zapewnia zasilanie 5 V dla komputerka Raspberry Pi. Obciążalność przetwornicy to ok. 2 A, co wystarcza w większości zastosowań. Jeżeli zależy nam na większej wydajności do ok. 3 A, można bez zmian układowych zastąpić U2 układem ADP2303-5.0, zwiększając jednocześnie pojemności C18, C19 do 33 μF.

Montaż i uruchomienie

Moduł audio zmontowany jest na niewielkiej dwustronnej płytce drukowanej (rysunek 3) zgodnej mechanicznie z RPi Zero, jednak nic nie stoi na przeszkodzie, aby używać jej też z innymi komputerkami.

Rysunek 3. Schemat płytki PCB

Sposób montażu jest klasyczny i nie wymaga opisu. Wzmacniacz może współpracować także z obciążeniem 4 Ω, ale należy na układzie U1 dokleić niewielki radiator i zadbać o odpowiednią wydajność i przekroje przewodów zasilania. Zmontowany wzmacniacz pokazuje fotografia tytułowa.

Prawidłowo zmontowany układ nie wymaga uruchamiania, konieczna jest oczywiście konfiguracja systemu Linux oraz samego układu SSM3582. Najlepszym wyborem jest Raspbian, gdyż ma wbudowaną obsługę programową (zgodną z Hifi-Berry dac). Na wszelki wypadek na początek należy zaktualizować system, wpisując polecenie:

sudo rpi-update
sync
sudo reboot

Następnie w pliku /boot/config.txt należy usunąć linię:

dtparam=audio=on

oraz dodać linie:

dtparam=i2 c_arm=on
dtparam=i2 s=on
dtoverlay=hifiberry-dac

aktywujące obsługę magistrali I2C, I2S oraz obsługę DAC. Po restarcie systemu sprawdzamy obsługę DAC poleceniem:

aplay -l
**** List of PLAYBsudo aplayACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102 a-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

Następnie poleceniem:

i2 cdetect -y 1

sprawdzamy obecność układu SSM3582 na magistrali I2C (rysunek 4) – powinien być widoczny pod adresem 0x10. W celu szybkiego sprawdzenia działania wzmacniacza przygotowałem prosty skrypt (SSM3582.sh) konfigurujący rejestry układu, którego zawartość została pokazana na listingu 1.

Rysunek 4. Detekcja SSM3582 na magistrali I2C
Listing 1. Skrypt konfiguracyjny SSM3582.sh

#!/bin/bash
i2cset -y 1 0x10 0x04 0x80
i2cset -y 1 0x10 0x05 0x88
i2cset -y 1 0x10 0x06 0x13
i2cset -y 1 0x10 0x07 0xA4
i2cset -y 1 0x10 0x08 0xA4
i2cset -y 1 0x10 0x09 0x10
i2cset -y 1 0x10 0x0A 0x17
i2cset -y 1 0x10 0x0B 0x00
i2cset -y 1 0x10 0x0C 0x01
i2cset -y 1 0x10 0x0E 0xA0
i2cset -y 1 0x10 0x0F 0x51
i2cset -y 1 0x10 0x10 0x22
i2cset -y 1 0x10 0x11 0xA8
i2cset -y 1 0x10 0x12 0x51
i2cset -y 1 0x10 0x13 0x22
i2cset -y 1 0x10 0x14 0xF9
i2cset -y 1 0x10 0x15 0xF9
i2cset -y 1 0x10 0x16 0x00
i2cset -y 1 0x10 0x17 0x30
i2cset -y 1 0x10 0x1C 0x00

Po uruchomieniu układ zostanie skonfigurowany do odtwarzania dźwięku w formacie I2S stereo 44,1 kHz. Poleceniem aplay lub innym odtwarzaczem można sprawdzić działanie wzmacniacza. Regulacja głośności odbywa się poprzez rejestry 0x07 i 0x08. Wartość 0x00 odpowiada maksymalnej głośności, 0xFF minimalnej:

i2cset -y 1 0x10 0x07 0xFF (min)
i2cset -y 1 0x10 0x08 0xFF (min)
i2cset -y 1 0x10 0x07 0x00 (max)
i2cset -y 1 0x10 0x08 0x00 (max)

Wzmocnienie końcówki mocy można zmienić poleceniem:

i2cset -y 1 0x10 0x05 0x88 (+13dB)
i2cset -y 1 0x10 0x05 0x89 (+16dB)
i2cset -y 1 0x10 0x05 0x8A (+19dB)
i2cset -y 1 0x10 0x05 0x8B (+21dB)

Pełny wykaz rejestrów SSM3582 został pokazany w tabeli 1.

Dla jednoczesnego odtwarzania i zmiany parametrów, jeżeli testujemy wzmacniacz w konsoli, polecenie aplay warto uruchomić w tle np.

aplay _plik.wav &

wtedy możliwa będzie zmiana konfiguracji SSM3582 poleceniami:

i2cget/i2 cset

podczas odtwarzania, co znacząco ułatwia testowanie ustawień układu.

Jeżeli planujemy bardziej zaawansowaną obsługę lub napisanie własnego sterownika, to pomocne może być środowisko SigmaStudio, którego można użyć do wygenerowania plików nagłówkowych dla SSM3582. Przykładowe pliki załączono w materiałach dodatkowych.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • R1…R3: 22 Ω (SMD0603) 1%
  • R4…R6: 4,7 kΩ (SMD0603) 1%
Kondensatory:
  • C1, C3: 10 μF/25 V (SMD0805) X5R
  • CE1, CE2: 470 μF/25 V (CED10.0P5.0) elektrolityczny D=10 mm, r=5 mm
  • C2, C4, C9, C16, C17: 0,1 μF/25 V (SMD0603) X5R
  • C5…C8: 0,22 μF/35 V (SMD0603) X5R
  • C10, C11, C20: 10 μF/16 V (SMD0603) X5R
  • C12…C15: 220 pF/50 V (SMD0805) NP0
  • C18, C19: 22 μF/10 V (SMD1206) X5R
Półprzewodniki:
  • D1: SSB43L (SMB) dioda Schottky’ego
  • LD1: dioda LED (SMD0603)
  • U1: SSM3528BCPZ (LFCSP40)
  • U2: ADP2302 (SO8TP)
Pozostałe:
  • FB1…FB4: dławik ferrytowy BLM21PG121SN1D (SMD0805)
  • GPIO: złącze IDC 2×20pin żeńskie
  • L1: 4,7 μH WE LHMI 74437368047
  • OUTL, OUTR: złącze śrubowe 3,5 mm (DG381-3.5-2)
  • PWR: złącze śrubowe 5 mm (DG126-5.0-2)
  • TVS1: SM6T15A transil 15 V (SMD)
 
Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2022
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2022

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2022

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje kwiecień 2022

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2022

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2022

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów