- Napięcie zasilania: min. 5…9 VDC.
- Maksymalny pobór prądu: 35 mA.
- Cyfrowa, bezprzewodowa transmisja dźwięku z użyciem profilu Bluetooth ADP.
- Możliwość współpracy z komputerem PC, telefonem komórkowym, odtwarzaczem MP3/MP4 i innymi.
- Moduł BTM511.
- Konfigurowanie za pomocą komend AT.
Coraz częściej zasiadamy przed ekranem komputera, aby obejrzeć ulubiony teledysk czy wysłuchać przygotowanej wcześniej listy nagrań. Niestety, pomimo faktu, iż „dobrze” skompresowany plik muzyczny zapewnia przyzwoitą jakość odsłuchu, to jednak jakość dźwięku uzyskiwanego z większości zestawów głośnikowych dołączonych do komputera PC pozostawia wiele do życzenia. Jeszcze gorzej jest w wypadku głośników w budowanych w komputery przenośne, jak notebooki, netbooki, tablety itp. Ze swojego własnego doświadczenia wiem, że dość często zdarza mi się słuchać nagrań mp3 czy oglądać najnowsze teledyski za pomocą laptopa, na którym jednocześnie pracuję. W jaki sposób poprawić komfort używania tego typu urządzeń w celu odtwarzania plików muzycznych? Oczywiście, dołączyć go do dobrego zestawu muzycznego.
W tym celu można byłoby użyć dobrej jakości kabla, ale po pierwsze, byłoby to rozwiązanie niewygodne i mało nowoczesne, a po drugie, karty muzyczne wbudowane w tego typu urządzenia nie zawsze mają dobre parametry. Dlatego postanowiłem zbudować urządzenie autonomiczne, nowoczesne, uniwersalne i łatwe w obsłudze. Mowa o linku audio z wykorzystaniem technologii Bluetooth. Urządzenie to zwyczajnie dołączamy do wejścia stereofonicznego dowolnego zestawu audio, następnie wyszukujemy je w otoczeniu interfejsu Bluetooth naszego laptopa (a nawet telefonu komórkowego, którego interfejs Bluetooth obsługuje profil A2DP), a na koniec przełączamy transmisję sygnałów audio do naszego modułu Bluetooth (np. w programowym odtwarzaczu komputerowym). Łatwo, nowocześnie i elastycznie. Prawda? Oczywiście warunkiem tej prostoty jest wyposażenie źródła dźwięku w interfejs Bluetooth obsługującego profil A2DP.
Zaprojektowanie urządzenia należy rozpocząć od doboru kluczowego podzespołu tj. właściwego modułu Bluetooth. Musi on charakteryzować się dobrymi parametrami toru audio, nie bez znaczenia jest przy tym dostępność w handlu umiarkowana cena. Dobrze by było, aby taki moduł po wstępnym skonfigurowaniu mógł pracować samodzielnie bez konieczności stosowania dodatkowego mikrokontrolera. Po krótkich poszukiwaniach wybór stał się prosty: moduł BTM511.
Skrócony opis modułu BTM511
Moduł BTM511 firmy Laird Technologies jest technicznie zaawansowanym modułem Bluetooth przeznaczonym do aplikacji audio, który ze sporym zapasem spełnia nasze niewygórowane wymagania. Wyposażono go w szereg rozwiązań sprzętowych, dzięki którym budowa nawet skomplikowanych systemów wykorzystujących transmisję Bluetooth jest tak łatwa, jak nigdy dotąd, nawet bez konieczności używania mikroprocesora sterującego praca modułu.
BTM511 charakteryzuje się następującymi, wybranymi cechami funkcjonalnymi:
- pełne wsparcie technologii multimedialnych dostępnych w Bluetooth w wersji v2.1+EDR,
- wsparcie dla aplikacji zestawów głośnomówiących/słuchawkowych w wersji monofonicznej i stereofonicznej,
- wbudowany 32-bitowy procesor DSP Kalimba wyposażony w 16 Mb pamięci Flash,
- wsparcie dla technologii SSP (Secure Simple Pairing),
- wbudowany kodek audio (SBC),
- wejście mikrofonowe,
- wbudowany, stereofoniczny wzmacniacz wyjściowy małej mocy (S/N= -95dB),
- obsługa profili Bluetooth: SPP (Serial Port Profile), A2DP (Advanced Audio Distribution Profile), AVRCP (Audio/Video Remote Control Profile), HSP (Headset Profile), HFP (Hands-Free Profile), DUN (Dial-Up Network Profile),
- zoptymalizowany zestaw komend AT przeznaczonych do sterowania i konfiguracji modułu,
- 8 linii I/O ogólnego przeznaczenia,
- 2 linie I/O do sterowania pracą diod LED,
- wbudowany interfejs I²S (Stereo Audio Digital Interface Bus).
Moduł BTM511, podobnie jak inne moduły tego typu, może być obsługiwany za pomocą komend AT. Każda komenda wysyłana do modułu za pośrednictwem interfejsu UART musi zaczynać się przedrostkiem AT, a kończyć znacznikiem <CR> (Carriage Return, szesnastkowo 0x0D). Każda odpowiedź na przesłaną komendę lub parametry (jeśli jest oczekiwana) ma następująca składnię:
<CR><LF><Odpowiedź><CR><LF>,
gdzie: CR=0x0D, LF=0x0A w zapisie szesnastkowym.
Zaleca się, by przed każdym, kolejnym wysłaniem komendy sterującej odczekać na odbiór przez urządzenie nadrzędne sygnalizacji poprawnego wykonania poprzedniej komendy, które jest sygnalizowane za pomocą ciągu znaków <CR><LF>OK<CR><LF>.
Listę komend AT zoptymalizowano ze szczególnym uwzględnieniem aplikacji audio, a nazwy samych komend podzielono w odniesieniu do obsługiwanych przez nie profili Bluetooth, jak pokazano w tabeli 1.
W ramce zaprezentowano wybrane komendy AT, których znajomość jest niezbędna do sterowania pracą BTM511 w opisywanej aplikacji audioLink. Niestety, wyczerpujący opis znacznie przekroczyłby ramy tego artykułu, ponieważ pełna dokumentacja chociażby listy obsługiwanych rozkazów sterujących zawiera aż 120 stron! Dla poprawnienia czytelności opisu w specyfikacjach składni wszystkich rozkazów pominięto znaki <CR> i <LF>.
Zgodnie z tym, co napisano we wstępie, moduł Bluetooth wyposażono w 8 linii I/O do zastosowania w aplikacji użytkownika. Mogą one być typowymi wyprowadzeniami I/O lub mogą one pełnić funkcje alternatywne, charakterystyczne dla poszczególnych profili Bluetooth. Za ustawienia związane ze sposobem funkcjonowania I/O są odpowiedzialne rejestry konfiguracyjne S651…S658, odpowiednio, dla portów GPIO1…GPIO8. Możliwości konfiguracyjne w tym zakresie zależą od wersji firmware zainstalowanego w module. Można ją sprawdzić wydając polecenie ATI333. Niestety, producent nie zachowuje kompatybilności nastaw firmware. Zmusza to każdorazowo do sięgnięcia do odpowiednich rozdziałów dokumentacji producenta, które dotyczą tematów GPIO – Alternative Functions, GPIO – Configuration Register, GPIO – Function Mapping Codes. Przykładowe nastawy funkcji alternatywnych umieszczono w tabeli 2.
Co ciekawe, testy praktyczne dwóch wersji firmware, które wykonałem z użyciem laptopa Lenovo i telefonu Nokia E51 pokazały, iż dla jednej z wersji oprogramowania nie można było uruchomić żadnej z wymienionych alternatywnych funkcji GPIO (regulacja głośności i wyciszenie), choć dokumentacja producenta wskazywała na implementację tej funkcjonalności, zaś dla innej, najnowszej wersji firmware (14.1.2.0), która udostępniała wspomnianą funkcjonalność, niemożliwe było ustanowienie stabilnego połączenia A2DP z modułami Bluetooth ze stosem firmy Broadcom (w laptopie firmy Lenovo). Ze strony producenta otrzymałem jednakże zapewnienie, iż trwają prace nad usunięciem wymienionych niedogodności, których wynikiem będzie nowa wersja firmware. Niezależnie od możliwości wykorzystania sprzętowych portów I/O modułu w celu regulacji głośności (czy też realizacji innej funkcjonalności) analogiczny efekt uzyskamy korzystając w dedykowanych komend zdalnych funkcjonujących prawidłowo niezależnie od zainstalowanego firmware modułu: AT+GOU dla zwiększenia głośności czy AT+GOD dla jej zmniejszenia.
Budowa i konfigurowanie
Schemat ideowy interfejsu audioLink zaprezentowano na rysunku 1. Jest to urządzenie zbudowane z użyciem minimalnej liczby elementów zewnętrznych. Oprócz typowej aplikacji dla realizacji wyjściowego toru audio, wykorzystano w nim alternatywne, programowe funkcje trzech portów I/O przeznaczone do poziomu sygnału na wyjściu audio modułu oraz zastosowano scalony konwerter RS232/USB w postaci układu scalonego FT232RL przeznaczony do wstępnej konfiguracji modułu BTM511. To rozwiązanie, choć może wydawać się nieuzasadnione ekonomicznie (z uwagi na cenę układu FT232RL i jego „chwilowe” przeznaczenie), pozwala na bezproblemowe skonfigurowanie modułu Bluetooth, jak również na dowolne eksperymentowanie w celach poznawczych.
W tym miejscu warto zaznaczyć, iż pierwszemu podłączeniu naszego urządzenia do komputera PC będzie towarzyszyć żądanie podania ścieżki dostępu do sterowników wymaganych przez układ FT232RL. Sterowniki te są dostępne pod adresem: http://www.ftdichip.com/Drivers/VCP.htm. Po ich zainstalowaniu należy sprawdzić, pod jakim numerem portu szeregowego zainstalował się nasz wirtualny port COM (np. w systemie Windows XP sprawdzamy w Menedżerze Urządzeń numer portu COM oznaczonego jako USB Serial Port).
Moduł BTM511 wymaga wcześniejszej konfiguracji, aby jego ustawienia sprzętowe odpowiadały założeniom projektu. Proces takiej konfigurowania powinien przebiegać z zachowaniem algorytmu (kolejności poleceń) zamieszczonego w tabeli 3.
Do przesłania komend konfigurujących do moduły BT511 można użyć dowolnego programu terminalowego, lecz takie rozwiązanie nie zapewnia dostatecznej wygody użytkowania. Można również napisać prostą aplikację wykonującą w sposób automatyczny cały proces konfigurowania, ale nie będzie to rozwiązanie uniwersalne, i wymaga pewnego dodatkowego nakładu pracy. Co prawda producent modułu udostępnia specjalizowany program terminalowy, jednak moim zdaniem nie jest on zbyt wygodny w użytkowaniu, a już na pewno nie jest rozwiązaniem zapewniającym automatyzację procesu konfigurowania. Dlatego wybrałem produkt konkurencyjnej firmy Telegesis Ltd. o nazwie Telegesis Terminal, który jest przeznaczony do konfigurowania modułów ZigBee (i nie tylko) produkowanych przez tę firmę. To oprogramowanie jest przeznaczone dla komputera PC. Umożliwia ono tworzenie własnej listy rozkazów sterujących w postaci przycisków wykonujących zaprogramowane wcześniej akcje, które dodatkowo można łączyć w dowolne, logiczne grupy rozkazów. Wykorzystując tę możliwość przygotowałem specjalny zestaw komend sterujących przeznaczonych do konfiguracji modułu BTM511 i zapamiętałem go w pliku BTM511_FW_14_1_2_0.xml. Należy go wczytać po instalacji i pierwszym uruchomieniu programu Telegesis Terminal za pomocą menu File → Open Layout (skrót klawiszowy Ctrl+O). Po wykonaniu tych czynności ukaże się okienko pokazane na rysunku 2.
Podzielono je na 3 logiczne części. Pierwsza z nich umożliwia ustawienie parametrów pracy portu szeregowego używanego do połączenia z modułem BTM511 (w naszym wypadku należy wybrać wirtualny port COM, na którym zainstalował się konwerter FT232RL). Jego ustawienia powinny być następujące: 9600, n, 8, 1 ze sprzętowym sterowaniem przepływem (ustawienia domyślne modułu). Druga część okna to pole środkowe zawierające status połączenia z modemem, listę wysłanych i odebranych komend oraz dodatkowe pole Command: przeznaczone na wpisanie opcjonalnych parametrów wysyłanych komend. Trzecia część to pole grup przycisków przeznaczonych do wysyłania predefiniowanych komend sterujących.
Aby rozpocząć proces konfigurowania musimy w pierwszej kolejności zestawić połączenie używając do tego celu przycisku Connect. Po tej operacji wszystkie klawisze komend sterujących stają się aktywne. Teraz można przystąpić do konfigurowania modułu. Należy przy tym zwrócić uwagę, że kolejność wykonywania poszczególnych komend powinna być zgodna z zamieszczoną w tab. 3. Rezultaty wykonania poszczególnych komend możemy podglądać w polu listy zlokalizowanym w środkowej części okna programu. Jeśli wykonanie komendy wymaga podania opcjonalnych parametrów (nadanie nazwy urządzeniu Bluetooth czy wprowadzenie kodu PIN), po wciśnięciu odpowiedniego przycisku zostaniemy przeniesieni do pola Command, w którym można je wpisać (w naszym wypadku w cudzysłowie). Następnie, należy nacisnąć przycisk Send (rysunek 3).
Po skonfigurowaniu moduł Bluetooth jest gotowy do pracy. Resztę czynności wykonujemy po stronie urządzenia – źródła dźwięku. Zwyczajowe kroki podejmowane w takim przypadku to:
- uruchomienie aplikacji do obsługi interfejsu Bluetooth np. kliknięcie ikonki „Moje miejsca interfejsu Bluetooth” (Windows XP),
- utworzenie nowego połączenia,
- wyszukanie nowego urządzenia Bluetooth, czyli naszego modułu, który opisano zdefiniowaną podczas procesu konfiguracji nazwą użytkownika (standardowo audioLink),
- zezwolenie na połączenie z wybranym modułem (może być potrzebne podanie kodu PIN),
- uruchomienie odtwarzacza plików multimedialnych (np. Windows Media Player).
Od tej chwili możemy cieszyć się dobra jakością dźwięku odtwarzanego za pomocą zewnętrznego zestawu audio. W wypadku problemów z odtwarzaniem należy sprawdzić czy na liście Menedżera Urządzeń systemu Windows znajduje się urządzenie o nazwie Bluetooth Audio Device oraz czy w ustawieniach naszego odtwarzacza plików multimedialnych urządzenie to zostało wybrane jako wyjściowe (głośniki).
Montaż
Schemat montażowy urządzenia zamieszczono na rysunku 4. Zdecydowana większość elementów (poza gniazdami i przyciskami) jest typu SMD a ich montaż przewidziano po stronie TOP. Ciekawym pod względem rodzaju obudowy, a zarazem sporym wyzwaniem przy montażu, jest moduł BTM511, a to z racji niewielkich rozmiarów oraz faktu, że wyprowadzenia modułu umieszczono od spodu. Dlatego przy montażu zastosowano pewną „sztuczkę”, która umożliwia ręczne przylutowanie modułu. Na płytce drukowanej, w miejscach wyprowadzeń modułu, zaprojektowano przelotki z warstwy górnej na dolną. Aby przylutować moduł należy miejsca lutów na płytce oraz te wyprowadzenia modułu, które będą przylutowane, pokryć niewielką warstwą cyny jednocześnie pozostawiając grubą warstwę kalafonii.
Następnie należy dokładnie umiejscowić moduł BTM511 w miejscu lutowania kierując się jego obrysem na warstwie górnej, po czym rozgrzać punkty lutownicze w miejscach przelotek na warstwie dolnej powodując roztopienie się nadmiaru cyny pomiędzy tak umiejscowionym elementem a punktami lutowniczymi na warstwie górnej. W ten prosty sposób, przy odrobinie wprawy, przylutujemy nasz moduł. Kolejnym krokiem jest montaż układu scalonego FT232RL charakteryzującego się gęstym rozkładem wyprowadzeń. Montaż tego typu układów najłatwiej wykonać przy użyciu stacji lutowniczej, dobrej jakości cyny z odpowiednią ilością topnika oraz plecionki rozlutowniczej, która umożliwi usunięcie nadmiaru cyny spomiędzy wyprowadzeń układu. Należy przy tym uważać by nie uszkodzić go termicznie. Na końcu należy przylutować inne elementy SMD oraz pozostałe elementy przeznaczone do montażu przewlekanego.
Część płytki drukowanej, na której znajdują się elementy wyjściowego toru audio modułu Bluetooth może być ekranowana przy użyciu kawałka miedzianej blachy przylutowanej w specjalnych punktach przeznaczonych do tego celu, które nie zostały powleczone lakierem. Poprawnie zmontowane i skonfigurowane urządzenie powinno działać natychmiast po włączeniu zasilania.
Robert Wołgajew, EP
- R1, R4: 1 MΩ
- R2, R3: 39 Ω
- R5: 0 Ω
- C1…C3, C7, C9: tantalowy 10 µF/20 V (typ B, EIA 3528-21)
- C4…C6, C8, C10…C12: ceramiczny 100 nF (SMD1206)
- D1: dioda prostownicza S1A (DO214AC)
- U1: NCP1117DT33G (obudowa DPACK)
- U2: BTM511
- U3: FT232RL (SSOP28)
- VOL+, VOL–, MUTE: microswitch kątowy 90º do montażu przewlekanego
- POWER: gniazdo zasilające 2,5 mm typu Jack z przełącznikiem, do montażu przewlekanego
- LEFT, RIGHT: gniazdo typu cinch-mono, kątowe 90º do montażu przewlekanego
- USB-B: gniazdo mini USB-B SMD