wersja mobilna | kontakt z nami

Systemy dla Internetu Rzeczy (12). Oprogramowanie narzędziowe dla układów CC26xx i CC13xx platformy SimpleLink

Numer: Grudzień/2017

Wielordzeniowe procesory typu SOC (System on Chip) rodziny CC26xx oraz CC13xx firmy Texas Instruments są przeznaczone dla komunikacji bezprzewodowej. Mają one zupełnie nowe możliwości w porównaniu z układami scalonymi modułów radiowych. Od połowy roku 2017 producent zintegrował oferowany sprzęt i oprogramowanie w postaci pojedynczej platformy SimpleLink MCU Platform. Platforma integruje układy scalone, moduły uruchomieniowe, środowisko programowe Code Composer Studio (CCS), pakiety programowe Software Development Kit (SDK), pakiety przykładowych projektów programowych (witryna TIREX), oraz warsztaty praktyczne (SimpleLink Academy). Całość jest optymalizowana pod kątem tworzenia projektów dla Internetu Rzeczy.

Pobierz PDF

Wszystkie układy scalone platformy SimpleLink mają tą samą architekturę SOC z zastosowaniem rdzenia ARM Cortex M-3, rdzenia ARM Cortex M-0 do obsługi modułu radiowego oraz rdzenia Sensor Controller do obsługi modułów peryferyjnych [1]. Umożliwia to na uzyskanie w ramach platformy pełnej (100%) zgodności (przenoszalności) kodu pomiędzy różnymi procesorami. Zapewnione jest to poprzez zastosowanie zestandaryzowanego API, zintegrowanego systemu operacyjnego czasu rzeczywistego TI-RTOS oraz bibliotek stosów komunikacyjnych.

Łatwość przenoszenia aplikacji pomiędzy procesorami jest olbrzymią zaletą. Jednak może też powodować kłopoty. Pierwszy układ CC2650 (obsługujący wiele protokołów komunikacyjnych) był ukierunkowany głównie na protokół Bluetooth Low Energy (BLE v.4.2). Pracował tak, jak układ CC2640, który obsługuje tylko BLE. Były udostępnione bardzo rozbudowane biblioteki, pakiety przykładowych projektów programowych oraz warsztaty pracujące na obu układach.

Jednak od prawie roku preferowanym układem jest CC2640R2 pracujący zgodnie z protokołem Bluetooth 4.2 oraz Bluetooth 5. A dotychczasowe zasoby programowe nie są już rozwijane. Co więcej, narzędzia programowe rozwijają się w ramach platformy SimpleLink w takim kierunku, że nie bardzo widać jak je zastosować dla układu CC2650. Obecnie układ CC2650 nie jest już zaliczany do platformy SimpleLink [1].

Ostatnio pojawiły się informacje o układach scalonych nowej generacji CC26x2R1 oraz CC13x2R1 [2]. Może to oznaczać, że czeka nas kolejna przymusowa przesiadka (i zakup nowych modułów sprzętowych).

Niestety, podobna sytuacja jest z oprogramowaniem narzędziowym. Biblioteki stosów komunikacyjnych zostały zintegrowane z pozostałym oprogramowaniem narzędziowym do postaci pakietów Software Development Kit (SDK) [20]. W zasadzie jest to bardzo przydatne, bo nareszcie są zgodne wersje zastosowanego w nich oprogramowania narzędziowego. Ale kolejne wersje pakietów SDK są typowo ze sobą niezbyt zgodne. Co pociąga za sobą konieczność zapoznawania się od nowa z oprogramowaniem (i to nawet co kwartał). Jest co prawda próba ujednolicenia dostępu do oprogramowania (i jego wersji) w postaci witryny TIREX [17]. Ale i tu występują też kłopoty, np. z dostępem on-line lub z brakiem obsługi danego typu układów.

Układy scalone platformy SimpleLink

Obecnie w ramach platformy SimpleLink wymienianych jest kilka układów scalonych dla transmisji bezprzewodowej:

  • CC2640R2F – SimpleLink Bluetooth low energy Wireless MCU Bluetooth low energy [3],
  • CC1310 – SimpleLink Sub-1 GHz Ultra-Low Power Wireless Microcontroller [5, S4],
  • CC1350 – SimpleLink Ultra-Low Power Dual Band Wireless Microcontroller, Multi-standard: Sub-1 GHz, Bluetooth low energy [6, S9].

Dostępne układy tworzą dwie serie CC26x0 oraz CC13x0. Pierwsze informacje o układach scalonych nowej generacji ujawniają, że dla serii CC26x2R1 mają to być układy scalone CC2642R1 (BLE 5) i CC2652R1 (BLE 5 oraz IEEE 802.15.4 – Thread/ZigBee) [2]. Pojawił się już zestaw startowy SimpleLink CC26x2 wireless MCU LaunchPad Development Kit [xx] z układem CC2652R1 [8]. Dla serii CC13x2 wymieniane są układy CC1312, CC1352 oraz CC1352P. Nowe układy mają więcej pamięci i rozbudowany rdzeń Sensor Controller. To akurat dobra wiadomość bo obecnie głównym problemem aplikacyjnym jest zbyt mały rozmiar pamięci, szczególnie Flash.

Do platformy SimpleLink zaliczane są też układy CC3220 i CC3120 obsługujące transmisję w standardzie WiFi [1]. Również zaliczany jest do niej układ MSP432P401R z procesorem ARM Cortex-M4F. Lecz to już jest poza zakresem tego opisu.

Układ scalony CC2650

Pomimo, że układ scalony CC2650 nie jest obecnie zaliczany do platformy SimpleLink to był jednak pierwszy, jest bardzo popularny i warto się mu trochę przyjrzeć [4]. Ten wielostandardowy układ scalony CC2650 obsługuje komunikację w paśmie 2,4 GHz w standardzie Bluetooth Low Energy v4.2, 6LoWPAN, ZigBee oraz ZigBee RF4CE [S9]. 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. Układ CC2650 wyróżnia się bardzo niskim 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ądy dla uśpienia układu są bardzo niskie: stan Standby 1 mA (pracuje RTC Running i podtrzymanie zawartości RAM/CPU), stan Shutdown 100 nA (wybudzanie zdarzeniem zewnętrznym).

rys1Układ scalony CC1310

Układ scalony CC1310 obsługuje komunikację w pasmie poniżej 1 GHz (Sub-1GHz) w standardzie IEEE 802.15.4 [5]. Układ CC1310 jest układem typu SOC o architekturze takiej samej jak układ CC2650 [S1]. Układ udostępnia 4 moduły timerów, 8 kanałowy przetwornik AC 12 bit/200 ks, komparatory, UART, SPI, I2C, I2S, RTC, czujnik temperatury, generator liczb losowych oraz moduł szyfrowania AES-128 [S4]. Sekcja radiowa cechuje się dużą czułością -124 dBm (-110 dBm przy 50 kbps), selektywnością 56 dB (±100 kHz), programowaną mocą wyjściową do +15 dBm. Pozwala też na bezpośrednie dołączenie wzmacniacza mocy CC1190.

Układ zawiera wewnętrzny przetwornik DC-DC. Przy zasilaniu 3 V pobiera: MCU 51 A/MHz, RX 5.4 mA, TX 13.4 mA (+10 dBm). Prądy dla uśpienia układu są bardzo niskie: stan Standby 0.7 mA (pracuje RTC i podtrzymanie zawartości RAM/CPU), stan Shutdown 185 nA (wybudzanie zdarzeniem zewnętrznym).

Są dwie wersje wykonania silikonu. Układ CC1310 rev B posiada wiele istotnych ulepszeń. Na przykład układ obsługuje poszerzone pasmo częstotliwości obejmujące zakres 430-510 MHz (dotychczas tylko 863-930 MHz).

Układ scalony CC1350

Dwuzakresowy układ scalony CC1350 obsługuje komunikację w paśmie 2,4 GHz w standardzie Bluetooth 4.2 oraz w pasmie poniżej 1 GHz (Sub-1GHz) w standardzie IEEE 802.15.4 [6]. Układ CC1350 jest typu SOC o architekturze takiej samej jak układ CC2650 [S1]. Stabilną pracę układu zapewniają dwa rezonatory kwarcowe: 24 MHz oraz 32.768 kHz [S9]. Przy zasilaniu 3 V pobiera: MCU 51 mA/MHz, RX 5.4/6.4 mA (Sub-1GHz/BLE 2,4 GHz), TX 20.5 mA – 0 dBm (BLE 2,4 GHz). Prądy dla uśpienia układu są bardzo niskie: stan Standby 0.7 mA (pracuje RTC i podtrzymanie zawartości RAM/CPU), stan Shutdown 185 nA (wybudzanie zdarzeniem zewnętrznym).

rys2Układ scalony CC2640R2F

Układ scalony CC2640R2F jest nowszą wersją układu CC2640 [4]. Obsługuje komunikację w paśmie 2,4 GHz w standardzie Bluetooth Low Energy v4.2 oraz 5. Układ CC2640R2F jest typu SOC o architekturze takiej samej jak układ CC2650. Układ scalony CC2640R2F jest kompatybilny nóżka w nóżkę z układem CC2640. Wiekszość kodu obsługi stosu BLE 4.2 i BLE 5 oraz systemu TI-RTOS została umieszczona w pamięci ROM, co zwolniło dużą część pamięci Flash na program użytkownika.

Moduły sprzętowe

Dla układów scalonych rodziny CC26xx oraz CC13xx firma Texas Instruments udostępnia dwa rodzaje modułów uruchomieniowych:

  • Zestaw startowy LaunchPad – zawiera tylko układ scalony i emulator XDS110.
  • Zestaw SensorTag – zawiera układ scalony i wiele czujników.

Podstawowym modułem są zestawy startowe standardu LaunchPad. Wszystkie moduły LaunchPad mają taką samą organizację i zestandaryzowane wyprowadzenie sygnałów na złącza [S4]. Zwory na płytce umożliwiają łatwą modyfikację jej zastosowania. Jest pełny dostęp do wszystkich sygnałów. Złącze rozszerzeń umożliwia łatwe dołączanie kolejnych modułów sprzętowych [S3]. Każdy zestaw startowy standardu LaunchPad zawiera układ emulatora sprzętowego typu XDS110. Do zestawu może być dołączony wyświetlacz LCD oraz inne moduły rozszerzeń.

rys3Zestawy SensorTag zawierają wiele czujników MEMS: bezdotykowego pomiaru temperatury, ciśnienia atmosferycznego, oświetlenia otoczenia i podczerwieni, wilgotności oraz dziewięcio-osiowy czujnik ruchu (akcelerometr, żyroskop, kompas) [S1]. Przy transmisji danych pomiarowych ze wszystkich czujników co 1 sekundę czas pracy zestawu z jednej baterii CR2032 wynosi ponad jeden rok. Zestaw posiada gniazdko dla dołączenia debugera standardu JTAG. Aby umożliwić programowanie i debugowanie kodu należy do zestawu CC2650 SensorTag dołączyć moduł Debugger DevPack [S3].

