This is an old revision of the document!
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 Enleth!), 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
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
WIP. Potrzebne będą toroidy FT37-J lub podobne. Zastosowana zostanie przetwornica LTC3122 (startuje od 3V) oraz kontroler ładowania MCP73123.
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)
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. Wymagać będzie dodatkowej pracy
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.
Prawdopodobnie będzie konieczne napisanie sterownika audio ALSA. Odpowiednie sterowniki przykładowe już istnieją.