W dotychczasowych odcinkach kursu „Systemy dla Internetu Rzeczy” omówiono zestaw CC2650 SensorTag [1], jego użytkowanie [2] oraz moduły rozszerzeń Debug DevPack, Display DevPack (LCD screen) i LED Audio DevPack [3]. Moduł CC1310 LaunchPad został omówiony w kolejnym odcinku [4]. W dwóch kolejnych artykułach przedstawiono system operacyjny czasu rzeczywistego TI-RTOS, przeznaczony dla układów scalonych z serii CC13xx/CC26xx [5, 6]. Ostatni odcinek to praktyczne (krok po kroku) wprowadzenie do używania stosu TI BLE-Stack [7].
Teraz pora na przedstawienie zestawu startowego CC2650 LaunchPad - SimpleLink CC2650 Wireless MCU LaunchPad Kit (LAUNCHXL-CC2650) [9].
Dokumentacja
Dotarcie do opisu zestawu CC2650 LaunchPad nastręcza (tradycyjnie) pewne kłopoty. Podstawowym miejscem informacji jest strona produktu układu scalonego CC2650 [8]. Na kilku zakładkach znajduje się sporo informacji, wiele odnośników do dokumentacji, oprogramowania, projektów i modułów sprzętowych.
Na stronie zestawu CC2650 LaunchPad [9] zamieszczono odnośniki do krótkiego opisu Quick Start Guide zestawu [10] oraz jego schematu [11]. Strona TI Wiki CC2650 LaunchPad User’s Guide for Bluetooth Smart [12] zawiera opis sprzętowy i programowy. Nigdzie nie ma do niej odnośnika, za to na niej jest odnośnik do strony Meet the LAUNCHXL-CC2650 LaunchPad (jako CC2650 LaunchPad HW User Guide) [15] na portalu TI Resource Explorer [14]. Jest to w zasadzie jedyny szerszy opis zestawu CC2650 LaunchPad na portalu TI.
Sporym problemem z użytkowaniem portalu TI Resource Explorer jest brak daty ostatniej aktualizacji. Zresztą, dotyczy to także stron produktu. A praktyka pokazuje, że w portalach TI zdarzają się „zapomniane” strony z kompletnie nieaktualnymi informacjami.
Na portalu społecznościowym TI E2E Community znajduje się bardzo przydatna strona CC2640/CC2650 Getting Started and FAQ [13]. Jest ona często aktualizowana i zawiera odpowiedzi na najczęściej zadawane pytania.
Są jeszcze dwa miejsca w sieci, gdzie można znaleźć dużo użytecznej informacji. Na portalu element14 jest dostępna strona „SimpleLink CC2650 Wireless MCU LaunchPad Kit” [17] z opisami, linkami do blogów oraz bardzo ciekawą dyskusją. Kolejne przydatne miejsce to portal „SimpleLink Academy” [18]. Znajduje się tam opis (ze źródłami) wielu warsztatów z projektami dla zestawu CC2650 LaunchPad.
Układ scalony CC2650
W zestawie startowym CC2650 LaunchPad zastosowano układ scalony CC2650 [8]. Ten wielostandardowy układ obsługuje komunikację w paśmie 2,4 GHz w standardzie Bluetooth Smart, 6LoWPAN, ZigBee oraz ZigBee RF4CE. Układ CC2650 jest typu SoC i zawiera trzy sprzętowe rdzenie użytkowe: ARM Cortex-M3 (48 MHz), ARM Cortex-M0, który steruje sekcją radiową oraz specjalizowany rdzeń Sensor Controller (bardzo małej mocy) do obsługi modułów peryferyjnych. Stabilną pracę układu zapewniają dwa rezonatory kwarcowe: 24 MHz oraz 32,768 kHz. Zestaw umożliwia uruchamianie oprogramowania przeznaczonego dla wersji układów CC26xx obsługujących jeden standard komunikacyjny: CC2640 Bluetooth Low Energy, CC2630 – ZigBee/6LoWPAN, oraz CC2620 – ZigBee RF4CE.
Układ CC2650 wyróżnia się bardzo małym poborem mocy. Przy zasilaniu 3 V pobiera: MCU – 61 mA/MHz, RX – 5,9 mA, TX – 6,1 mA (0 dBm)/9,1 mA (+5 dBm). Prąd uśpienia układu jest niewielki: tryb Standby 1 mA (pracuje RTC Running i podtrzymanie zawartości RAM/CPU), stan Shutdown 100 nA (wybudzanie zdarzeniem zewnętrznym).
Zestaw startowy CC2650 LaunchPad umożliwia zmianę standardu komunikacji poprzez wymianę (załadowanie) oprogramowania bezpośrednio poprzez połączenie bezprzewodowe [9].
Płytka zestawu startowego CC2650 LaunchPad
Cała elektronika zestawu CC2650 LaunchPad jest umieszczona na jednej wielowarstwowej płytce drukowanej [11]. Płytka jest podzielona na dwie części: u góry płytki jest emulator sprzętowy standardu XDS110 a na dole układ scalony CC2650F128RGZT (rysunek 1). Patrząc od góry, na płytce znajduje się złącze USB micro. Do niego może być dołączona ładowarka USB lub komputer. Emulator standardu XDS110 został zrealizowany z wykorzystaniem procesora komunikacyjnego TM4C129 (Tiva). Procesor ten zapewnia obsługę pełnego łącza emulacyjnego JTAG procesora CC2650. Do układu dołączone są dwie diody LED sygnalizujące aktywność komunikacyjną. Regulator 3,3 V, dołączony do gniazdka USB, dostarcza zasilanie do emulatora i procesora. W środku płytki znajduje się poziomy szereg zwor, które pozwalają na rozłączenie połączenia pomiędzy emulatorem i procesorem. Osiem sygnałów jest łączonych przez zwory M1-M8 (P4.1-P4.16). Dalej są zwory połączenia zasilania:
Zwora M9. Napięcie 3,3 V (XDS_VCC) z regulatora LDO modułu XDS110 jest dołączane jako główne zasilanie układu procesora.
Zwora M10. Napięcie 5 V (USB_VBUS) z gniazdka USB-micro modułu XDS110, jest doprowadzane do złącza J1 oraz P2 (+5 V) tylko w celu kompatybilności ze standardem LAUNCHXL. Nie jest ono używane w układzie procesorowym.
Zwora M11. Masa modułu XDS110 jest dołączana do masy układu procesora.
Złącze P10 („VSENSE”) umożliwia wybór zasilania translatorów poziomów napięcia sygnałów łącza JTAG modułu XDS110. Zwora w pozycji P10.1-2 umożliwia zasilanie translatorów z LDO emulatora („XDS110 Power”). Zwora w pozycji P10.2-3 umożliwia zasilanie translatorów napięciem układu procesora (‘Extern. Pwr”). Typowo jest to zasilanie zewnętrzne poprzez wyprowadzenia „3V3” złącz P1 i J1.
Pełne rozłączenie obu stron pozwala na:
- Zastosowanie emulatora XDS110 do debugowania innego układu elektronicznego z układem scalonym serii CC13xx/CC26xx przy zastosowaniu złącza P7 („XDS110 Out”).
- Debugowanie układu CC2650 na płytce LaunchPad przez zewnętrzny emulator przy zastosowaniu złącza P5 („CC3650 In”).
Wyprowadzenia układu scalonego CC2650 zamontowanego pośrodku płytki są udostępnione na dwóch złączach 40-to wyprowadzeniowych. Po lewej stronie płytki znajduje się złącze oznaczone na schemacie J1 (obok J3) a po prawej stronie złącze J2 (obok J4).
Firma Texas Instruments stosuje standardową numerację wyprowadzeń dla płytek LAUNCHXL [19]. Są to oznaczenia zgodne ze standardem aplikacji Energia – wersji Arduino dla płytek LanuchPad firmy Texas Instruments. Fizyczne rozmieszczenie złącz na płytce LanuchPad nie jest zgodne ze standardem Arduino.
Na płytce drukowanej zestawu CC2650 LaunchPad wyprowadzenia są opisane nazwami dołączonych do nich wyprowadzeń układu scalonego CC2650. W dokumencie CC2650 LaunchPad Development Kit Quick Start Guide [10] są podane nazwy wyprowadzeń układu scalonego CC2650.
Zastosowane na płytce złącza są podwójne, na górze płytki męskie a na dole żeńskie. Umożliwia to nakładanie na płytkę modułów rozszerzeń (BoosterPack) oraz składanie płytek w stos. Na złączach J1-J4 są udostępnione wszystkie trzydzieści wyprowadzeń wejścia-wyjścia (GPIO) układu scalonego CC2650 oznaczane „DIOxx”, gdzie xx-numery od 01 do 30 oraz cztery sygnały łącza JTAG i sygnał reset („LPRST”).
Zestaw CC2650 LaunchPad Rev 1.2 ma błędne oznakowanie wyprowadzeń DIO2 and DIO3 na górnej powierzchni płytki drukowanej [12]. Oznaczenie zostały zamienione miejscami. Zostało to poprawione w wersji 1.3.
Na dole płytki są umieszczone dwa potrójne złącza z wyprowadzoną masą „GND” oraz zasilaniem „3V3” oraz „5V” (nieużywane na płytce). Do wyprowadzenia DIO7 układu scalonego CC2650 jest dołączona zielona dioda LED poprzez złącze P6 3-4. Do wyprowadzenia DIO6 jest dołączona czerwona dioda LED poprzez złącze P6 1-2. Do wyprowadzenia DIO13 jest poprzez rezystor 100 V dołączony przycisk SW1 „BTN-1” (po lewej stronie płytki). Do wyprowadzenia DIO14 jest poprzez rezystor 100? dołączony przycisk SW2 „BTN-2” (po prawej stronie płytki). Do układu scalonego CC2650 są dołączone, umieszczone na płytce, rezonatory kwarcowe: główny zegar systemowy 24 MHz, zegar RTC 32,768 kHz oraz pamięć Flash 8 Mbit (bardzo małej mocy) obsługiwana poprzez 4-sygnałowe łącze SPI.
Na dolej płytki drukowanej zestawu CC2650 LaunchPad jest umieszczona antena wykonana powierzchniowo. Antena pozwala na pracę zarówno w paśmie 868 MHz ISM (Europa) jak i pasmie 915 MHz ISM (USA). Zaletą anteny tego typu jest niska cena oraz dobra jakość (po dokładnym zweryfikowaniu działania kolejnych wersji płytki drukowanej). Część radiowa zestawu CC2650 LaunchPad jest dokładną kopią rozwiązania z wcześniejszego modułu CC2650EM-7ID [9]. Podczas normalnej pracy antena PCB jest dołączona do wyprowadzeń sekcji radiowej układu CC2650 poprzez kondensator (oznaczony jako C51). Po wylutowanie jego i wlutowaniu kondensatora (C58) dołączonego do gniazdka typu JSC (P11) możliwa jest praca z anteną zewnętrzną [23].
Na samym dolej płytki drukowanej znajdują się dwa otwory do mocowania zewnętrznej anteny [23].
Użytkowanie zestawu startowego CC2650 LaunchPad
Zestaw CC2650 LaunchPad jest dostarczany z fabrycznie zaprogramowanym programem o nazwie „CC2650 LaunchPad Out of the Box Demo”. Jego opis znajduje się na portalu TI Resource Explorer [14] na stronie Meet the LAUNCHXL-CC2650 LaunchPad [15]. Na tej stronie jest przycisk dający możliwość wpisania obrazu tego programu do zestaw CC2650 LaunchPad z zastosowaniem środowiska sieciowego (wtyczka do przeglądarki) [30]. Jest jeszcze strona „Project Zero for the CC2650 LaunchPad” [16] z opisem i odnośnikiem programowania sieciowego aplikacji Project Zero.
Nazwa Out of the Box Application pojawia się wielokrotnie w dokumentacji. Ale dotyczy ona też innych aplikacji gotowych do działania „z pudełka”.
Na stronie SimpleLink Academy [18] jest zamieszczona prezentacja wideo [20] pokazująca sposób użytkowania aplikacji Project Zero oraz sposób pracy z projektem CCS tej aplikacji z wykorzystaniem środowiska sieciowego (CCS Cloud IDE).
Dołączanie zestawu startowego CC2650 LaunchPad do urządzenia mobilnego
Zestaw CC2650 LaunchPad może zostać dołączony poprzez łącze radiowe standardu Bluetooth LE do urządzenia mobilnego (smartfon/iPad) lub innego z obsługą tego standardu. Opis i odnośniki są zamieszczone na stronie Meet the LAUNCHXL-CC2650 LaunchPad [15].
Postępowanie przy uruchamianiu komunikacji z urządzeniem mobilnym:
* Pobierz darmową aplikację Simplelink Starter dla swojego urządzenia mobilnego (smartfon/iPad), obsługującego transmisję bezprzewodową Bluetooth LE ver. 4.0 (lub nowszą):
- Z Apple App Store dla urządzeń z systemem operacyjnym iOS 8.0 i nowszym (iPhone i iPad) [24].
- Z Google Play dla urządzeń z systemem operacyjnym Android 5.0 i nowszym [25].
* Włącz zasilanie zestawu CC2650 LaunchPad. Zielona dioda LED zaczyna błyskać. Sygnalizuje to, że zestaw CC2650 LaunchPad jest w stanie rozgłaszania.
* Uruchom aplikację na swoim urządzeniu mobilnym. Może to wymagać włączenia na urządzeniu radia Bluetooth. Aplikacja najlepiej działa na iPadzie. W wypadku Androida można spotkać się z kłopotami i ograniczeniami funkcjonalności.
W głównym oknie aplikacji wyszukaj na liście „Bluetooth Smart Devices” swój zestaw CC2650 LaunchPad:
- z aplikacją Project Zero zestaw widoczny jako Project Zero.
- z aplikacją „CC2650 LaunchPad Out of the Box Demo” zestaw widoczny jako CC2650 LaunchPad.
Typowo, dołączony blisko zestaw ma on największą wartość RSSI (najwięcej kresek identyfikacji poziomu sygnału). Po kliknięciu na niego zostaje wyświetlone okienko wyboru (rysunek 2).
Kliknij na linię nazwy i wybierz “Mission Control”. Zostaje pokazane okno prezentujące bieżące wartości odczytu z modułu (rysunek 3). Zielona dioda LED zestawu CC2650 LaunchPad przestaje błyskać. Oznacza to, że zestaw jest w stanie komunikacyjnym „połączony”. Niestety, sygnalizacja wygląda tak samo, jak w stanie uśpienia urządzenia.
Aplikacja umożliwia włączanie i wyłączanie diod LED zestawu, odczyt stanu przycisków, stanu napięcia zasilania (baterii). Możliwa jest też aktualizacja oprogramowania firmowego zestawu oraz dołączenie do chmury obliczeniowej. Na stronie społeczności „element14” [17] można zapoznać się z praktycznym opisem postępowania przy pracy z zestawem CC2650 LaunchPad. Tam też jest zamieszczona praktyczna prezentacja.
Dołączanie zestawu startowego CC2650 LaunchPad do chmury
Aplikacja Simplelink Starter pozwala, aby urządzenie mobilne (np. iPad) dołączone do sieci Internet umożliwiało pracę zestawu CC2650 LaunchPad z chmurą obliczeniową. W sieci wykorzystywany jest „IBM Watson IoT Platform Quickstart Service” [28].
Cloud View
Na górze okna Simplelink Starter znajduje się pole Cloud View, które pozwala na pracę z chmurą obliczeniową. Kliknięcie na przełącznik „Push to cloud” powoduje włączenie pracy z chmurą obliczeniową. Jeśli połączenie zostało poprawnie wykonane to przełącznik pozostaje w prawej pozycji. Za każdym razem jak dane są wysyłane do chmury poniżej ikonki chmury zostaje pokazana strzałka.
Kliknięcie na ikonę chmury otwiera okno „Config Summary”. Jako identyfikator urządzenia jest brany unikalny adres MAC zestawu CC2650 LaunchPad. W oknie jest podany adres dostępu do strony Internetowej Quickstart z danymi pomiarowymi pobieranymi z zestawu CC2650 LaunchPad i wyświetlanymi na bieżąco (w czasie rzeczywistym) [28]. Łączenie jest darmowe, łatwe, szybkie i obecnie (06.2017) nie działa. Na stronie Quickstart jest informacja o otrzymaniu komunikatu od urządzenia. Jednak ze względu na błędny format dane nie mogą być pokazane.
Dla zestawu CC2650 SensorTag połączenie działa, więc może jest to sytuacja przejściowa.
Reprogramowanie zestawu startowego CC2650 LaunchPad
Zestaw CC2650 LaunchPad jest dostarczany z fabrycznie zaprogramowanym programem „CC2650 LaunchPad Out of the Box Demo”. Nie jest dostępny projekt tej aplikacji. Można tylko zaprogramować jej obraz [15].
Ponowne zaprogramowanie zestawu CC2650 LaunchPad programem firmowym „CC2650 LaunchPad Out of the Box Demo” jest możliwe na kilka sposobów:
- Z zastosowaniem programu SmartRF Flash Programmer 2 [22].
- Z zastosowaniem oprogramowania w chmurze (strona „Meet the CC2650 Launchpad” [15]).
- Poprzez łącze radiowe standardu Bluetooth LE z aplikacji Simplelink Starter (lub TI SensorTag) pracującej na urządzeniu mobilnym (smartfon/iPad).
Programowanie w środowisku Code Composer Studio. Nie jest dostępny projekt tej aplikacji. Za to jest dostępny projekt bardzo podobnej aplikacji Project Zero.
Najlepszy sposób ponownego zaprogramowania zestawu to zastosowanie programu SmartRF Flash Programmer 2. Typowo, udostępnia on najbardziej aktualne wersje FW. Jest prosty, łatwy i stabilny. Pozwala też na przeprowadzenie aktualizacji oprogramowania firmowego XDS110, jeśli jest wymagana.
Reprogramowanie aplikacji firmowej w programie SmartRF Flash Programmer 2
Do programowania układów rodziny CC13xx/26xx służy program SmartRF Flash Programmer 2 [22]. Jest on zapisywany w folderze C:Program Files (x86)Texas InstrumentsSmartRF ToolsFlash Programmer 2. Szczegółowy opis programu SmartRF Flash Programmer 2 User’s Manual znajduje się w pliku help.html w ścieżce C:Program Files (x86)Texas InstrumentsSmartRF ToolsFlash Programmer 2dochelp.
Jednak do prawnej pracy wymagane jest też zainstalowanie programu BLE Device Monitor [26]. Obecnie poprawną i (w miarę) stabilną pracę zapewnia wersja v2.5.0. Jest on zapisywany w folderze C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitor. Razem z aplikacją jest instalowany folder /firmware, w którym znajdują się pliki źródłowe obrazów aplikacji firmowych gotowe do programowania układów rodziny CC13xx/26xx. W pliku readme.html znajdującym się w tym folderze jest opis dostępnych wersji oprogramowania firmowego.
Po uruchomieniu programu SmartRF Flash Programmer 2 w oknie Connected devices zostanie pokazany wykryty układ XDS110, XDS-xxxxxxxx (rysunek 4).
Aktualizacja oprogramowania firmowego XDS110 w programie SmartRF Flash Programmer 2
Często linia XDS110 jest poprzedzona znakiem wykrzyknika i typ układu jest pokazany jako Unknown [22]. Kliknięcie na linię XDS110 powoduje wyświetlenia okna z informacją o wymaganej aktualizacji oprogramowania firmowego emulatora XDS110 (rys. 4). Należy to wykonać.
- Kliknij Yes.
- Poczekaj na wyświetlenie informacji o poprawnym wykonaniu aktualizacji.
- Kliknij Done.
- Teraz poprawnie jest wyświetlana nazwa dołączonego modułu sprzętowego.
- Na zakładce Main kliknij przycisk Browse.
- Nawiguj do folderu z plikami żródłowymi *.hex aktualizacji dla modułu CC2650LP (rysunek 5). C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitorfirmwarecc26xxlaunchpad.
- Wybierz plik z aplikacją firmową najnowszej wersji 1.20 o nazwie CC2650LaunchPad_BLE_All_v1_20.hex.
- Teraz należy zaznaczyć wszystkie akcje: Erase, Program, Verify oraz kliknąć na znaczek „play” .
- Czekaj na wyświetlenie w oknie Status informacji o sukcesie.
Reprogramowanie z zastosowaniem oprogramowania w chmurze
Ponowne zaprogramowanie zestawu CC2650 LaunchPad programem firmowym „CC2650 LaunchPad Out of the Box Demo” jest możliwe z wykorzystaniem strony „Meet the CC2650 Launchpad” [15]. Znajduje się tam przycisk (rysunek 6) służący do zaprogramowania pamięci Flash układu scalonego CC2650 zestawu LaunchPad. Zestaw musi być dołączony do komputera PC kablem USB.
Po pierwszym kliknięciu na przycisk reprogramowania jest wyświetlana plansza z instrukcją (rysunek 7). W pierwszym kroku jest instalowana wtyczka TI Cloud Agent Bridge [30] dla przeglądarki internetowej (Firefox, Chrome, Safari lub IE). Jest to mała aplikacja która umożliwia programowanie i debugowanie układu scalonego bezpośrednio z narzędzi sieciowych Texas Instruments Cloud Tools. W drugim kroku jest pobierany plik instalacyjny ticloudagent__2__tixds110.exe aplikacji TI Cloud Agent. Najpierw należy wyłączyć program antywirusowy a potem należy uruchomić i zainstalować aplikację w domyślnej lokalizacji. Po ponownym kliknięciu na przycisk reprogramowania jest wyświetlana plansza z nową informacją (rysunek 8).
Odnośniki na planszy dotyczą strony TI Cloud Agent [30] z dodatkowymi informacjami. Należy kliknąć na FINISH. Strona zostanie ponownie załadowana. Aby rozpocząć reprogramowanie, należy ponownie kliknąć na przycisk reprogramowania. Diody komunikacyjne emulatora XDS110 zestawu CC2650 LaunchPad zaczynają błyskać i jest pokazywana plansza z rysunku 9. Po zakończeniu pracy jest wyświetlana nowa informacja (rysunek 10). Należy kliknąć OK i już można pracować z zaprogramowanym zestawem CC2650 LaunchPad.
Niestety, niezupełnie. Praktyka (06.2017) pokazuje, że zostaje wpisana jakaś bardzo stara wersja FW. Bardziej polecane jest reprogramowanie w programie SmartRF Flash Programmer 2.
Reprogramowanie przez łącze radiowe Bluetooth LE
Poprzez łącze radiowe standardu Bluetooth LE z aplikacji Simplelink Starter (lub TI SensorTag) pracującej na urządzeniu mobilnym (smartfon/iPad). Obecnie (06.2017) ze względu na niestabilną pracę tej aplikacji przydatność tego sposobu jest wątpliwa.
Programowanie w środowisku Code Composer Studio
Oprogramowanie dla procesorów serii CC2650 [27] jest zbudowane z zastosowaniem systemu operacyjnego TI-RTOS [28] oraz stosu BLE [29]. Dokładny opis budowy oprogramowania jest zamieszczony w dokumencie CC2640/CC2650 Bluetooth low energy Software Developer’s Guide (SWRU393D) [21]. Strona TI Wiki CC2650 LaunchPad User’s Guide for Bluetooth Smart [12] zawiera opis programowania użycia przycisków, diod LED, portów UART i SPI.
Zestaw CC2650 LaunchPad jest dostarczany z fabrycznie zaprogramowanym programem „CC2650 LaunchPad Out of the Box Demo”. Nie jest dostępny projekt tej aplikacji. Można tylko zaprogramować jej obraz [15]. Za to jest dostępny projekt bardzo podobnej aplikacji Project Zero [16]. Również można zaprogramować jej obraz [16]. W portalu TI jest wiele linków do strony Resource Explorer [14], które obiecują dostęp do projektu. Ale praktyka wykazuje brak występowania tego projektu w portalu TI. Jest on jednak dostępny, ale w portalu SimpleLink Academy [18]. W ramach warsztatu Bluetooth Low Energy Fundamentals jest dostęp do lokalnej kopii pełnych źródeł projektu.
Praca z projektem aplikacji Project Zero wymaga zainstalowania na komputerze kilku komponentów programowych:
- Najpierw należy zainstalować środowisko Code Composer Studio. Darmową aktualną wersję pełną CCS można pobrać ze strony www.ti.com. Obecnie (06.2017) jest dostępna wersja CCS_7_2_00013. Jest ona zrealizowana przy zastosowaniu nowej wersji środowiska Eclipse. Dla tego pracuje znacząco różnie od wersji CCS 7.0. Podczas instalowania należy na liście produktów do zainstalowania zaznaczyć SimpleLink CC13xx and CC26cc Wireless MCUs.
- Po zainstalowaniu środowiska CCS można przystąpić do zainstalowania pakietu Bluetooth low energy software stack (obecnie wersja BLE-STACK V2.2.1) [29]. Na komputerze PC zostaną zainstalowane dwa komponenty:
- Pakiet BLE SDK, w ścieżce C:tisimplelinkble_sdk_2_02_01_18.
- Pakiet TI-RTOS for SimpleLink, w ścieżce C:titirtos_cc13xx_cc26xx_2_20_01_08.
Teraz trzeba zainstalować pakiet SimpleLink Academy (aktualnie wersja 1.11) [18]. Zostanie on zainstalowany na komputerze PC w folderze C:tisimplelink_academy_01_11_00_0000. Znajdują się tam kopie stron internetowych oraz wszystkie źródła. Projekt aplikacji Project Zero znajduje się w ścieżce C:tisimplelink_academy_01_11_00_0000modulesprojectsble_projectzero. W tym folderze znajduje się również plik information.html z opisem tego projektu. Do poprawnego zbudowania projektu potrzebne są oba komponenty programowe w/w wersjach.
W środowisku CCS v7.x należy z menu wybrać View Resource Explorer Classic. Po rozwinięciu drzewa pakietu SimpleLink Academy można projekt Project Zero załadować (rysunek 11). Należy koniecznie poczekać (cierpliwie), aż zakończy pracę C/C++ Indexer (widoczne na pasku stanu na dole okna). Następnie należy zbudować oba projekty widoczne w oknie Project Explorer. Najlepiej użyć polecenia Project Clean. Należy poczekać aż przestana być wyświetlane informacje na pasku stanu.
Zaprogramowanie (polecenie Build) zestawu CC2650 LaunchPad należy rozpocząć od projektu project_zero_stack_cc2650. W perspektywie CCS Debug zakończ (terminate) sesję debugową projektu project_zero_stack_cc2650. Użyj czerwonej, kwadratowej ikonki .
Czekaj aż w oknie aplikacji zostanie przełączony widok na okno perspektywy CCS Edit. Dopiero teraz można zaprogramować drugi projekt project_zero_app_cc2650launchxl.
Pierwsze dołączenie nowego zestawu CC2650 LaunchPad do środowiska CCS powoduje typowo wyświetlenie informacji o konieczności aktualizacji oprogramowania firmowego emulatora sprzętowego XDS110 zestawu. Należy kliknąć na odpowiedni przycisk i koniecznie to wykonać (opis w poprzednim odcinku serii [7]).
Dołącz zestaw CC2650 LaunchPad kablem USB do komputera. Zostaną zainstalowane sterowniki. Na komputerze zostanie udostępniony port wirtualny UART XDS110 Class Application/User UART (COMxx).
Uruchom terminal ASCII (np. PuTTy). Skonfiguruj go na Serial, port COMxx (User UART) z ustawieniami 115200 kbps, 8 data bits, 1 stop bit, no parity.
Naciśnij przycisk Reset na płytce zestawu CC2650 LaunchPad. W terminalu wyświetlana jest informacja o pracy (rysunek 12). Aplikacja inicjalizuje trzy serwisy obsługi diod LED, przycisków i danych. Na koniec startuje GAP, podaje adres sieciowy oraz startuje rozgłaszanie.
Weryfikacja pracy w programie BLE Device Monitor
BLE Device Monitor [26] jest aplikacją dla systemu Windows do obsługi transmisji w formacie BLE. Aplikacja wymaga dołączenia do komputera zestawu CC2650LP lub CC2650STK [1] z pracująca aplikacją BLE HostTest Project [7]. Monitor umożliwia wgląd w parametry komunikacji oraz w przesyłane dane. BLE Device Monitor pracuje jako węzeł Central sieci BLE. Umożliwia on skanowanie układów BLE w pobliżu z odczytaniem podstawowych informacji jak nazwa i MAC adres. Następnie można wykonać dołączenie do wykrytego modułu CC2650 LaunchPad. Odczytywane są wszystkie dostępne dane i udostępniane sterowania.
Na zakładce CC2650 LaunchPad udostępniany jest interfejs graficzny (rysunek 13). Zawiera on tylko możliwość zapalenia diody LED czerwonej i zielonej oraz wykonanie operacji Reset układu i kasowania zewnętrznej pamięci Flash. Ta ostatnia operacja wymaga zasilania bateryjnego. Na zakładce Services jest pełny dostęp do zasobów oferowanych przez profil łącza BLE (rysunek 14). Bardziej dokładny opis pracy z zakładką Services został zamieszczony w odcinku 7 kursu [7].
Aplikacja BLE Device Monitor v.2.5.0 [26] w obecnej (06.2017) wersji pracuje bardzo ładnie, ale czasami nie potrafi dołączyć się do modułu sprzętowego z pracująca aplikacją BLE HostTest Project. Zdarza się też jej awaria na poziomie systemu Windows. Jednak była ona ostatnio kilkakrotnie aktualizowana, co daje nadzieję na poprawną pracę przyszłych wersji.
Henryk A. Kowalski
kowalski@ii.pw.edu.pl
Literatura
- Systemy dla Internetu Rzeczy (1): Zestaw CC2650 SensorTag, Elektronika Praktyczna, 12/2016
- Systemy dla Internetu Rzeczy (2): Użytkowanie zestawu CC2650 SensorTag, Elektronika Praktyczna 1/2017
- Systemy dla Internetu Rzeczy (3): Moduły rozszerzeń DevPack dla zestawu SensorTag, Elektronika Praktyczna 2/2017
- Systemy dla Internetu Rzeczy (4): Zestaw CC1310 LaunchPad, Elektronika Praktyczna 3/2017
- Systemy dla Internetu Rzeczy (5): System operacyjny czasu rzeczywistego TI-RTOS – pierwszy program, Elektronika Praktyczna 4/2017
- Systemy dla Internetu Rzeczy (6): System operacyjny czasu rzeczywistego TI-RTOS – zadania i przerwania, Elektronika Praktyczna 5/2017
- Systemy dla Internetu Rzeczy (7): Bluetooth Low Energy, Elektronika Praktyczna 6/2017
- CC2650 SimpleLink multi-standard 2.4 GHz ultra-low power wireless MCU, https://goo.gl/XFlbL6
- SimpleLink™ CC2650 Wireless MCU LaunchPad Kit LAUNCHXL-CC2650, Product Page https://goo.gl/Z2ozZA
- CC2650 LaunchPad Development Kit Quick Start Guide, SWRU451.PDF, 07 Jan 2016, https://goo.gl/2hN58M
- LAUNCHXL-CC2650 (CC2650 LaunchPad), SWRR147A.ZIP, 23 Jun 2016, https://goo.gl/dNED1l
- CC2650 LaunchPad User’s Guide for Bluetooth Smart, 5 May 2017, https://goo.gl/DEm0Sp
- CC2640/CC2650 Getting Started and FAQ, 2017 May 10, https://goo.gl/paJrcG
- TI Resource Explorer, https://goo.gl/YNLCzh
- Meet the LAUNCHXL-CC2650 LaunchPad (CC2650 LaunchPad HW User Guide), https://goo.gl/YRYRzN
- Project Zero for the CC2650 LaunchPad, https://goo.gl/NSsBZR
- CC2650 Wireless MCU LaunchPad Kit, Nov 15, 2016, https://goo.gl/tnBKsn
- SimpleLink Academy, v1.11, November 4th 2016, https://goo.gl/x2V3De
- BoosterPack Module Pinout Standard, https://goo.gl/O4LVy9
- SimpleLink Academy: Develop your Bluetooth low energy project, with Aslak Normann, Video training, 12:50, 28 Jun 2016, https://goo.gl/ODKG9Y
- CC2640/CC2650 Bluetooth low energy Software Developer’s Guide (SWRU393D) 15 October 2016, https://goo.gl/8VrW4L
- SmartRF Flash Programmer v2 v1.7.4 06-JUL-2016, https://goo.gl/sHNU8d
- Sub-1 GHz and 2.4 GHz Antenna Kit for LaunchPad and SensorTag CC-ANTENNA-DK2, https://goo.gl/rVxSs4
- TI SimpleLink™ Starter By Texas Instruments (Version: 4.92, Sep 26, 2016), https://goo.gl/33DGis
- Google Play, Simplelink SensorTag, Texas Instruments Inc. (Version: 3.8, 4 listopada 2016), https://goo.gl/wdWVsO
- BLE Device Monitor User Guide (TI WIKI), 7 April 2017, https://goo.gl/m386ff
- Bluetooth low energy (BLE) Wiki, 8 May 2017, https://goo.gl/1jSauQ
- CC26xx Family SW Quickstart Guide, 19 April 2016, https://goo.gl/v6KT7l
- Bluetooth low energy software stack, BLE-STACK V2.2.1 (Supports Bluetooth 4.2 for CC2640/CC2650/CC1350), v2.2.1, 28-OCT-2016, https://goo.gl/kfj59t
- TI Cloud Agent, 23 February 2017, https://goo.gl/dPcril