Table of Contents
Projekt DSPbox
Projekt ma na celu stworzenie kieszonkowego urządzenia DSP/DAC/ADC audio, być może połączonego z odtwarzaczem MP3.
Jako bazę projektu wybrałem BeagleBone (dzięki Elia!), bo jako jedna z niewielu płytek na ARM ma wyprowadzone I2S i odpowiednio mały rozmiar przy rozsądnym zużyciu prądu. Projekt przejawia pewne ciekawe zagadnienia konstrukcyjne:
Zagadnienia konstrukcyjne
Ponieważ jest to złożony projekt wbudowany, występuje wiele trudnych zagadnień konstrukcyjnych.
Zasilanie
Wymagana jest spora pojemność, zatem baterie AA raczej nie wchodzą w grę. Teoretycznie można by zrobić 2x NiMH, może by wystarczyły, ale uznałem, że LiFePo4 będą lepsze mimo mniejszej pojemności na ogniwo. (3x LiFePo4 14500 = 3.2V, ~3000 mAh; 2x wysokoprądowe NiMh = ~2.4V, 2400 mAh) Ich wyższe napięcie ułatwia też skonstruowanie odpowiedniej przetwornicy. Są też sporo lżejsze, wytrzymują więcej cykli ładowania i nie są wrażliwe na temperaturę jak LiIon. Umożliwiają też duże prądy rozładowania (NiMH też) i ładowania (tu już nie), a także trickle charge.
Wzmacniacze operacyjne potrzebne w tym zastosowaniu do buforowania wejścia i wyjścia wymagają wysokich napięć do tej jakości, stąd też konieczny jest odpowiednia przetwornica. Podobnie dowolny ekran LCD czy EPD wymagać będzie odpowiednich napięć, które także z reguły wynoszą +/-15V.
Ze względu na czułe urządzenia audio, zastosowana zostanie topologia boost-buck |Ćuk, izolowana transformatorem w celu uzyskania także napięć dodatnich. Ta topologia cechuje się bardzo gładkimi przebiegami napięcia na wyjściu i wysoką skutecznością. Na wyjściu powstaje spłaszczony przebieg trójkątny, a nie impulsowy.
Layout PCB
WIP. Potrzebne będą toroidy FT37-J lub podobne. Zastosowana zostanie przetwornica LTC3122 (startuje od 3V) oraz kontroler ładowania MCP73123. Zastosowane zostaną płytki wielowarstwowe, być może nawet dwie (jedna na moduł zasilania, druga na tor audio).
Płytka toru audio powinna być wielowarstwowa - prawdopodobnie 4 lub 5 warstw, natomiast płytka zasilania koniecznie będzie musiała zawierać przepusty (via) w celu odprowadzania ciepła.
Tor audio
Urządzenie ma cechować się dźwiękiem wysokiej jakości z małą degradacją na pętli ADC/DAC. Jednocześnie ma być w stanie wysterować większość słuchawek, a zatem cechować się odpowiednio dużym prądem jak i napięciem wyjściowym.
Jako kodek ADC/DAC zostanie zastosowany jeden z układów Cirrus Logic (niegdyś Crystal) - cechują się one wysoką jakością oraz względnie niską ceną.
Ze względu na wymagania, zastosowane zostaną ultra-niskoszumowe wzmacniacze operacyjne AD797 w obudowach DIP-8, z typową kompensacją. Umożliwiają one do 12V i 50 mA wyjścia, przy bardzo wysokich wskaźnikach PSRR i CMRR oraz małym przesterowaniem. Niestety jest on bliski granicy stabilności przy wzmocnieniu 1, więc konieczne będzie zaprojektowanie odpowiedniej pętli sprzężenia zwrotnego - w szczególności niska pojemność w/wym ścieżki. (< 30 pF)
Być może konieczne będzie zastosowanie wysokiej klasy potencjometru (cyfrowego?) na stopniu wejściowym. DAC/ADC zawiera regulację głośności, a bufory wejściowe (także AD797) będą w stanie przyjąć nawet wysokie napięcie.
Wyświetlacz
W celu oszczędności energii zastosowany będzie prawdopodobnie wyświetlacz EPD (e-papier). Większość wyświetlaczy tego rodzaju działa dobrze z napięciem +/-15V. W przypadku EPD stworzenie odpowiedniego interfejsu użytkownika będzie wymagać dodatkowej pracy ze względu na powolne odświeżanie.
Pamięć masowa
TODO.
BeagleBone oferuje wejście dla karty SD, ale nie ma wbudowanej pamięci Flash.
Oprogramowanie
TODO.
Linux 3.6+. Prawdopodobnie zostaną stworzone specjalne wtyczki audio LV2 do zaaplikowania efektów. M.in. splot dual stereo FFT (convolution), sprzężenie stereo (crossfeed), szybki pogłos (reverb), korektor parametryczny IIR i/lub FIR stereo, korektor graficzny wielopasmowy stereo. Część tych efektów już istnieje, ale w gorszych wersjach niż planowane. Jako system dźwięku zostanie użyty Jack Audio Connection Kit w połączeniu z zynjacku. Odtwarzacz audio to prawdopodobnie będzie xmms2 z własnym interfejsem.
Prawdopodobnie będzie konieczne napisanie sterownika audio ALSA. Odpowiednie sterowniki przykładowe już istnieją.
Sterowanie
TODO.
Prawdopodobnie w pierwszej wersji zostaną użyte przyciski na GPIO. Być może później zostanie użyty także ekran dotykowy, ale nie jest to obecnie konieczne.
Obudowa
TODO.
Występuje na rynku kilka odpowiednich obudów aluminiowych małego rozmiaru. W razie potrzeby możliwe też wydrukowanie kilku części na drukarce 3D lub zmontowanie z płytek, plexiglas lub alu.