Zestaw startowy CC2650 LaunchPad zawiera tylko minimum elementów dodatkowych: wyprowadzenia układu scalonego CC26510, przyciski, diody LED, zasilanie oraz emulator sprzętowy XDS110 [9]. Zawiera antenę PCB zoptymalizowaną do pracy w paśmie 2,4 GHz ISM [S8].

Zestaw startowy CC1310 LaunchPad jest w pełni zgodny sprzętowo i programowo z zestawem startowym CC2650 LaunchPad [11]. Zawiera antenę PCB zoptymalizowaną do pracy w paśmie 868 MHz ISM (Europa) oraz 915 MHz ISM (USA) [S9].

Zestaw startowy CC1350 LaunchPad jest w pełni zgodny sprzętowo i programowo z zestawem startowym CC2650 LaunchPad [13]. Zawiera jednak dwie anteny PCB [S10]. Jedna jest zoptymalizowana do pracy w paśmie 2,4 GHz ISM. Druga jest zoptymalizowana w zależności od wersji wykonania.

Zestaw CC1350 LaunchPad jest dostępny w trzech wersjach wykonania [S9]:

  1. LAUNCHXL-CC1350US: Przystosowany do pracy w paśmie 915 MHz ISM (USA).
  2. LAUNCHXL-CC1350EU: Przystosowany do pracy w paśmie 868 MHz ISM (Europa).
  3. LAUNCHXL-CC1350-4: Przystosowany do pracy w paśmie 433 MHz ISM (USA/Europa/Chiny). W portalu TI spotykane jest też jest nazwa LAUNCHXL-CC1350CN.

Zestaw startowy CC2640R2F LaunchPad jest w pełni zgodny sprzętowo i programowo z zestawem startowym CC2650 LaunchPad [7]. Zawiera antenę PCB zoptymalizowaną do pracy w paśmie 2,4 GHz ISM.

rys5Zestaw CC2650 SensorTag jest kompletnym modułem komunikacji bezprzewodowej w pasmie 2,4 GHz ISM pozwalającym na tworzenie bezprzewodowych sieci czujników dla Internetu Rzeczy [10]. Zainstalowane oprogramowanie z użyciem komunikacji BLE 4.2 pozwala na połączenie z aplikacjami działającymi na smartfonach lub tabletach z systemem operacyjnym Android lub iOS [S2]. Dołączenie do chmury obliczeniowej zajmuje mniej niż 3 minuty [S1]. Cała elektronika zestawu CC2650 SensorTag jest umieszczona na jednej wielowarstwowej płytce drukowanej [11]. Płytka jest umieszczona w dwuczęściowej obudowie plastikowej z wieloma otworami. Na górnej powierzchni płytki umieszczona jest dioda LED czerwona i zielona, dwa przyciski, wykonana powierzchniowo antena 2.5 GHz oraz gniazdko mSMA pozwalające na dołączenie przewodu anteny zewnętrznej [S1]. Dla dolnej powierzchni płytki najwięcej miejsca zajmuje uchwyt na standardową baterię CR2032. Zamontowane jest też gniazdko dla dołączenia debugera standardu JTAG. Drugie zamontowane tam gniazdko służy do dołączania modułów rozszerzeń DevPack.

Zestaw CC1350 SensorTag (Simplelink CC1350 SensorTag Bluetooth and Sub-1GHz Long Range Wireless Development Kit CC1350STK) – obsługuje komunikację bezprzewodową Bluetooth Low Energy w paśmie ISM 2,4 GHz oraz komunikację dużego zasięgu w pasmach ISM poniżej 1 GHz (868/915 MHz) [14]. Na górze płytki drukowanej zestawu CC1350 SensorTag umieszczone są dwie anteny wykonane powierzchniowo oraz dwa gniazdka pozwalające na dołączenie przewodu anten zewnętrznych.

Zestaw C1350 SensorTag jest dostępny w dwóch wersjach [S10]:

  1. CC1350STKUS: zoptymalizowany do pracy w pasmie 915 MHz.
  2. CC1350STKEU: zoptymalizowany do pracy w pasmie 868 MHz.

Witryna TI Resource Explorer (TIREX)

TI Resource Explorer (TIREX) jest narzędziem internetowym (z wykorzystaniem chmury obliczeniowej) grupującym i udostępniającym oprogramowanie dla układów scalonych firmy Texas Instruments (rysunek 1) [17]. W zasadzie jest to podstawowe źródło instalowania pakietów programowych dla układów platformy Simplelink. Umożliwia też łatwy sposób pobierania przykładowych projektów programowych [S11]. W witrynie TI Resource Explorer są obecnie zgromadzone (prawie wszystkie) informacje i źródła dotyczące procesorów komunikacyjnych rodziny CC13x0 [17].

Okno Resource Explorer w programie CCSv7.3 realizuje bezpośredni dostęp do witryny TI Resource Explorer. Daje to nieco większe możliwości.

Udostępniane zasoby są zorganizowane w postaci drzewa pokazywanego w lewym panelu okna witryny. W ścieżce Development Tools ’ Kits and Boards są udostępniane materiały dla zestawów sprzętowych. Po kliknięciu na nazwę zastawu wyświetlany jest w prawym oknie opisu zestawu. Często jest to jedyny dostępny opis budowy zestawu oraz jego uruchomiania. Na stronie udostępniona jest aktualizacja oprogramowania firmowego zestawu z zastosowaniem oprogramowania w chmurze obliczeniowej (TI Cloud Agent).

W witrynie TI Resource Explorer obsługiwanych jest wielu zestawów, każdy na osobnej stronie [17]:

  • Meet the CC2640R2 LaunchPad.
  • Meet the CC2650 Launchpad.
  • Meet the CC1310 LaunchPad.
  • Meet the CC1350 Launchpad.
  • Meet the CC1350 SensorTag.

rys8Dodatkowym źródłem cennych informacji jest strona CC2640R2F/CC2640/CC2650 Getting Started and FAQ [25] oraz strona CC2650 SensorTag User’s Guide [24]. Dla zestawów SensorTag bardzo istotne informacje są zamieszczone na stronie IoT made easy, szczególnie na zakładkach The SensorTag Story oraz Getting Started [26].

Witryna TI Resource Explorer daje pełny (prawie) i uporządkowany (prawie) dostęp do zasobów programowych w aktualnych wersjach (domyślnie) [17]. Jest także umożliwiony dostępu do ich poprzednich wersji. W menu strony należy kliknąć na ikonkę  Package Picker. Zostaje rozwinięta lista pakietów programowych (rysunek 2). Typowo wybrana jest ostatnia wersja (Latest). Po wybraniu archiwalnej wersji i kliknięciu na przycisk OK pokazywana jest wybrana wersja. Jej ikonka jest specjalnie zaznaczona.

Oprogramowanie narzędziowe

Do pracy z procesorami serii CC13x0/CC26x0 dostępnych jest wiele aplikacji (omówionych dalej):

  • Code Composer Studio v:7.3.0 [16].
  • SimpleLink CC13x0 SDK v: 1.50.00.08 [20].
  • SimpleLink Academy 1.14.02.04 [22].
  • SmartRF FLASH-PROGRAMMER-2 v:1.7.5 [27].
  • BLE Device Monitor v:2.7.0 [28].
  • TIREX [17].
  • Pakiety SDK dla CC26x2 [18] oraz CC2640R2 [19].

Na portalu TI są też udostępniane inne przydatne aplikacje (których tutaj już nie uda się omówić):

  • UNIFLASH v: v4.2.1.
  • SmartRF Protocol Packet Sniffer v:1.2.0.
  • SmartRF Studio v:2.7.0.
  • Sensor Controller Studio v:1.4.1.
  • TI Cloud Agent.
  • SimpleLink Academy v1.11.
  • Bluetooth Low Energy Software Stack v:2.2.1.
  • TI-RTOS (for CC2650 v:2.21.00.0666).

Code Composer Studio v7

Do pracy z procesorami serii CC13xx/CC26xx najpierw należy zainstalować środowisko Code Composer Studio. Obecnie jest dostępna wersja CCS7.3.0.00019. Jest ona zrealizowana przy zastosowaniu nowej wersji środowiska Eclipse.

Plik instalacyjny (Off-line Installer) darmowej aktualnej wersji pełnej CCS najlepiej pobrać ze strony Code Composer Studio Version 7 Downloads [16]. Wymagane jest logowanie do portalu myTI
(https://my.ti.com) oraz uzyskanie U.S. Government export approval.

Plik pobrany: CCS7.3.0.00019_win32.zip (ok 900 MB).

Plik instalacyjny: ccs_setup_7.3.0.00019.exe (w folderze CCS7.3.0.00019_win32).

Plik wykonawczy: C:ticcsv7eclipseccstudio.exe .

W trakcie instalowania oprócz foldera c:/ti/ccsv7 są tworzone foldery C:/ti/xdctools_3_32_02_25_core oraz C:/ti/xdctools_3_50_03_33_core z zainstalowanymi środowiskami debugowymi. Tworzony jest też folder C:/users/user_name/CCSExternalRefereces w którym są umieszczone pliki z informacją o dostępnych zewnętrznych zasobach.

Instalowanie CCS

  • Wyłącz program antywirusowy.
  • W okienku Procesor Support zaznacz SimpleLink CC13xx and C26xx Wirelwss MCUs (rysunek 3).
  • W okienku Select Debug Probes zaznacz TI XDS Debug ProbeSupport (rysunek 4).
  • Na zakończenie instalowania CCS zaznacz tworzenie skrótów i odznacz uruchamianie CCS.
  • Po zakończeniu instalowania CCS:
  • Uruchom program antywirusowy.
  • Uruchom CCS.
  • W oknie Workspace Launcher pozostaw ścieżkę do folderu roboczego, lub wpisz nową np. <C:home_dirwork_ART12>. Kliknij OK.
  • Obserwuj informacje na pasku w prawym dolnym rogu. Dotyczą one ładowania modułów środowiska Eclips oraz sprawdzania dostępności aktualizacji. Najlepiej zaczekać na zakończenie tych prac.
  • Odczekaj aż CCS zakończy sprawdzanie aktualizacji.
  • Jeśli CCS wyświetli okienko Updates Avilable, informujące o dostępności aktualizacji, dwukliknij na okienko i zainstaluj aktualizacje. Akceptuj proponowane zmiany i restart CCS.

Aktualizacje można wykonać „ręcznie”:

  • Wybierz : Help ’ Check for Updates i zastosuj wszystkie dostępne aktualizacje.

rys12Zakończenie wszystkich dostępnych aktualizacji może wymagać wielokrotnego ponowienia uruchamiania CCS. Może też wymagać wyłączenia programu antywirusowego na czas doinstalowania aktualizacji. Instalowanie pakietów programowych jest realizowane wewnątrz środowiska CCS w oknie Resource Explorer przy zastosowaniu dostępu do witryny TI Resource Explorer. Jest to opisane dalej.

Instalowanie programu SmartRF Flash Programmer 2

Do programowania układów rodziny CC13xx/26xx służy program SmartRF Flash Programmer 2 wersja 1.7.5 [27].

Plik instalacyjny należy pobrać ze strony SmartRF Flash Programmer [27].

Plik pobrany: flash-programmer-2-1.7.5.zip.

Plik instalacyjny: Setup_SmartRF_Flash_Programmer_2.exe.

Plik wykonawczy: C:Program Files (x86)Texas InstrumentsSmartRF ToolsFlash Programmer 2bingui_flash_programmer.exe.

W programie SmartRF Flash Programmer 2 istnieje możliwość aktualizacji oprogramowania firmowego emulatora sprzętowego XDS110.

Programowanie wewnętrznej pamięci Flash procesora

Program SmartRF Flash Programmer 2 jest przeznaczony do programowania wewnętrznej pamięci Flash układów System on Chips (SoC) z rdzeniem ARM. Obsługuje on pliki w formatach: binarny (.bin), Intel HEX (.hex) oraz ELF (.out/.elf). Typowo, udostępniane pliki oprogramowania firmowego są formatu */hex.

Postępowanie instalacyjne:

  • Na zakładce Main kliknij przycisk Browse.
  • Nawiguj do foldera z plikami źródłowymi *.hex aktualizacji dla odpowiedniego zestawu sprzętowego:
  • Dla zestawu startowego CC1350 LaunchPad (rys. 5) jest to folder C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitorfirmwarecc26xxlaunchpad
  • Wybierz plik z aplikacją firmową najnowszej wersji (v1.20) o nazwie CC1350LaunchPad_BLE_All_v1_20.hex
  • Teraz należy zaznaczyć wszystkie akcje: Erase, Program, Verify.
  • Kliknij na znaczek ">".
  • Czekaj na wyświetlenie w oknie Status informacji o sukcesie.

rys13Reprogramowanie z zastosowaniem oprogramowania w chmurze

Ponowne zaprogramowanie zestawu sprzętowego programem firmowym jest możliwe z wykorzystaniem strony zasobów zestawu „Meet the xxx” witryny TI Resource Explorer [17]. Znajduje się tam przycisk służący do zaprogramowania pamięci Flash układu scalonego zestawu. W pierwszym kroku jest instalowana wtyczka TI Cloud Agent Bridge 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. I już można pracować z zaprogramowanym zestawem sprzętowym. Czasami tak, a często niestety – niezupełnie. Praktyka pokazuje, że np. może zostać wpisana jakaś bardzo stara wersja FW. Bardziej polecane jest reprogramowanie w programie SmartRF Flash Programmer 2.

System TI-RTOS

TI-RTOS (dawna nazwa DSP/BIOS) jest system operacyjnym czasu rzeczywistego ze skalowalnym jądrem (poprzednia nazwa SYS/BIOS) [S5, S6]. System zawiera wiele dołączonych elementów w tym: stosy protokołów komunikacyjnych, obsługa komunikacji międzyrdzeniowej, sterownik urządzeń peryferyjnych i zarządzanie zasilaniem. System jest dostarczany z pełnymi źródłami i nie wymaga licencji.

System TI-RTOS można używać z różnymi środowiskami programowymi. Dostarczany jest w wersjach dla różnych układów scalonych produkcji TI. System nie jest instalowany razem ze środowiskiem CCS. Należy go pobrać i zainstalować oddzielnie.

Dla procesorów serii CC26xx jest dedykowana wersja TI-RTOS 2.20 for CC13xx/CC26xx. Pakiet programowy CC26xxWare został zintegrowany z tą wersją systemu. Gdy jednocześnie jest stosowany stos Bluetooth LE to należy pobrać i zainstalować pakiet SDK [21]. Zawiera on zarówno stos BLE jak i odpowiednią wersję systemu TI-RTOS.

Instalowanie programu BLE Device Monitor

Do weryfikacji pracy z obsługą komunikacji BLE konieczne jest zainstalowanie programu BLE Device Monitor [28].

Obecnie poprawną i (w miarę) stabilną pracę zapewnia wersja v2.7.0.

Plik instalacyjny (Off-line Installer) najlepiej pobrać ze strony BLE_Device_Monitor_User_Guide [28]. Wymagane jest logowanie do portalu myTI (https://my.ti.com) oraz uzyskanie U.S. Government export approval.

Plik pobrany: swrc258o.zip.

Plik instalacyjny: Setup_BLE_Device_Monitor_2_7_0.exe.

Plik wykonawczy: C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitorbinble_devmon.exe.

rys14Razem z aplikacją jest instalowany w ścieżce instalacyjnej folder: C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitorfirmware. Znajdują się w nim pliki źródłowe obrazów aplikacji firmowych (FirmWare – FW) 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. W trakcie instalowania jest tworzony folder z drajwerami oprogramowania firmowego(np. dla XDS110): C:Program Files (x86)Texas InstrumentsSmartRF ToolsDrivers.

Weryfikacja pracy komunikacji BLE w programie BLE Device Monitor

BLE Device Monitor [28] jest aplikacją dla systemu Windows do obsługi transmisji w formacie BLE [S7]. Aplikacja wymaga dołączenia do komputera zestawu CC2650 LaunchPad [S8], CC2640R2 LaunchPad, CC1350 LaunchPad [S9] lub CC2650 SensorTag [S1] z pracująca aplikacją BLE HostTest [S7]. Monitor umożliwia wgląd w parametry komunikacji oraz w przesyłane dane.

Na modułach sprzętowych, których praca jest monitorowana, powinna być zaprogramowana firmowa aplikacja fabryczna (lub jej nowsza wersja). Do poprawnej pracy aplikacji BLE Device Monitor wymagane jest oprogramowanie firmowe zestawu CC1350 SensorTag w wersji co najmniej v.1.33 ( Nov 9 2016). Dla zestawu CC1350 LaunchPad wymagane jest oprogramowanie firmowe w wersji co najmniej v.1.20, Feb 20 2017. Ze starszymi wersjami FW praca jest niemożliwa lub niestabilna.

BLE Device Monitor pracuje jak 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 zestawu sprzętowego. Odczytywane są wszystkie dostępne dane i udostępniane sterowania.

W prawym panelu okna aplikacji BLE Device Monitor pokazywana jest zakładka z nazwą zestawu sprzętowego dołączonego poprzez łącze BLE. Dla zestawu SensorTag w przystępny graficzny sposób udostępnia ona rezultaty pomiarów wartości odczytów czujników zestawu. Po kliknięciu na przycisk Run dane są cyklicznie odczytywane z zestawu SensorTag i pokazywane w polach tabelek. Możliwe jest też zapalenie/zgaszenie diody LED, włączenie/wyłączenie brzęczyka, wykonanie operacji Reset układu oraz 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. Pełna tablica atrybutów (z opisami) dla zestawu CC2650 SensorTag jest udostępniona na stronie IoT made easy [26]. Należy wybrać zakładkę TearDown, przewinąć na dół okna i rozwinąć pozycję GATT Attribute Table.

rys15Przykład prezentacji graficznej danych dla zestawu CC2650 SensorTag jest pokazany na rys.6 [S7]. Przykład prezentacji graficznej danych dla zestawu CC1350 SensorTag jest pokazany na rys. 7 [S10]. Przykład prezentacji graficznej danych dla zestawu CC1350 LaunchPad jest pokazany na rys. 8 [S9]. Umożliwia on tylko możliwość zapalenia/zgaszenia diody LED czerwonej i zielonej oraz wykonanie operacji Reset układu oraz kasowania zewnętrznej pamięci Flash.

Obsługa wejścia –wyjścia (IO)

Na zakładce Services pokazywana jest pełna informacja udostępniana przez łącze BLE. Przykład dla zestawu CC2650 SensorTag jest pokazany na rysunku 9 [S7]. Poprzez zmianę wartości atrybutów obsługi IO można np. zdalnie sterować włączeniem i wyłączeniem świecenia diody LED na zestawie sprzętowym. Serwis I/O dla zestawu CC2650 SensorTag jest pokazany na rysunku 10 [S7]. Serwis I/O dla zestawu CC1350 LaunchPad jest pokazany na rysunku 11 [S7]. Serwis I/O dla zestawu CC1350 SensorTag jest pokazany na rysunku 12 [S7].

Aplikacja BLE Device Monitor w obecnej (v2.7.0) wersji pracuje dobrze. Ale i tak na stronie ładowania przez tygodnie aktywny był odnośnik do pliku instalacyjnego poprzedniej wersji. Poprzednie wersje miały różne kłopoty, np. czasami nie potrafiły dołączyć się do zestawu sprzętowego z pracująca aplikacją BLE HostTest. Jednak aplikacja była ostatnio kilkakrotnie aktualizowana, co daje nadzieję na poprawną pracę przyszłych wersji.

Pakiet programowy SimpleLink CC13x0 SDK

Dla procesorów komunikacyjnych rodziny CC13x0 przeznaczony jest pakiet programowy SimpleLink CC13x0 SDK 1.50.00.08 (28-Sep-2017) [20]. Z pakietem SDK jest powiązany pakiet programowy SimpleLink Academy z kompletem warsztatów, lekcji i prezentacji.

Jest mały problem z nazewnictwem. Procesor CC1350 jest nazywany SimpleLink Ultra-Low Power Dual Band Wireless Microcontroller, czyli dwupasmowy. Za to w pakiecie SDK (szczególnie w poprzedniej wersji 1.40) transmisja w dwóch pasmach ISM nazywana jest Dual Mode, czyli mowa o dwóch standardach transmisji. Faktycznie stosowane są dwa standardy komunikacji: BLE oraz IEEE 802.15.4g. Podobnie jak w przypadku procesora CC2650, SimpleLink multi-standard 2,4 GHz ultra-low power wireless MCU. Jednak istotą jest obsługa dwóch różnych pasm częstotliwości, czyli raczej Dual Band. W obecnej wersji SDK mowa jest tylko o sieci WSN bez wskazania, że oprócz pasma ISM sub-1GHz obsługiwane jest też pasmo ISM 2,4 GHz. Jest też mały problem z wersją 1.50 pakietu SimpleLink CC13x0 SDK.

W pakiecie SDK są dostępne projekty WSN przeznaczone dla zestawu CC1310 Launch Pad. Obsługują one wtedy tylko główny kanał transmisji dla ISM 868 MHz, bez obsługi BLE. Dla procesorów komunikacyjnych CC2640R2przeznaczony jest osobny pakiet programowy SimpleLink CC2640R2 SDK 1.50 [12].

Pakiet SimpleLink CC13x0 SDK można pobrać i zainstalować na trzy sposoby:

  1. Instalowanie poprzez witrynę TI Resource Explorer [17].
  2. Instalowanie poprzez okno Resource Explorer w programie Code Composer Studio [16].
  3. Instalowanie poprzez pobranie pliku instalacyjnego ze strony TI [20]

Podczas instalowania pakietu SDK sprawdzana jest obecność w komputerze komponentów w odpowiednich wersjach i w przypadku ich braku wykonywane jest ich doinstalowanie.

Pobieranie i instalowanie pakietu SimpleLink CC13x0 SDK poprzez witrynę TI Resource Explorer jest wykonywane tak samo jak poprzez okno Resource Explorer w programie Code Composer Studio. Zalecane jest instalowanie pakietu w programie Code Composer Studio.

Okno Resource Explorer programu CCSv7.3

Okno Resource Explorer w programie CCSv7.3 realizuje dostęp do witryny TI Resource Explorer. Najlepiej go otwierać poprzez panel Getting Started używając przycisku Browse Examples. Uruchomienie tego okna z menu View ’ Resource Explorer często powoduje kłopoty. Typowo zgłasza on problem połączenia z portalem TI po pierwszej próbie. Czasami pomaga zamknięcie tego okna i ponownie jego uruchomienie.

Przy otwieraniu okna Resource Explorer pobierana jego aktualna zawartość z witryny TIREX [17].

Ikonki folderów w lewym panelu okna mogą być pokazywane na trzy sposoby (rysunek 13):

  • Zawartość nie jest zainstalowana lokalnie, czyli dostępna tylko w sieci.
  • Część zawartości jest zainstalowana i dostępna lokalnie.
  • Zawartość jest zainstalowana lokalnie i w pełni dostępna lokalnie.

rys17Typowo w lewym panelu okna pokazywana jest ostatnia wersja (Latest) pakietu programowego. Po kliknięciu na pasku menu okna na ikonkę Home dostępne są pola poszczególnych pakietów programowych. Po rozwinięciu listy można wybrać potrzebną wersję archiwalną pakietu (rysunek 14). Ta wersja jest wtedy pokazywana w lewym panelu. Jej ikonka jest specjalnie zaznaczona.

Po wybraniu projektu w lewym panelu, w prawym panelu jest wyświetlany pasek z ikonkami:

  • Install resources – Pobierz i zainstaluj cały pakiet programowy wybrany w lewym panelu okna.Import to IDE – Powoduje utworzenie w aktualnym folderze roboczym CCS odpowiednich folderów z kopią lokalną plików. Jednocześnie sprawdzane są wersje zależnych narzędziowych pakietów programowych zainstalowanych lokalnie. W razie potrzeby nowsze wersje są pobierane i instalowane.

 Open web resources – Otwiera aktualna zawartość prawego panela w osobnym oknie domyślnej przeglądarki. Typowo jest używany inny adres Internetowy.

Instalowanie pakietu SimpleLink CC13x0 SDK

  • W programie Code Composer Studio v7.3 otwórz okno Resource Explorer.
  • W lewym panelu okna wybierz ścieżkę Software ’ SimpleLink CC13x0 SDK.
  • W prawym panelu okna kliknij na ikonkę  Download and Install (rysunek 15).
  • Potwierdź instalowanie.

Po zakończeniu instalowania pakietu SDK potwierdź dodatkowe instalowanie pakietu programowego SimpleLink Academy (rysunek 16).

Tworzone są foldery C:tisimplelink_cc13x0_sdk_1_50_00_08 oraz C:tisimplelink_academy_cc13x0sdk_1_14_02_04 w których  jest lokalnie umieszczona cała zawartość pakietów.

Plik instalacyjny pakietu SDK

Ze strony SimpleLink Sub-1 GHz CC13x0 Software Development Kit [20] można pobrać plik instalacyjny simplelink_cc13x0_sdk_1_50_00_08.exe pakietu SDK. Postępowanie podczas lokalnego instalowania pakietu jest takie samo w przypadku dwóch poprzednich sposobów instalowania zdalnego. Co więcej, w oknie Resource Explorer w programie CCSv7.3 jego zainstalowanie jest rozpoznawane.

Oprogramowanie użytkowe

Zestawy CC1350 Launch Pad oraz CC1350 SensorTag są dostarczane z wpisanym do pamięci Flash procesora programem, który umożliwia transmisję z zastosowaniem protokołu BLE 4.2. W pakiecie programowym SimpleLink CC13x0 SDK udostępnione są projekty dla nowego oprogramowania firmowego (rysunek 17) [20].

Oprogramowanie umożliwia utworzenie bezprzewodowej sieci czujników (Wireless Sensor Network – WSN) w paśmie ISM 868 MHz (sub-1GHz) [S11]. Umożliwia też pracę zestawu z komunikacją dwupasmową (Dual Band) ISM 2,4 GHz oraz ISM 868 MHz. Sieć zawiera jeden węzeł centralny – Concentrator (WSN Concentrator) oraz wielu węzłów czujników – Node (WSN Node). Węzły Node przesyłają wyniki pomiarów do węzła Concentrator poprzez łącze w pasmie ISM 868 MHz. Dodatkowo węzły Node mogą przeprogramować swoje radio i wysyłać pakiety rozgłaszania BLE.

Warsztaty SimpleLink Academy

Bardzo ciekawą pomocą dla każdego, kto zaczyna pracować z procesorami rodziny CC13xx/CC26xx, są ćwiczenia warsztatowe SimpleLink Academy [21]. Dostępnych jest wiele ćwiczeń z dokładnym opisem. Dla wielu ćwiczeń jest udostępniony zapis wideo (rys. 18).

W pakiecie programowym SimpleLink CC13x0 SDK 1.50 [18] jest dostarczany komplet warsztatów o nazwie SimpleLink Academy for SimpleLink CC13x0 SDK 1.50 [22]. Nadal (12.2017) na stronie głównej pakietu warsztatów dla sersji SDK v.150 jest wyświetlany tytuł „SimpleLink™ Academy 1.13.03 for SimpleLink CC13x0 SDK 1.40” podający błędny numer wersji.

Do pierwszych prób z transmisją dwupasmową najbardziej przydatny jest warsztat Creating a CC13xx based ultra low power Wireless Sensor Network.

Także w pakiecie programowym SimpleLink CC2640R2 SDK 1.50 jest dostarczany komplet warsztatów o nazwie SimpleLink Academy 1.14.02 for SimpleLink CC2640R2 SDK 1.50 [21].

Dostępna jest poprzednia wersja warsztatu SimpleLink Academy (v1.11 – November 4th 2016) przeznaczona dla procesorów CC2650 oraz CC1310 i CC1350 [23]. Udostępnia ona projekty dla zestawu CC2650 LaunchPad oraz CC2650 SensorTag.

Henryk A. Kowalski

 

 

Bibliografia:

Procesory

Zestawy narzędziowe

  • SimpleLink Bluetooth low energy CC2640R2F wireless MCU LaunchPad development kit, LAUNCHXL-CC2640R2, https://goo.gl/X7QeUF
  • SimpleLink CC26x2 wireless MCU LaunchPad Development Kit, LAUNCHXL-CC26X2R1 (CC2652R1), https://goo.gl/UijwYf
  • SimpleLink CC2650 Wireless MCU LaunchPad Kit LAUNCHXL-CC2650, Product Page, https://goo.gl/TrKMbD
  • SimpleLink Bluetooth low energy/Multi-standard SensorTag CC2650STK, https://goo.gl/GNMvuU
  • SimpleLink CC1310 Sub-1 GHz wireless microcontroller (MCU) LaunchPad development kit, https://goo.gl/sr6Znd
  • Simplelink Sub-1 GHz and Bluetooth® low energy CC1350 wireless MCU LaunchPad™ Development Kit, LAUNCHXL-CC1350, Tools Page https://goo.gl/HTH2Ef
  • CC1350 Dualband Launchpad for 433MHz/2,4GHz Applications LAUNCHXL-CC1350-4, https://goo.gl/6sHMeB
  • Simplelink CC1350 SensorTag Bluetooth and Sub-1GHz Long Range Wireless Development Kit CC1350 STK, Tools Page, https://goo.gl/AcxdSp
  • SensorTag Debugger DevPack, CC-DEVPACK-DEBUG, https://goo.gl/P8NGyF

Oprogramowanie

Pakiety SDK

  • SIMPLELINK-CC26X2-SDK: SimpleLink CC26x2 SW Development Kit including Thread stack, https://goo.gl/ZxYBT8
  • SimpleLink CC2640R2 SDK - Bluetooth low energy, SIMPLELINK-CC2640R2-SDK, https://goo.gl/FWFwLt
  • SimpleLink Sub-1 GHz CC13x0 Software Development Kit, SIMPLELINK-CC13X0-SDK, Ver 1.50.00.08, 28-Sep-2017, https://goo.gl/noQ7zX
  • 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/GzDQJg

Simple Link Academy

Opisy

Aplikacje

Pozostałe artykuły

NIOS II na maXimatorze, czyli mikroprocesor w układzie FPGA (3). Przerwania, timery i obsługa wyświetlaczy

Numer: Luty/2018

Do tej pory wspólnymi siłami udało nam się wbudować w pełni funkcjonalny system mikroprocesorowy, który odbierał i generował cyfrowe sygnały (powiedzmy dumnie, że przetwarzał sygnały cyfrowe!). Kilkakrotnie wspominałem przy tej okazji, że stosowanie opóźnień jest rozwiązaniem nagannym, jednak dotychczas nie mieliśmy alternatywy - czas ją poznać i wzbogacić system oraz swoją wiedzę o timery i system przerwań.

Systemy dla Internetu Rzeczy (14). Podglądanie ruchu w sieci radiowej z protokołem IEEE 802.15.4

Numer: Luty/2018

Największym problemem podczas pracy z układami komunikacji radiowej jest brak pewności czy nadajnik wysłał to co trzeba i czy odbiornik odbiera poprawnie. Jedynym sposobem pokonania tych kłopotów jest ?podsłuchiwanie? transmisji radiowej. Stosowane są do tego sniffery, zwane też analizatorami sieciowymi lub analizatorami pakietów. Pozwalają śledzić (?wąchać?, ang. sniffing) pakiety przesyłane przez wybrany interfejs sieciowy. Jednym ...

Amazon Alexa (1). Tworzymy umiejętności Skills

Numer: Grudzień/2017

W artykule zaprezentujemy sposób tworzenia ?umiejętności? dla asystentki głosowej Alexa (skills). Wykonamy i opublikujemy umiejętność, dzięki której Alexa będzie symulowała losowanie kostką do gry w grach planszowych.

NIOS II na maXimatorze, czyli mikroprocesor w układzie FPGA (1). Wstęp i pierwszy projekt

Numer: Grudzień/2017

W jednym z poprzednich artykułów na łamach Elektroniki Praktycznej pan Mariusz Księżak wprowadził nas w tematykę implementacji procesora NIOS II na płytce maXimator oraz zaprezentował przykładowy projekt z jego użyciem. Teraz czas, abyśmy wspólnie uporządkowali i pogłębili wiedzę na ten temat.

Android Things oraz Raspberry Pi 3. Obsługa magistrali I2C

Numer: Grudzień/2017

W kolejnej części cyklu poświęconej systemowi Android Things oraz płytce Raspberry Pi, na przykładzie graficznego wyświetlacza OLED z kontrolerem SSD1306 oraz układu HTU21 będącego zintegrowanym modułem do pomiaru temperatury i wilgotności względnej powietrza, przedstawiona zostanie programowa obsługa interfejsu I2C. Aby lepiej zaprezentować korzyści wynikające z wykorzystania systemu operacyjnego Android Things i dostępnych dla ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Luty 2019

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym