DSPfactory. Profesjonalny efekt dźwiękowy dla muzyków. cz. 1

DSPfactory. Profesjonalny efekt dźwiękowy dla muzyków. cz. 1
Pobierz PDF Download icon
Odtworzenie brzmienia efektów opartych na celowym opóźnieniu sygnału (zwłaszcza typu chorus, reverb i echo) jest dość łatwe w realizacji. A skoro tak, to zrodził się pomysł zbudowania profesjonalnego efektu muzycznego pozwalającego na symulowanie analogowych kamer pogłosowych oraz realizację innego rodzaju efektów muzycznych. W ten sposób powstał DSPfactory - procesor cyfrowy do tworzenia efektów przestrzennych, który postawiony na półce obok urządzeń ze stajni Rolanda czy Yamahy nie wygląda jak ich "ubogi kuzyn", zarówno pod względem montażowym, jak i użytkowym! Rekomendacje: urządzenie zapoznać się z programowaniem efektów dźwiękowych oraz uzyskać nowe, atrakcyjne brzmienie instrumentów. W związku z tym może on służyć zarówno muzykom, jak i programistom - twórcom nowych, ciekawych algorytmów przetwarzających dźwięk.

Ogromny postęp technologiczny, który dokonał się w ostatnich latach i nadal trwa spowodował, że nawet najprostsze urządzenia otrzymały "gen inteligencji" w postaci wbudowanego mikroprocesora, a nawet systemu czasu rzeczywistego. Ironią losu jest jednak fakt, iż w najmniejszym stopniu, czego można byłoby oczekiwać widząc słowo "postęp", nie wpłynęło to na czas życia urządzeń.

To znaczy - wpłynęło, znacznie go skracając... Aby jednak pozostać sprawiedliwym należy zauważyć, że nie jest to wpływ li tylko postępu samego w sobie, ale równie ekspansyjnego i wszechobecnego marketingu, który wydaje się być głównym kołem zamachowym tego całego pędu ku nowoczesności. To wszystko powoduje, że coraz częściej spotykam się z tęsknotą za tym, co było kiedyś, za tym, co było lepsze i bardziej dopracowane, przemyślane, za retro!

Jednocześnie nie mam bezwzględnej pewności, czy nie jest to po części wpływ naturalnej tęsknoty ludzkiej za czasem, kiedy to byliśmy młodsi i kiedy borykaliśmy się z mniejszą liczbą problemów czy też rzeczywista chęć posiadania rzeczy, które cechuje walor długowieczności.

Jednak wiem jedno - wszystkie urządzenia audio/wideo jak również pomiarowe, sprzed 15 czy 20 lat, które to posiadam lub z którymi spotykam się w mojej codziennej praktyce elektronicznej, działają do dzisiaj i są w doskonałym stanie technicznym.

Ponieważ przez sporą część życia byłem w mniejszym lub większym stopniu w jakiś sposób związany z muzyką, zapragnąłem sięgnąć do lat sześćdziesiątych i siedemdziesiątych po to, aby nieco zgłębić tematykę i historię efektów muzycznych używanych w tamtych czasach. A ta historia jest niezmiernie ciekawa i rzuca nowe światło na rozwój elektroniki sam w sobie.

Wkrótce po tym, jak przy użyciu wzmacniaczy lampowych udało się wzmocnić dźwięki instrumentów (dotyczyło to głównie gitarzystów grających z big-bandami w latach 40.), muzycy zapragnęli, by dźwięk ich instrumentów można było poddawać różnym modyfikacjom. Pierwszymi urządzeniami służącymi do tego celu były efekty w rodzaju tremolo i pogłos sprężynowy realizowane na lampach.

W tym czasie próbowano również uzyskać pogłos z urządzeń taśmowych, ale ze względu na wymagania sprzętowe, była to głównie domena studiów muzycznych. Dopiero wynalezienie tranzystora, a później układów scalonych spowodowało rozkwit masowej produkcji analogowych efektów muzycznych.

Pierwszymi znaczącymi urządzeniami tego typu były efekty fuzz powodujące silne przesterowanie sygnału, co pozwalało uzyskać bardzo "soczysty" dźwięk. Co ciekawe, pionierzy próbowali uzyskać tego typu efekt celowo uszkadzając głośniki, ale na szczęście rozwój elektroniki pozwolił uzyskać go w znacznie łatwiejszy i tańszy sposób.

Muzykiem, który znacząco przyczynił się do popularyzacji tejże tematyki był bez wątpienia Jimi Hendrix - wybitny gitarzysta używający wszelkiego rodzaju urządzeń modyfikujących dźwięk (chociażby fuzz, wah-wah, phaser, chorus i octaver). Pierwszy, tranzystorowy efekt Maestro Fuzz Tone powstał z kolei na początku lat 60. i został spopularyzowany przez zespół Rolling Stones w przeboju "(I can't get no) Satisfaction".

W tamtych latach większość zespołów rockowych używała również różnego rodzaju efektów typu distortion. Ciekawe jest, że efekty z tego okresu są, mimo rozwoju technologii, nadal cenione przez muzyków. Dotyczy to również efektu pogłosu uzyskiwanego dzięki sprężynie pogłosowej. Jest on nadal w niemal niezmienionej postaci dostępny w wielu lampowych wzmacniaczach gitarowych nawiązujących do "klasyków", chociażby firmy Fender.

Równolegle do wspomnianych wydarzeń, brytyjski gitarzysta Hank Marvin grający w zespole The Shadows przyczynił się do popularyzacji innego typu efektów - taśmowych kamer pogłosowych. Były to jeszcze w większości urządzenia lampowe, ale o jakości pozwalającej na używanie ich w warunkach estradowych. Kamery te działały na zasadzie nagrywania dźwięku na taśmę magnetofonową (w formie pętli) i odtwarzania nagranego sygnału z niewielkim opóźnieniem.

Odpowiednio dobrane krótkie odstępy czasu pomiędzy powtórzeniami powodowały powstanie efektu echa. Tego typu kamery pogłosowe zaczęto produkować w latach 60. Były to produkty takich firm, jak: Roland, Vox, Meazzi, Dynacord. Dzięki temu utwory zespołu The Shadows charakteryzowały się brakiem przesterowanego dźwięku, delikatnym pogłosem i dużą melodyjnością.

Nie bez powodu muzyka The Shadows ma nadal wielkie grono zwolenników na całym świecie (również i w Polsce) i wielu gitarzystów próbuje naśladować brzmienie gitary Hanka Marvina, który zresztą jeszcze całkiem niedawno koncertował.

W latach 80. rozwój techniki cyfrowej pozwolił na stworzenie efektów, w których sygnał wyjściowy jest uzyskiwany poprzez przetworzenie sygnału analogowego na cyfrowy, następnie jego modyfikację w specjalnym procesorze DSP i ostateczną zamianę przetworzonego sygnału z powrotem na analogowy.

Taka metoda tworzenia efektów jest ograniczona jedynie mocą obliczeniową procesora i umiejętnościami twórcy algorytmu przetwarzającego sygnał. Oczywiście, złożoność algorytmu ma również znaczenie, ponieważ taki efekt musi być generowany w czasie rzeczywistym, z minimalnym marginesem akceptowalnego opóźnienia dźwięku.

Odtworzenie brzmienia efektów opartych na celowym opóźnieniu sygnału (zwłaszcza typu: chorus, reverb i echo) jest dość łatwe w realizacji. A skoro tak, to biorąc pod uwagę złożoność tematyki przetwarzania sygnałów (DSP), powstał pomysł zbudowania profesjonalnego efektu muzycznego pozwalającego na symulowanie pracy analogowych kamer pogłosowych oraz realizację innego rodzaju efektów muzycznych.

Nie przez przypadek użyłem słowa "profesjonalnego"! Chciałem, aby projekt miał wszystkie walory użytkowe, których oczekuje się od urządzeń profesjonalnych, a przez wzgląd na moją coraz częstszą "słabość" do konstrukcji z minionej epoki, był wykonany perfekcyjnie pod względem układowym, użytkowym i montażowym.

Ponieważ moja wiedza z zakresu układów analogowych i urządzeń estradowych jest, oględnie mówiąc, niewystarczająca, do realizacji projektu zaprosiłem mojego kolegę Marka Kępińskiego, który - jak to się mówi - zjadł zęby na naprawach i aplikacjach estradowego sprzętu muzycznego.

Tak oto powstało urządzenie DSPfactory - cyfrowy procesor muzycznych efektów przestrzennych, który postawiony na półce obok urządzeń ze stajni Rolanda czy Yamahy, nie waham się tego powiedzieć, nie będzie wyglądał jak ich "ubogi kuzyn", zarówno pod względem montażowym, jak i użytkowym! Co więcej, przedstawione tutaj urządzenie pozwala na zapoznanie się z programowaniem efektów tego typu oraz na uzyskanie nowego, atrakcyjnego brzmienia instrumentów bez wgłębiania się w tajemnice algorytmów przetwarzania danych.

W związku z tym, może on służyć zarówno muzykom jak i programistom - twórcom nowych, ciekawych algorytmów przetwarzających dźwięk. Co oczywiste, należy dodać, że efekty tworzone w sposób cyfrowy znacznie przewyższają możliwości efektów analogowych i jest tu również miejsce dla eksperymentatorów chcących uzyskać niespotykane dotąd brzmienia.

Rysunek 1. Obudowa i rozmieszczenie wyprowadzeń układu FV-1

Jedną z możliwości dostępnych za pomocą DSPfactory jest odtworzenie brzmienia zespołu The Shadows. Stosowne algorytmy przetwarzania sygnału zostały w tym wypadku opracowane przez holenderskiego inżyniera Pieta Verbruggena, który jednocześnie jest muzykiem uwielbiającym brzmienie wspomnianej grupy. Po wnikliwej i długoletniej analizie nagrań zespołu opracował on algorytmy oparte o zasady działania i parametry taśmowych kamer pogłosowych, które były używane w latach 60., przez co udostępnił całej rzeszy muzyków możliwości urządzeń retro w wykonaniu współczesnym.

Więcej informacji na ten temat jest dostępne na stronie internetowej pod adresem www.echotapper.nl. Algorytmy opracowane przez Pieta zostały napisane, a następnie skompilowane dla konkretnego procesora sygnałowego DSP, układu amerykańskiej firmy Spin Semi typu FV-1.

Z tego powodu, aby nie trzeba było od nowa tworzyć całego oprogramowania, ten procesor uczyniono "sercem" toru przetwarzania sygnału w DSPfactory. Aby przybliżyć nieco tematykę związaną z tym arcyciekawym układem, nie sposób choćby pokrótce nie opisać jego możliwości.

Układ FV-1 to kompletny, rozbudowany, elastyczny system DSP do zastosowania w audio, który mimo swojej złożonej, cyfrowej architektury może być używany jak każdy inny element analogowy, ponieważ wszystkie wymagania stawiane tego typu systemom zostały zrealizowane w jego strukturze wewnętrznej. Układ ten to w zasadzie kompletny system mikroprocesorowego przetwarzania sygnału z możliwością programowania, charakteryzujący się następującymi, wybranymi cechami użytkowymi:

  • Zintegrowane 24-bitowe przetworniki A/C i C/A.
  • 8 wewnętrznych programów (ROM) i 8 zewnętrznych do umieszczenia w pamięci EEPROM.
  • Wyprowadzenia wyboru programu S0... S2/T0 mające możliwość współpracy z enkoderem.
  • Trzy 9-bitowe wejścia potencjometryczne P0...P2 przeznaczone do regulacji parametrów w czasie rzeczywistym.
  • 6 MIPS przy częstotliwości rezonatora kwarcowego Fs=48 kHz.
  • 128 instrukcji programu na 1 próbkę sygnału (w tym specjalizowane typu EXP i LOG).
  • 32 kB wbudowana pamięć RAM (maksymalne opóźnienie 1 s przy Fs=32,768 kHz).
  • Zintegrowany układ zerowania po włączeniu zasilania.
  • Zintegrowany interfejs I²C.
  • Zintegrowane 4 generatory LFO (2 typu sin/ cos i 2 typu ramp).
  • Napięcie zasilające 3,3 V.

Tabela 1. Lista predefiniowanych efektów ROM z opisem ich właściwości

Jak wspomniano, procesor FV-1 ma pamięć ROM, w której zapisano 8 predefiniowanych programów, efektów audio o ogólnym przeznaczeniu, wykorzystujących wejścia potencjometryczne P0...P2 do kontroli wybranych parametrów w czasie rzeczywistym. Programy te umieszczono w tabeli 1. Na rysunku 1 pokazano wygląd obudowy i rozmieszczenie wyprowadzeń układu FV-1, natomiast w tabeli 2 podano ich funkcje.

Oprócz programów umieszczonych w pamięci ROM układu producent przewidział możliwość dołączenia zewnętrznej pamięci EEPROM sterowanej magistralą I²C, w której to możemy umieścić 8 kolejnych programów - efektów audio. Każdy z programów może zawierać 128 instrukcji asemblera. Pojedyncza instrukcja zajmuje 32 bity, co daje 4 kB wymaganej pojemności zewnętrznej pamięci programu.

W celu zaprogramowania procesora został stworzony specjalny rodzaj asemblera. Listę rozkazów oraz zestaw rejestrów procesora zoptymalizowano pod kątem specyfiki przetwarzania sygnałów audio. Do napisania kodu programu, jego kompilacji i umieszczenia w pamięci EEPROM przewidziano specjalną aplikację o nazwie SpinAsm IDE oraz zaprojektowaną w tym celu płytkę ewaluacyjną z interfejsem USB.

Tabela 2. Opis i funkcje wyprowadzeń układu FV-1

Niestety to rozwiązanie z uwagi na dość pokaźną cenę, nie byłoby dostępne dla większości elektroników-amatorów. Na szczęście aplikacja SpinAsm IDE ma bardzo użyteczną dla naszych zastosowań opcję polegająca na generowaniu kodu wynikowego programu w pliku w formacie Intel HEX.

Należy również zauważyć, iż zaimplementowany przez producenta asembler pozwala na niemalże dowolne kształtowanie możliwości naszego procesora audio, a paleta efektów możliwych do zrealizowania przy jego udziale jest zależna jedynie od umiejętności programisty i jego wiedzy z zakresu DSP, ponieważ wiele z zaimplementowanych instrukcji maksymalnie upraszcza programowanie, nie mówiąc już o tym, iż wykonywane są w jednym takcie wewnętrznego zegara pracującego z częstotliwością 33,55 MHz (nawet tak czasochłonne instrukcje jak EXP czy LOG).

Można także skorzystać ze strony internetowej producenta (www.spinsemi.com) i znajdujących się tam gotowych programów w postaci plików wsadowych kompilatora lub banków efektów.

Bardziej ambitni programiści, niemający do tej pory do czynienia z dość skomplikowanym tematem DSP, mogą - korzystając z tej samej strony WWW - zapoznać się z podstawami tej techniki w dziedzinie przetwarzania sygnału audio, z asemblerem procesora FV-1 oraz aplikacją kompilatora i spróbować swoich sił w samodzielnym tworzeniu programów. Na ogromne uznanie zasługuje fakt, iż wszystkie przedstawione tam trudne, na pierwszy rzut oka zagadnienia, zostały pokazane w bardzo przejrzysty i przystępny sposób nawet dla zupełnych laików w tejże materii.

Wykaz elementów

Moduł zasilacza i interfejsów wejścia/ wyjścia

Rezystory: (przewlekane, 1/8 W)
R1, R2: 120 Ω
R3, R4: 220 Ω
R5: 1 kΩ
R6, R7: 10 kΩ

Kondensatory:
C1, C5, C9, C12: 1000 µF/25 V (elektrolit., R=5 mm)
C2, C4, C6, C8, C11, C14, C15: 100 nF
C10, C13: 100 µF/25 V (elektrolit., R=2 mm)
C3, C7: 10 µF/25 V (elektrolit., R=2 mm)
C16 : 10 µF/16 V (typ B, EIA 3528-21R)
C17, C18: 100 nF (SMD 0805)

Półprzewodniki:
B1...B3: mostek prostowniczy, R=5 mm
D1...D4: 1N4004
D5: BAS85/1N4148
U1: 7815 (TO220)
U2: 7915 (TO220)
U3, U4: LD1117V33 (TO220)
U5: 6N138 (DIL08)
U6: FT232RL (SMD SSOP28)
T1: BC548B (TO-92)

Inne:
L1: 100 µH (dławik)
TR1: transformator TEZ2.5/D230/15-15V
TR2: transformator TEZ2.5/D230/6-6V
USB-B: gniazdo "drukarkowe" USB-B do montażu THT
MIDI-IN, MIDI-OUT: gniazdo DIN-5 do montażu THT
PANEL: gniazdo ML10 (R=2,54 mm, 10 pinów)
POWER: gniazdo ML6 (R=2,54 mm, 6 pinów)
FOOT: gniazdo męskie 2 pin (NSL25-2W)

Moduł panelu sterującego

Rezystory: (SMD 0805)
R1: 22 kΩ
R2...R4: 150 kΩ
R5: 33 Ω
R6...R11, R14*: 10 kΩ
R12, R13*: 1 kΩ
R15**: 100 Ω
P1**: 10 kΩ (pot. montażowy)

Kondensatory: (SMD 0805)
C1, C2: 22 pF
C3...C16: 100 nF

Półprzewodniki:
U1: ATmega164PA (TQFP44)
U2, U3*: FM24CL64B (SOIC08)
T1, T2*: BC817 (SOT23-BEC)

Inne:
OLED: WEH002002AGPP5N00001 (wyświetlacz Winstar OLED 2×20 znaków)
L1: 10 mH (dławik, SMD 1206)
PREV/NO, NEXT/YES, BANK/UPLOAD, STORE: PB6149L (przycisk podświetlany, zielony)
Q1: 12 MHz (rezonator kwarcowy, HC49S)
AUDIO: gniazdo ML14 (R=2,54 mm, 14 pinów)
PWR/INTERFACE: gniazdo ML10 (R=2,54 mm, 10 pinów)
POT1/EDIT, POT2, POT3: enkoder z ośką 15 mm

Moduł płyty głównej (analogowy)

Rezystory: (SMD 0805)
R1, R2, R5, R6, R13, R14: 47 kΩ
R3, R4: 1 MΩ
R7, R8, R35, R36: 100 kΩ
R9, R10: 220 kΩ
R11, R12: 39 kΩ
R15...R22, R25...R32, R47, R48: 10 kΩ
R23, R24, R37, R38: 1 kΩ
R33, R34: 220 Ω
R39...R42: 100 Ω
R43...R46: 20 kΩ

Kondensatory: (SMD 0805)
C1, C2, C7, C8: 47 pF
C3, C4, C11, C12, C50, C51, C53, C54, C56, C57, C59, C60, C62, C63, C65...C67, C72, C76, C77: 100 nF
C5, C6, C13, C14: 470 nF
C9, C10, C17, C18, C47, C48: 10 µF/25 V (elektrolit., R=2 mm)
C15, C16: 100 pF
C19, C20, C35, C36, C45, C46: 3,3 nF
C21, C22, C37, C38: 270 pF
C23, C24, C39, C40: 33 pF
C25, C26, C41, C42: 2,2 nF
C27, C28, C31, C32, C43, C44: 1 nF
C29, C30: 1 µF/25 V (Φ4, raster 2mm)
C33, C34 - elektr. 2,2 µF/25 V (elektrolit., R=2 mm)
C49, C52, C55, C58, C61, C64: 10 µF/25 V (elektrolit., R=2,5 mm)
C68, C69, C71, C75: 10 µF/16 V (typ A, EIA 3216-18W)
C70: 15 pF
C73, C74: 1 µF
C78, C79: 47 µF/25 V (elektrolit., R=2,5 mm)

Półprzewodniki:
U1, U2: TL072D (SO08)
U3...U6: MC33078D (SO08)
U7: SPIN FV-1 (SOIC28)
U8: TPA6111 (SO08)
D1, D2: BAV99 (SOT23)
D3, D4: 1N4148 (MINIMELF)

Inne:
GAIN_IN, PHONE_LVL: potencjometr stereofoniczny do druku, miniaturowy typu Bourns
Q1: 32768 Hz (rezonator kwarcowy, zegarkowy)
PANEL: gniazdo ML14 (R=2,54 mm, 14 pinów)
PWR: gniazdo ML6 (R=2,54 mm, 6 pinów)
K1, K2: TQ2-12V (przekaźnik subminiaturowy)
PHONES: gniazdo typu Jack stereo do druku AMPHENOL ACJS-HHDR
FRONT_IN, FRONT_OUT: gniazdo typu Jack mono do druku AMPHENOL ACJM-HHDR
CLIP: gniazdo męskie 2 pin (NSL25-2W)
BACK_IN, BACK_OUT: gniazdo męskie 3pin (NSL25-3W)

Moduł gniazd wejściowych/wyjściowych L, R - gniazdo typu Jack mono do montażu na panelu firmy NEUTRIK typu NMJ4HFD3

Elementy mocowane do panelu czołowego lub tylnego
Włącznik zasilania do montażu na panelu czołowym
Gniazdo zasilające 230 VAC do montażu na panelu tylnym

* - element opcjonalny, niemontowany w wersji oprogramowania 1.1.1
** - element opcjonalny, montowany w przypadku wyświetlacza LCD (zamiast OLED)

Budowa efektu DSPfactory

Z uwagi na fakt, że DSPfactory jest dość skomplikowanym systemem analogowo - cyfrowym, jego budowę podzielono na 4 moduły funkcjonalne: moduł panelu sterującego (cyfrowy), moduł płyty głównej (analogowy), moduł zasilacza i interfejsów wejścia/wyjścia, moduł gniazd wejściowych/wyjściowych. Opis zacznijmy od "serca" naszego urządzenia, czyli modułu płyty głównej.

Moduł płyty głównej

Rysunek 2. Schemat ideowy modułu płyty głównej (modułu audio) DSPfactory

Schemat modułu płyty głównej pokazano na rysunku 2. Jak widać jest to dość rozbudowany tor audio, którego głównym zadaniem jest kondycjonowanie sygnału doprowadzanego do wejść procesora FV-1 oraz postprocessing tegoż sygnału przed wyprowadzeniem go na wyjście DSPfactory. Co warto zauważyć, tor audio opracowany został w taki sposób, aby można było korzystać zarówno z dwóch niezależnych kanałów L i R (wtedy są dostępne 2 wejścia i 2 wyjścia) lub z pojedynczego wejścia i pojedynczego wyjścia, ponieważ takie instrumenty jak gitara są przeważnie monofoniczne.

Rysunek 3. Schemat blokowy toru audio systemu DSPfactory

Co więcej, budowę urządzenia przemyślano w taki sposób, by przy wyłączonym zasilaniu, wejścia efektu były zwarte z jego wyjściami poprzez przekaźniki K1 i K2, co umożliwia grę na instrumencie pomimo braku zasilania systemu. Z kolei, przy włączonym zasilaniu, tor przetwarzania sygnału może być również pominięty, a to dzięki gniazdu FOOTSWITCH (z tyłu urządzenia) przeznaczonemu do dołączenia typowego wyłącznika nożnego. Aby lepiej zrozumieć zasadę działania naszego systemu w zakresie modułu płyty głównej, na rysunku 3 przedstawiono schemat blokowy toru audio systemu DSPfactory.

Jak widać, w przypadku jednoczesnego użycia wejść BACK_IN_L i BACK_IN_R umieszczonych na panelu tylnym urządzenia na płytkach modułów wejścia/wyjścia, sygnały wejściowe urządzenia rozdzielane są na dwa niezależne tory i jedynie program działający w procesorze FV-1 określa, czy sygnały te pozostają nadal autonomiczne, czy też są mieszane ze sobą w wyniku działania algorytmu odpowiedzialnego za realizację wybranego efektu akustycznego.

Jeśli sygnały te nie są mieszane w procesorze, to na wyjściach BACK_OUT_L i BACK_OUT_R umieszczonych na panelu tylnym urządzenia na płytkach modułów wejścia/ wyjścia, mamy dwa niezależne sygnały audio. Warto także zauważyć, że w przypadku użycia jedynie wejścia BACK_IN_L, identyczny sygnał wejściowy jest dostarczany zarówno do kanału L, jak i R poprzez zwarte styki w gnieździe wejściowym kanału R.

Podobne rozwiązanie zastosowano również na wyjściu - jeśli używamy tylko wyjścia BACK_OUT_L, to występuje na nim zmieszany sygnał obu kanałów. Z kolei, jeśli używamy jedynie monofonicznego wejścia FRONT_IN umieszczonego na panelu przednim systemu DSPfactory i znajdującym się zarazem na module płyty głównej audio, i monofonicznego wyjścia FRONT_OUT umieszczonego, jak poprzednio, to sygnały obu kanałów są w analogiczny sposób zmieszane.

Warto także w tym miejscu zauważyć, iż mieszanie sygnałów jest możliwe wyłącznie dzięki zwartym stykom gniazd na płytkach monofonicznych gniazd typu JACK (panelu tylnego). Oznacza to, że podłączenie zewnętrznych gniazd jest niezbędne dla prawidłowego działania urządzenia. Styki wspomnianych gniazd zwierane są poprzez zwarcie kroplą cyny punktów lutowniczych na płytkach modułów gniazd wejściowych/wyjściowych.

Zastosowane tutaj rozwiązanie w praktyce oznacza, że każdy kanał może przetwarzać sygnał wejściowy w inny sposób. Dla przykładu, w kanale L możemy generować efekt chorus, a w kanale R sygnał może mieć dla przykładu zmienioną wysokość (w najprostszym przypadku o oktawę). Zmieszane sygnały stworzą w takim wypadku nowy, ciekawy efekt akustyczny. Oczywiście, te możliwości wynikają z możliwości oddzielnego programowania kanałów lewego i prawego.

Wróćmy zatem do schematu ideowego toru audio naszego urządzenia z rysunku 2. Oba tory przetwarzania oraz kondycjonowania sygnału są identyczne i składają się ze wzmacniacza wejściowego, regulatora głośności, wejściowego filtra dolnoprzepustowego, części cyfrowej układu FV-1 i wyjściowego filtra dolnoprzepustowego.

Sygnał wejściowy doprowadzany jest do wejść INPUT_L_BACK i INPUT_R_BACK (przy pracy z sygnałem stereo) lub wejścia FRONT_IN (przy pracy z sygnałem monofonicznym). Styki T gniazd INPUT_L_BACK i INPUT_R_BACK są zwarte poprzez styk TS drugiego z kompletu gniazd stereofonicznych, co pozwala na używanie wyłącznie wejścia INPUT_L_BACK jako monofonicznego.

Sygnały wejściowe L i R (lub zwarty sygnał obu kanałów) są następnie dostarczane poprzez przekaźnik K1 do wejść operacyjnych wzmacniaczy wejściowych. Przekaźniki K1 (na wejściu urządzenia) i K2 (na wyjściu urządzenia) pozwalają, jak wspomniano wcześniej, na ominięcie toru przetwarzania sygnału i w przypadku ich odłączenia lub braku zasilania urządzenia sygnał wejściowy dostarczany jest bezpośrednio na wyjścia urządzenia DSPfactory.

Wyjścia systemu skonfigurowane są podobnie jak jego wejścia, co oznacza, że można używać wyjścia FRONT_OUT (przy pracy z sygnałem monofonicznym) lub też wyjść OUTPUT_ L_BACK i OUTPUT_R_BACK (przy pracy z sygnałem stereofonicznym), które podobnie jak wejścia są zwarte poprzez styk TS gniazda OUTPUT_R_BACK. Takie rozwiązanie pozwala na łatwe mieszanie sygnałów L i R, jak również na używanie wyłącznie gniazda OUTPUT_L_ BACK w wersji monofonicznej.

Wspomniany wcześniej wzmacniacz sygnału wejściowego i regulator wzmocnienia został zbudowany przy użyciu wzmacniaczy operacyjnych U1A, U1B, U2A i U2B (o wzmocnieniu, odpowiednio, 9,5 dB i 8 dB) rozdzielonych potencjometrem P1. Ten potencjometr umożliwia ustawienie optymalnego poziomu sygnału dla procesora sygnałowego.

Preferowany poziom tego sygnału to 3 Vpp, jednak wartość ta nie może być w żadnym przypadku przekroczona, gdyż spowodowałoby to przesterowanie procesora i nieprzyjemne dźwięki na wyjściu urządzenia. Możliwość przesterowania procesora sygnałowego jest sygnalizowana poprzez diodę CLIP umieszczoną na panelu czołowym urządzenia (dołączoną do płyty głównej).

Idealne ustawienie wzmocnienia stopnia wejściowego powinno być takie, by dioda CLIP nigdy się nie zapala a jednocześnie poziom sygnału wprowadzanego na układ FV-1 był wystarczająco wysoki. Ustawienie takie pozwoli zachować wysoki odstęp sygnału od szumu. Kolejne wzmacniacze operacyjne U3A, U3B, U4A i U4B tworzą filtr dolnoprzepustowy Czebyszewa.

Częstotliwość odcięcia ustalono na 16 kHz, natomiast nachylenie charakterystyki na około 27 dB na oktawę. Filtr uniemożliwia przedostawanie się częstotliwości powyżej 16 kHz do toru przetwarzania DSP. Konieczność jego zastosowania wynika z prawa Nyquista.

Odfiltrowane sygnały wejściowe L i R dostarczane są do wejść układu FV-1, który wykonuje całe przetwarzanie cyfrowe obu sygnałów. Jest to możliwe dzięki zintegrowaniu w jednej strukturze scalonej przetworników A/C, procesora DSP i przetworników C/A. Wyjścia sygnałowe układu FV-1 doprowadzono do analogicznych filtrów dolnoprzepustowych, jakie zbudowano na wejściu toru audio.

W tym wypadku są to wzmacniacze operacyjne U5A, U5B, U6A i U6B, które uniemożliwiają przedostawanie się częstotliwości nadakustycznych do dalszej części toru audio ograniczając pasmo sygnału wyjściowego do 16 kHz. Dalej, poprzez przekaźnik K2, sygnały wyjściowe z filtrów dostarczane są do gniazd wyjściowych OUTPUT_L_BACK i OUTPUT_R_BACK lub FRONT_OUT.

Dodatkowo, sygnał wyjściowy dostarczany jest również na wejścia stereofonicznego wzmacniacza słuchawkowego zbudowanego przy użyciu popularnego układu TPA6111, który odznacza się prostą aplikacją układową i znakomitymi parametrami elektrycznymi. Głośność sygnału słuchawkowego może być dostosowana przy użyciu potencjometru P2 umieszczonego na panelu czołowym urządzenia (a zintegrowanym na płycie głównej).

Moduł panelu sterującego

Rysunek 4. Schemat ideowy modułu panelu sterującego DSPfactory

Schemat modułu panelu sterującego pokazano na rysunku 4. To system mikroprocesorowy, którego "sercem" jest mikrokontroler ATmega164PA taktowany zewnętrznym rezonatorem kwarcowym o częstotliwości 12 MHz. Zaimplementowano następujące funkcjonalności:

  • Obsługę alfanumerycznego wyświetlacza OLED o organizacji 2×20 znaków stanowiącego element interfejsu użytkownika (wyposażonego w standardowy sterownik zgodny ze sterownikiem Hitachi HD44780).
  • Obsługę 3 enkoderów POT1/EDIT, POT2 i POT3 stanowiących elementy regulacyjno - edycyjne (obsługa ta jest realizowana z użyciem przerwań zewnętrznych typu PINCHANGE: PCINT0, PCINT1 i PCINT2).
  • Obsługę przycisków funkcyjnych PREV/ NO, NEXT/YES, BANK/UPLOAD i STORE stanowiących element interfejsu użytkownika (dzięki wykorzystaniu przerwania od modułu TIMER1 mikrokontrolera realizowana jest obsługa krótkiego i długiego przyciśnięcia bez blokowania programu obsługi urządzenia).
  • Realizację prostego, 8-bitowego i 3 kanałowego przetwornika C/A przy użyciu trybu PWM modułów TIMER0 i TIMER2 mikrokontrolera (wyprowadzenia OC0A, OC0B i OC2A) oraz prostych filtrów RC na wyjściu każdego z kanałów PWM, dzięki czemu możliwa stała się cyfrowa regulacja parametrów czasu rzeczywistego układu FV-1 za pomocą wejść POT0...POT2.
  • Obsługę pamięci FRAM dzięki użyciu wbudowanego w mikrokontroler interfejsu TWI.
  • Obsługę interfejsu wyboru efektu układu FV-1 w zakresie numeru efektu (wyprowadzenia S0...S2), oraz rodzaju pamięci, z której korzysta układ FV-1 (wyprowadzenie T0).
  • Obsługę interfejsu USB, dzięki wbudowanemu w strukturę mikrokontrolera interfejsowi szeregowej transmisji danych USART0 pracującemu z prędkością 9600 bitów/s, układowi FT232RL stanowiącemu dwukierunkowy sprzęg USB/ USART (umieszczonemu na module zasilacza/interfejsów) oraz wykorzystaniu przerwania odbiorczego USART0_ RX, które wespół z programowym buforem cyklicznym o pojemności 64 bajty zapewnia integralność odbieranych danych. Interfejs USB jest wykorzystywany przez DSPfactory do aktualizowania zewnętrznego banku efektów akustycznych (External) przy użyciu aplikacji DSPfactory Programmer autorstwa Marcina Popławskiego.
  • Obsługę dwukierunkowego interfejsu MIDI, dzięki wbudowanemu w strukturę mikrokontrolera interfejsowi szeregowej transmisji danych USART1 pracującemu z prędkością 31250 bitów/s, prostemu sprzęgowi MIDI (umieszczonemu na module zasilacza/interfejsów) oraz wykorzystaniu przerwania odbiorczego USART1_RX, które wespół z programowym buforem cyklicznym o pojemności 128 bajtów zapewnia integralność odbieranych danych. Interfejs MIDI wykorzystywany jest przez urządzenie DSPfactory w celu umożliwienia odbioru komunikatów czasu rzeczywistego, dzięki którym możliwa jest zmiana zarówno numeru efektu jak i jego właściwości. Interfejs MIDI zastosowany w naszym urządzeniu pozwala ponadto na odbiór/ nadawanie komunikatów typu SystemExclusive, dzięki czemu możliwa jest aktualizacja/archiwizacja banku użytkownika (typu Patch).
  • Obsługę przekaźników K1/K2 (umieszczonych na module płyty głównej audio) realizujących funkcję BYPASS, czyli funkcję ominięcia toru audio urządzenia DSPfactory.
  • Obsługę wyłącznika nożnego FOOTSWITCH (znajdującego się na module zasilacza/ interfejsów) odpowiedzialnego za włączenie/ wyłączenie funkcji BYPASS.

Program obsługi nie zajmuje nawet połowy dostępnej pamięci Flash, a sam mikrokontroler został wybrany pod kątem liczby wyprowadzeń, która w tym przypadku była kluczowa.

Procesor FV-1 wymaga dołączenia pamięci EEPROM o pojemności 4 kB (w przypadku, gdy chcemy korzystać z grupy efektów zewnętrznych), zaś w naszym wypadku zastosowano pamięć FRAM o pojemności dwukrotnie większej.

Pamięć ta jest współdzielona przez mikrokontroler i procesor FV-1. Co ważne, układ FV-1 korzysta wyłącznie z operacji odczytu pierwszych 4 kB dołączonej pamięci, z której to odczytuje algorytm wybranego efektu akustycznego (1 z 8), przy czym ten odczyt następuje wyłącznie podczas zmiany efektu i trwa krótką kilkanaście ms. Poza tym czasem, FV-1 zwalnia magistralę I²C. Dzięki takiemu mechanizmowi jest możliwe współdzielenie pamięci FRAM pomiędzy procesor DSP i mikrokontroler. Ten ostatni korzysta z pamięci na dwa sposoby:

  • Po pierwsze, dzięki aplikacji DSFfactory Programmer aktualizuje zawartość pierwszych 4 kB przy wgrywaniu nowej listy efektów.
  • Po drugie, korzysta z kolejnych 4 kB zapisując w nich nastawy potencjometrów POT0...POT2, etykiety efektów oraz nazwy funkcji realizowanych przez poszczególne elementy regulacyjne (POT0... POT2), co jest wykorzystywane przez procedury obsługi interfejsu użytkownika. Edycję i archiwizację wspomnianych elementów umożliwia program DSPfactory Programmer.

Listing 1. Struktury danych służące do przechowywania informacji o efekcie oraz bieżącej konfiguracji urządzenia

Aby być już zupełnie drobiazgowym dodam, że pamięć FRAM (w obszarze "górnych" 4kB) przechowuje także konfigurację samego urządzenia DSPfactory (numer aktywnego efektu oraz numer aktywnego kanału MIDI), która to zajmuje zaledwie kilka ostatnich kilobajtów. Na listingu 1 zamieszczono struktury danych odpowiedzialne za przechowywanie informacji o efekcie oraz bieżącej konfiguracji urządzenia.

Uważny Czytelnik dostrzeże zapewne pewną niezgodność pomiędzy powyższym opisem a zamieszczonym schematem. Cały czas piszę o jednej pamięci FRAM o pojemności 8 kB (FM24CL64B), zaś na schemacie występują dwa układy tego typu oznaczone symbolami U2 i U3, i obwód (tranzystor T2 i rezystory R13, R14) do negowania adresacji tej pary układów (ich wyprowadzenia adresowe A0...A2).

Otóż układ U3 jest elementem opcjonalnym, nieobsługiwanym w bieżącej wersji oprogramowania urządzenia DSPfactory (ver. 1.1.1), a jego obecność pozwala na poszerzenie liczby dostępnych efektów typu USER (tzw. patch) i/lub EXTERNAL, których w bieżącej wersji można zapisać aż 32.

W urządzeniu DSPfactory zastosowano pamięć FRAM ze względu na dużą prędkość zapisu danych. Programowanie zawartości pamięci FRAM (pamięci zewnętrznych efektów i ich ustawień), dzięki wykorzystaniu dedykowanej aplikacji, która to do współpracy używa interfejsu USB i szeregowej transmisji danych o prędkości 9600 b/s. Jak łatwo się domyśleć, trudno byłoby zapisywać w typowej pamięci EEPROM taki strumień danych w czasie rzeczywistym, skoro czas zapisu komórki (czy nawet strony) tejże pamięci jest liczony w dziesiątkach milisekund.

Trudno też wygospodarować w skromnej pamięci mikrokontrolera odpowiednio duży bufor danych, by bieżący transfer zapisywać po zakończeniu aktualnej transmisji. W związku z tym, najprostszym sposobem wybrnięcia z tego problemu było zastosowanie nowoczesnej i nieulotnej pamięci FRAM, której czasy dostępu/zapisu dorównują statycznej pamięci RAM.

Rysunek 5. Schemat ideowy modułu zasilacza i interfejsów wejścia/wyjścia DSPfactory

Już tylko dla porządku dodam, że zworka oznaczona na schemacie urządzenia DSPfactory jako PGM musi pozostać rozwarta podczas programowania mikrokontrolera (jeśli programowany jest w systemie docelowym), zaś podczas normalnej pracy zwarta.

Rozwarcie tejże zworki odłącza od sygnału zegarowego SCK interfejsu programowania ISP kondensator C16, którego obecność powodowałaby znaczne wygładzenie zboczy tegoż sygnału i w efekcie niemożność programowania mikrokontrolera, lub programowanie przy bardzo niskich prędkościach magistrali.

Uff, to tyle, jeśli chodzi o schemat i funkcjonalność modułu panelu sterującego urządzenia DSPfactory, który to, jak widać pełni dość istotną rolę w konstrukcji całego urządzenia zapewniając naszemu małemu mikroprocesorowi sporo pracy do wykonania.

Moduł zasilacza

Rysunek 6. Schemat ideowy uniwersalnego modułu gniazd wejściowych/wyjściowych DSPfactory

Schemat modułu zasilacza i interfejsów wejścia/wyjścia pokazano na rysunku 5. Zasilacz zbudowano z użyciem dwóch niewielkich transformatorów do druku, przez co zapewniono niezależne zasilanie części cyfrowej i analogowej. Pobór mocy poszczególnych modułów urządzenia jest niewielki, więc zastosowano typowe scalone stabilizatory liniowe serii 78XX, 79XX i LD1117. Wspomniany zasilacz dostarcza następujących napięć zasilania:

  • ±15 V do zasilania sekcji wzmacniaczy operacyjnych modułu płyty głównej audio.
  • +3,3 V (A) do zasilania części analogowej układu procesora FV-1.
  • +3.3V (D) do zasilania części cyfrowej całego urządzenia DPSfactory.

Ponadto, w ramach bieżącego modułu, zaprojektowano typowy sprzęg USB/USART z wykorzystaniem układu FT232RL oraz sprzęg MIDI/USART z użyciem transoptora 6N138 dla gniazda MIDI IN i pętli prądowej R1/R2 dla gniazda MIDI OUT. Dodatkowo, przewidziano możliwość przyłączenia modułu gniazda FOOTSWITCH (złącze FOOT) w celu realizacji wspomnianej wcześniej funkcji BYPASS.

Moduł gniazd wejścia/wyjścia

Schemat ideowy modułu gniazd wejścia/ wyjścia pokazano na rysunku 6. Trudno tu o jakikolwiek komentarz, ponieważ moduł ten zawiera wyłącznie dwa stereofoniczne gniazda typu JACK (z zestykami pomocniczymi), dwie zworki odpowiedzialne za jego konfigurację (pozwalające zdecydować, które z gniazd będzie pełniło jednocześnie funkcję gniazda monofonicznego w przypadku podłączenia urządzenia mono) oraz komplet punktów przyłączeniowych. Sam moduł został zaprojektowany w taki sposób by można go było przeciąć na pół i użyć jako modułu gniazda FOOTSWITCH.

Robert Wołgajew, EP

Artykuł ukazał się w
Elektronika Praktyczna
marzec 2016
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik marzec 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 marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna marzec 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów