Jest to już kolejny zestaw o nazwie SensorTag. Pierwszym był CC2541 SensorTag Development Kit, który obecnie jest niedostępny. Kolejnym był CC2650 SensorTag, nazywany też SensorTag 2. Obecnie (09.2017) są dostępne trzy zestawy o tej nazwie (z wariantami wykonania) [21]:
Zestaw wielostandardowy CC2650STK (SimpleLink Bluetooth low energy/Multi-standard SensorTag CC2650STK) – obsługuje standardy komunikacji bezprzewodowej Bluetooth Low Energy, 6LoWPAN oraz ZigBee w paśmie ISM 2.4 GHz [S1].
Zestaw dwuzakresowy CC2650STK (Simplelink CC1350 SensorTag Bluetooth and Sub-1GHz Long Range Wireless Development Kit CC1350STK), który 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) [4]. Zestaw jest dostępny w dwóch wersjach:
- CC1350STKUS zoptymalizowanej do pracy w pasmie 915 MHz,
- CC1350STKEU zoptymalizowanej do pracy w pasmie 868 MHz.
Zestaw CC3200STK-WIFIMK (SimpleLink Wi-Fi CC3200 SensorTag CC3200STK-WIFIMK) obsługujący komunikację bezprzewodową w standardzie IEEE 802.11 w paśmie ISM 2,4 GHz [21].
Procesor CC1350 firmy Texas Instruments ma zupełnie nowe możliwości komunikacji bezprzewodowej. Używa dwóch pasm ISM. W paśmie 2,4 GHz obsługuje komunikację w standardzie Bluetooth 4.2. W paśmie 433/868/915 MHz pracuje z różnymi standardami komunikacji, w tym GFSK (IEEE 802.15.4). Jeden układ obsługuje komunikację bliskiego zasięgu oraz komunikację dużego zasięgu małej mocy (przełączanie programowe). Umożliwia to bezpośrednie sterowanie węzłami sieci IoT z użyciem smartfonu lub tabletu.
Platforma SimpleLink firmy Texas Instruments dostarcza nowy standard sprzętowo-programowy. Zawiera wiele układów scalonych kompatybilnych funkcjonalnie pod względem wyprowadzeń. Dotyczy to np. układów CC1310 i CC1350 (oraz CC2640R2F). Oprogramowanie jest zorganizowane w postaci pakietu programowego - SimpleLink Sub-1 GHz CC13x0 Software Development Kit (SDK) [9]. Zapewniona jest pełna zgodność (100%) przenoszenia oprogramowania aplikacyjnego pomiędzy procesorami platformy. SDK zawiera system operacyjny czasu rzeczywistego TI-RTOS. API kompatybilne ze standardem POSIX umożliwia zmianę systemu operacyjnego czasu rzeczywistego, np. na FreeRTOS. SDK zawiera również stosy komunikacyjne standardu BLE 4.2 oraz IEEE 802.15.4g.
W dotychczasowych artykułach cyklu „Systemy dla Internetu Rzeczy” był omówiony zestaw CC2650 SensorTag [S1], jego użytkowanie [S2] oraz zestawy rozszerzeń Debug DevPack, Display DevPack (LCD screen) i LED Audio DevPack [S3]. Zestaw CC1310 LaunchPad został omówiony w kolejnym artykule [S4]. W dwóch następnych przedstawiono system operacyjny czasu rzeczywistego TI-RTOS przeznaczony dla układów scalonych z serii CC13xx/CC26xx [S5, S6]. Kolejny artykuł to praktyczne (krok po kroku) wprowadzenie do używania stosu TI BLE-Stack [S7]. Następny omawia zestaw startowy CC2650 LaunchPad [S8], a ostatni opisuje zestaw startowy CC1350 LaunchPad [S9].
Zestaw CC1350 SensorTag jest wygodną platformą do rozpoczęcia pracy z procesorem CC1350.
Dotarcie do opisu zestawu CC1350 SensorTag nastręcza (tradycyjnie) pewne kłopoty. Podstawowym miejscem informacji jest strona produktu układu scalonego CC1350 [1]. Na kilku zakładkach znajduje się sporo informacji, wiele odnośników do dokumentacji (Data Sheet [2], Reference Guide [3]), oprogramowania, projektów i modułów sprzętowych. Na stronie zestawu CC1350 SensorTag [4] znajdują się odnośniki do krótkiego opisu zestawu [5], jego schematu [6] oraz dokumentacji pakietu programowego - SimpleLink Sub-1 GHz CC13x0 Software Development Kit (SDK) [10]. Dokumentacja stosu BLE v4.2 znajduje się na stronie BLE SDK [18]. Strona TI Wiki Category:Sub-1GHz [17] zawiera linki dotyczące sprzętu i oprogramowania.
Strona Meet the CC1350 SensorTag [8] na portalu TI Resource Explorer [7] zawiera jedyny szerszy opis zestawu CC1350 SensorTag na portalu TI. Strona SimpleLink CC13x0 SDK [10] tego portalu zawiera dokumentację oprogramowania, przykładowe projekty oraz warsztaty.
Na zakładce „Teardown” strony „The SensorTag Story” [21] znajduje się lista układów cyfrowych czujników (z opisami) zastosowanych w zestawie CC1350 SensorTag. Na stronie TI Wiki „CC2650 SensorTag User’s Guide” [22] są zamieszczone dokładne informacje dotyczące również zestawu CC1350 SensorTag. Kolejne przydatne miejsce to portal „SimpleLink Academy for SimpleLink CC13x0 SDK” [11]. Znajduje się tam opis (ze źródłami) wielu warsztatów z projektami dla zestawu CC1350 SensorTag. Dokument CC1350STKEU EC Declaration of Conformity [20] zawiera potwierdzenie zgodności modelu w wersji EU z dyrektywami europejskimi.
Spory problem z użytkowaniem portalu TI Resource Explorer przysparza 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. Kolejny problem występuje z wersjami dokumentacji. Na portalu TI dostępne są tylko najnowsze wersje dokumentów. Często w nowszych wersjach nie ma listy zmian, a dokumenty mają nawet ponad 1000 stron. Co więcej, obecna moda idzie w kierunku braku plików dokumentacji. Opisy są udostępniane w postaci stron html dostępnych na portalu (czasami bez linków do nich) lub lokalnie, o czym można się przekonać (często) dopiero po zainstalowaniu modułu programowego, często tylko nawigując po folderach. Dostęp do zasobów w portalu TI Resource Explorer [7] zebranych tematycznie jest bardzo pomocny. Niestety, tylko wtedy, gdy działa… Praktyka pokazuje, że często nasza poranna pora jest w USA świetną nocną porą odpowiednią dla robienia prac na portalu i wtedy „nici z pracy”. Problem dotyczy także schematów. Na przykład dla zestawu CC1350 SensorTag, udostępniony był schemat Rev.1.4.0 (swrc321.zip) a następna wersja to Rev.1.5.0 (swrc321a.zip, obecnie dostępny 09.2017). Posiadam zestaw CC1350 SensorTag Rev.1.4.5 EU i nie mam do niego dokumentacji.
Układ scalony CC1350
W zestawie CC1350 SensorTag zastosowano układ scalony CC1350 [1]. Ten dwuzakresowy układ obsługuje komunikację w paśmie 2,4 GHz w standardzie Bluetooth Smart oraz w pasmie poniżej 1 GHz (Sub-1GHz) w standardzie IEEE 802.15.4. Układ CC1350 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 CC1350 wyróżnia się bardzo niskim poborem mocy. 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ąd w stanie uśpienia układu jest bardzo mały: w stanie Standby 0,7 mA (pracuje RTC i podtrzymanie zawartości RAM/CPU), w stanie Shutdown 185 nA (wybudzanie zdarzeniem zewnętrznym).
Budowa zestawu CC1350 (US/EU) SensorTag
Komponenty elektroniczne zestawu CC1350 SensorTag są zamontowane na jednej wielowarstwowej płytce drukowanej (rysunek 1) [6]. Płytka jest umieszczona w dwuczęściowej obudowie plastikowej z wieloma otworami. Część górna jest przeźroczysta. Dodatkowo, w zestawie jest załączona czerwona, silikonowa obudowa zakładana na pudełko plastikowe. Umożliwia ona dołączenie zestawu SensorTag do kółka od kluczy, jednak praktyka pokazuje, że plastykowa obudowa z płytką drukowaną dosyć łatwo wypada z obudowy silikonowej.
Należy zauważyć, że widoczna przez przezroczystą obudowę zestawu strona płytki drukowanej to dół (!), a nie góra. Ma to konsekwencje w określaniu, gdzie jest strona prawa i lewa. Gdy patrzymy na zestaw od strony układu scalonego procesora (dół) to przycisk SW2 po prawej stronie jest przyciskiem LEWYM (!).
Płytka drukowana zestawu CC1350 SensorTag jest zorganizowana w bardzo podobny sposób jak płytka CC2650 SensorTag [S1]. Na widocznej przez obudowę powierzchni płytki umieszczone są układy scalone wszystkich czujników, procesor CC1350 oraz czerwona dioda LED (rysunek 2). Na odwrotnej stronie płytki najwięcej miejsca zajmuje uchwyt na standardową baterię CR2032 (rysunek 3). Po obu stronach płytki zamontowane są przyciski. Zamontowane jest też gniazdko dla dołączenia debugera standardu JTAG. Drugie zamontowane tam gniazdko służy do dołączania modułów rozszerzeń DevPack.
Czujniki
Zestaw CC1350 SensorTag zawiera wiele czujników MEMS:
- Czujnik do bezdotykowego pomiaru temperatury TMP007 (Texas Instruments).
- 9-osiowy (akcelerometr, żyroskop, kompas) czujnik ruchu MPU-9250 (InvenSensor).
- Czujnik ciśnienia atmosferycznego BMP280 (Bosch).
- Czujnik oświetlenia otoczenia i podczerwieni OPT3001 (Texas Instruments).
- Czujnik wilgotności HDC1000 (Texas Instruments).
- Mikrofon cyfrowy SPH0641LU4H (Knowles).
- Czujnik magnetyczny (stycznik) MK24-A-3 (Meder).
Oprócz wymienionych sensorów dostępne są na płytce zamontowano następujące elementy dodatkowe:
- Brzęczyk akustyczny HCS0503B (Shen Zhen Tianer Technology), 4000 Hz.
- Czerwona dioda LED.
- Pamięć SPI Flash-NOR 1 MB MX25R8035FZUIL0 (Macronics).
- Dwa przyciski: lewy (SW2, User) i prawy (SW1, Power).
- Pojemnik na baterię CR2032 lub CR2025.
- Złącze rozszerzeń dla modułów DevPack z sygnałami wyprowadzeń I/O procesora.
- Standardowe złącze debugera JTAG (typu XS110).
- Zasilanie: 1,8…3,8 V, typowo 3 V z baterii lub 3,3 V ze złącza DevPack.
- Wymiary 50 mm×67 mm×14 mm.
Wszystkie układy scalone czujników są dołączone do procesora CC1350 poprzez złącza standardu I2C.
Na zakładce „Teardown” strony „The SensorTag Story” [21] znajduje się lista układów cyfrowych czujników zastosowanych w zestawie CC1350 SensorTag. Dla każdego układu podany jest jego krótki opis, odnośniki do strony produktu i dokumentu opisu oraz tabela poleceń GATT (do obsługi z użyciem komunikacji standardu Bleuetooth Low Energy). Kolejne informacje dotyczące zestawu CC1350 SensorTag zamieszczone są na stronie „CC2650 SensorTag User’s Guide” [22].
Przyciski. Przycisk SW1 (SW1, Power, prawy) jest dołączony jednym końcem do masy oraz drugim do rezystora szeregowego 270 V oraz do wyprowadzenia DIO_4 (nóżka 9) układu CC1350. Jeśli wyprowadzenie jest skonfigurowane jako wejście, to przyciśnięcie SW1 powoduje jego wyzerowanie. Przycisk SW2 (SW2, User, lewy) jest tak samo dołączony jednym końcem do masy oraz drugim rezystora szeregowego 270 V oraz do wyprowadzenia DIO_15 (nóżka 21) układu CC1350. Rezystancje szeregowe są na tyle duże, że w wypadku skonfigurowania wyprowadzeń układu CC1350 jako wyjście przyciśnięcie przycisku nie spowoduje uszkodzeń.
Dioda LED. Sygnał z wyprowadzenia DIO_10 (nóżka 16) jest dołączony do diody czerwonej LED1 (CR1) i przez rezystor 680 V do masy.
9-osiowy czujnik ruchu MPU-9250. Najciekawszym układem scalonym zestawu CC1350 SensorTag jest scalony czujnik ruchu MPU9250 (InvenSensor), który zawiera w jednej obudowie: 3-osiowy akcelerometr, 3-osiowy żyroskop, 3-osiowy kompas (magnetometr) oraz procesor DMP (Digital Motion Processor) i termometr cyfrowy [23]. Układ umożliwia komunikację z systemem procesorowym z użyciem standardu SPI lub I2C. Układ MPU9250 jest dołączony do procesora CC1350 poprzez osobną szynę I2C (SDA/SCL/HP) [6]. Obudowa czujnika ma wymiary 3 mm×3 mm×1 mm. Napięcie zasilania z zakresu 2,4…3,6 V przy poborze prądu 8 mA (tryb uśpienia całego układu). Układ wytrzymuje udar do 10000 g.
Żyroskop wykonano w technologii MEMS i ma następujące parametry:
- Trzy osie X, Y, Z.
- Trzy przetworniki A/C 16 bitów, osobno dla każdego kanału, umożliwiające jednoczesne próbkowanie.
- Regulowany zakres: ±250, ±500, ±1000 oraz ±2000 °/s, kalibrowany fabrycznie.
- Programowalny cyfrowy filtr dolnoprzepustowy.
- Wbudowany układ do wykonywania testu działania, sterowany programowo.
Akcelerometr wykonano w technologii MEMS i ma następujące parametry:
- Trzy osie X, Y, Z.
- Trzy przetworniki ADC 16 bitów, osobno dla każdego kanału, umożliwiające jednoczesne próbkowanie.
- Regulowany zakres: ±2 g, ±4 g, ±8 g oraz ±16 g.
- Detekcja orientacji i stuku.
- Programowalny cyfrowy filtr dolnoprzepustowy.
- Wbudowany układ do wykonywania testu działania, sterowany programowo.
Kompas wykonano w technologii monolitycznej z wykorzystaniem efektu Halla. Ma on następujące parametry:
- Trzy osie X, Y, Z.
- Trzy przetworniki A/C, osobno dla każdego kanału, umożliwiające jednoczesne próbkowanie.
- Rozdzielczość danych wynosi dla próbkowania 14bit 0,6 mT na LSB, dla 16bit 15 mT na LSB.
- Zakres pomiaru ±4800 mT.
- Programowalny, cyfrowy filtr dolnoprzepustowy.
Wbudowany układ z wewnętrznym źródłem magnetycznym do wykonywania testu działania sterowany programowo.
Procesor DMP (Digital Motion Processor) – wbudowany w układ procesor typu DSP. Wykonuje łączenie synchronicznie próbkowanych danych ze wszystkich czujników oraz cyfrowego pomiaru temperatury do postaci pakietu danych zapisywanych do pamięci FIFO (512 B). Procesor wykonuje oprogramowanie firmowe MotionFusion oraz oprogramowanie kalibracyjne pracujące w czasie pomiarów. Umożliwia to wyeliminowanie błędów rozsynchronizowania czasowego danych oraz dryftu długoterminowego. Wejście synchronizacji FSYNC pozwala na wykorzystanie MPU-9250 w układach stabilizacji obrazu i modułach GPS.
Czujnik bezdotykowego pomiaru temperatury TMP007. Kolejny ciekawy układ na płytce to scalony czujnik bezdotykowego pomiaru temperatury TMP007 (Texas Instruments) [24]. Jest to udane rozwinięcie czujnika TMP006. Układ wykonuje pośredni oraz bezpośredni pomiar temperatury. Pomiar pośredni wykorzystuje detekcję promieniowania podczerwonego. Czujnik temperatury obiektu używa termostosu (thermopile) do absorbowania energii w zakresie podczerwieni (4 mm do 16 mm) emitowanej przez obiekt podlegający pomiarowi. Termostos generuje napięcie proporcjonalne do różnicy temperatury pomiędzy złączem gorącym i złączem zimnym (odniesienia). Pomiar temperatury odniesienia jest wykonywany przez wbudowany w strukturę układu scalony czujnik półprzewodnikowy. Termostos może mierzyć temperaturę obiektów w zakresie -40…+125°C. Czujnik ma wymiary 1,9 mm×1,9 mm×0,625 mm. Typowe zasilanie 2,5…5,5 Vprzy poborze prądu w trybie uśpienia 0.5 mA i 240 mA w trybie pomiaru ciągłego. Układ TMP007 obsługuje łącze komunikacyjne w standardzie I2C (fast 400 b/s oraz high-speed do 2,5 Mb/s).
Czujnik wilgotności HDC1000. Scalony czujnik wilgotności HDC1000 (Texas Instruments) wykonuje cyfrowe pomiary względnej wilgotności powietrza oraz pomiar temperatury [25]. Pomiary są wykonywane z zastosowaniem nowej technologii czujnika pojemnościowego. Element pomiarowy jest umieszczony bezpośrednio na powierzchni dolnej ściany obudowy, co pozwala na uzyskać bardzo mały rozmiar oraz odporność na kurz i zabrudzenia. Obecnie zaleca się do nowych projektów stosowanie układu HDC1010 lub HDC1080.
Czujnik ciśnienia atmosferycznego BMP280. Scalony czujnik ciśnienia atmosferycznego BMP280 (Bosch) wykonuje pomiar barometryczny [26]. Układ jest zrealizowany z czujnikiem piezoceramicznym, co zapewnia wysoką rozdzielczość, liniowość i długoterminową stabilność termiczną. Zawiera wewnętrzny przetwornik A/C z układem cyfrowym sterowania z pamięcią EEPROM do zapisu danych kalibracyjnych do kompensowania offsetu, wpływu temperatury i innych zależności na wartość pomiaru. Układ może pracować w jednym z trzech trybów, co pozwala na dobranie poboru mocy, czasu przetwarzania i dokładności (nadpróbkowanie) przetwarzania. Układ charakteryzuje się zakresem pracy 300…110 hPa (odpowiednik wysokości 9000…500 m nad poziomem morza) oraz bardzo dobrą dokładnością ±0,12 hPa (odpowiednik ±1 m) i rozdzielczością ±1 hPa. Pomiar temperatury jest wykonywany z niepewnością ±0,5°C i rozdzielczością 0,01°C (16 bitów). Czujnik ma wymiary 2 mm×2,5 mm×0,95 mm i metalową obudowę LGA8. Typowe zasilanie to 2,5 V (1,62…3,6 V) przy poborze prądu 2,7 mA w trybie standardowym dla pracy 1 pomiar/sekundę. Układ BMP280 obsługuje łącze komunikacyjne w standardzie I2C (fast 400 b/s oraz high-speed do 3,4 Mb/s) oraz SPI (3 lub 4 sygnały, do 10 Mb/s).
Czujnik oświetlenia otoczenia OPT3001. Scalony czujnik oświetlenia otoczenia OPT3001 (Texas Instruments) wykonuje pomiar poziomu oświetlenia [27]. Charakterystyka spektralna czujnika jest zbliżona do charakterystyki ludzkiego oka. Układ wykazuje bardzo dobre tłumienia podczerwieni. Wbudowana automatyka pomiaru umożliwia uzyskanie zakres pomiarowego od 0.01 lux do 83k lux. Odpowiada to 23-bitowemu zakresowi dynamiki pomiarowej. Układ OPT3001 obsługuje łącze komunikacyjne w standardzie I2C fast 400kHz.
Mikrofon cyfrowy SPH0641LU4H. Cyfrowy mikrofon SPH0641LM4H-1 (Knowles) jest miniaturowym układem MEMS składającym się z czujnika akustycznego, niskoszumnego bufora wejściowego oraz przetwornika sigma-delta [28]. Układ charakteryzuje się dużym odstępem do szumu 64 dB, niskim poborem mocy 230 mA w trybie Low-Power, dookólną charakterystyką kierunkową i dobrym ekranowanie zakłóceń radiowych (rysunek 7).
Anteny
Zestaw CC1350 SensorTag jest dostępny w dwóch wersjach wykonania:
- CC1350STKUS przystosowanym do pracy w paśmie 915 MHz ISM (USA),
- CC1350STKEU przystosowanym do pracy w paśmie 868 MHz ISM (Europa).
Na górze płytki drukowanej zestawu CC1350 SensorTag w wersjach USA/ Europa umieszczone są dwie anteny wykonane powierzchniowo (rys. 1). Zaletą anteny PCB jest niska cena oraz dobra jakość (po dokładnym zweryfikowaniu działania kolejnych wersji płytki drukowanej). Pierwsza antena (A1) pozwala na pracę w paśmie 2,4 GHz (ISM). Druga antena pozwala na pracę w paśmie poniżej 1 GHz (Sub-1GHz). Obie anteny są dołączone do osobnych wyprowadzeń układu scalonego CC1350. Dlatego jest możliwa praca zestawu albo w jednym albo w drugim paśmie. Podczas normalnej pracy każda antena PCB (odpowiednio A1 oraz A2) jest dołączona do wyprowadzeń sekcji radiowej poprzez kondensator (odpowiednio ANT2 oraz ANT4). Po wylutowanie tego kondensatora i wlutowaniu rezystora (odpowiednio R24 oraz R10) dołączonego do gniazdka typu JSC (odpowiednio J12 oraz P10) możliwa jest praca z anteną zewnętrzną dla każdego pasma. Dokładny opis budowy anten i ich parametrów jest zamieszczony w dokumencie [13].
Złącze rozszerzeń DevPack
Złącze rozszerzeń zainstalowane na płytce umożliwia dołączenie modułów rozszerzeń w standardzie DevPack [S3]. Obecnie są dostępne moduły debugera (Debug DevPack), LCD (Watch DevPack) oraz LED (LED Audio DevPack). Płytka modułu DevPack jest mocowana na złączu rozszerzeń znajdującym się na dolnej powierzchni płytki zestawu CC1350 SensorTag. Nie trzeba nawet zdejmować obudowy plastikowej. Ale trzeba usunąć zaślepkę otworu na złączem.
Moduł rozszerzeń Debug DevPack
Bardzo przydatnym, a właściwie koniecznym, uzupełnieniem zestawu CC1350 SensorTag jest moduł rozszerzeń Debug DevPack [S3]. Moduł Debug realizuje układ emulatora sprzętowego typu XDS110. Aby założyć moduł Debug na zestawu CC1350 SensorTag zamknięty w obudowie plastikowej należy wyciąć/wyłamać w czarnej obudowie plastikowej (od tyłu) pole przeznaczone na 10-nóżkowe złącze JTAG. Następnie należy nałożyć płytkę modułu Debug na tylną (czarną) obudowę plastikową zestawu CC1350 SensorTag, aby połączyć 20-nóżkowe złącze rozszerzeń oraz 10-nóżkowe złącze JTAG. Po połączeniu modułu Debug DevPack z komputerem kablem USB-A USB-Micro zaczyna świecić się zielona dioda LED na płytce modułu Debug DevPack, co sygnalizuje, że moduł jest gotowy do pracy.
Zasilanie
Płytka zestawu CC1350 SensorTag jest zasilana napięciem 3 V (typ.) z baterii CR2032. Jednak po dołączeniu zewnętrznego modułu rozszerzeń DevPack (np. Debug DevPack) układ przełącznika elektronicznego TPS22910 przełącza źródło zasilania na wyprowadzenie 9 (VDD_OUT) złącza rozszerzeń J1. Wtedy zasilanie kompletu zestawu CC1350 sensorTag + Debug DevPack jest dostarczane ze złącza USB modułu Debug DevPack.Fabrycznie zestaw CC1350 SensorTag jest dostarczany z włożoną do uchwytu baterią CR2032. Jednak jest ona zabezpieczona przed rozładowaniem folią plastikową podłożoną pod styk. Oznacza to brak zasilania dla płytki drukowanej zestawu. Praca zestaw CC1350 SensorTag z modułem rozszerzeń Debug DevPack powoduje zablokowanie możliwości używania zewnętrznej (w stosunku do wewnętrznej pamięci Flash procesora) pamięci Flash (U10) zamieszczonej na płytce drukowanej. Oznacza to np. niepoprawny rezultat aktualizacji oprogramowania firmowego poprzez łącze radiowe OAD.
Użytkowanie zestawu CC1350 SensorTag
Zestaw CC1350 SensorTag jest dostarczany z fabrycznie zaprogramowanym programem o nazwie „CC1350 LaunchPad Out of the Box Demo”. Program obsługuje transmisję bezprzewodową Bluetooth LE ver.4.2. Jego opis znajduje się na portalu TI Resource Explorer [7] na stronie Meet the CC1350 SensorTag [8]. Na tej stronie jest przycisk dający możliwość wpisania obrazu tego programu do zestawu CC1350 SensorTag z zastosowaniem środowiska sieciowego (wtyczka do przeglądarki) [19]. 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 [11] są zamieszczone bardzo przydatne prezentacje wideo. Zestaw CC1350 SensorTag umożliwia zmianę standardu komunikacji w sposób programowy [4].
Dołączanie zestawu CC1350 SensorTag do urządzenia mobilnego
Zestaw CC1350 SensorTag 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 na stronie Meet the CC1350 SensorTag [8].
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ą):
* Apple App Store dla urządzeń z systemem operacyjnym iOS 8.0 i nowszym (iPhone i iPad) [14].
* Z Google Play dla urządzeń z systemem operacyjnym Android 5.0 i nowszym [15].
- Włącz zasilanie zestawu CC1350 SensorTag. Czerwona dioda LED zaczyna błyskać. Sygnalizuje to, że zestaw CC1350 SensorTag jest w stanie rozgłaszania.
- Uruchom aplikację SimpleLink Starter na swoim urządzeniu mobilnym. Może to wymagać włączenia na urządzeniu radia Bluetooth. Aplikacja najlepiej działa na iPadzie. W przypadku 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 CC1350 SensorTag. Z aplikacją „CC1350 LaunchPad Out of the Box Demo” (rev.1.33) zestaw widoczny jako CC1350 SensorTag. Typowo, zestaw położony blisko ma największą wartość RSSI (najwięcej kresek identyfikacji poziomu sygnału). Po kliknięciu na niego pojawia się okienko wyboru (rysunek 4).
- Kliknij na linię nazwy i wybierz “Sensor View”. Zostanie wyświetlone okno prezentujące bieżące wartości odczytu z zestawu (rysunek 5). Czerwona dioda LED zestawu CC1350 SensorTag przestaje błyskać. Oznacza to, że zestaw jest w stanie komunikacyjnym „połączony”. Niestety wygląda to tak samo, jak w stanie uśpienia urządzenia.
Aplikacja umożliwia włączanie i wyłączanie diody 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.
Dołączanie zestawu CC1350 SensorTag do chmury obliczeniowej
Aplikacja Simplelink Starter pozwala, aby urządzenie mobilne (np. iPad) dołączone do sieci Internet umożliwiało pracę zestawu CC1350 SensorTag z chmurą obliczeniową firmy IBM.
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. Poniżej ikonki chmury jest pokazywana strzałka za każdym razem, gdy dane są wysyłane do chmury. Kliknięcie na ikonę chmury otwiera okno „Config Summary”. Jako identyfikator urządzenia jest brany unikalny adres MAC zestawu CC1350 SensorTag. W oknie jest podany adres dostępu do strony Internetowej Quickstart z danymi pomiarowymi pobieranymi z zestawu CC1350 SensorTag i wyświetlanymi na bieżąco (w czasie rzeczywistym).
Łączenie jest darmowe, łatwe, szybkie i obecnie (09.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 CC1350 LaunchPad
Zestaw CC1350 SensorTag jest dostarczany z fabrycznie zaprogramowanym programem „CC1350 SensorTag Out of the Box Demo”. Nie jest dostępny projekt tej aplikacji. Można tylko zaprogramować jej obraz. Ponowne zaprogramowanie zestawu CC1350 SensorTag programem firmowym jest możliwe na kilka sposobów:
- Z zastosowaniem programu SmartRF Flash Programmer 2 [12].
- Z zastosowaniem oprogramowania w chmurze (strona „Meet the CC1350 SensorTag” [8]).
- Poprzez łącze radiowe standardu Bluetooth LE z aplikacji Simplelink Starter pracującej na urządzeniu mobilnym (smartfon/iPad) [8].
Programowanie w środowisku Code Composer Studio. Nie jest dostępny projekt tej aplikacji.
Najlepszy sposób reprogramowania to zastosowanie programu SmartRF Flash Programmer 2. Typowo udostępnia on najbardziej aktualne wersje oprogramowania firmowego (FW). Program jest prosty, łatwy i stabilny. Pozwala też na przeprowadzenie aktualizacji oprogramowania firmowego modułu debugera Debug DevPack (jeśli jest wymagana).
A) 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 [12].
Do prawnej pracy wymagane jest też zainstalowanie programu BLE Device Monitor [16]. Obecnie (09.2017) poprawną i (w miarę) stabilną pracę zapewnia wersja v2.5.0.
- Zainstaluj program BLE Device Monitor v2.5.0. Jest on wgrywany do folderu C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitor. Razem z aplikacją jest instalowany w ścieżce instalacyjnej 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.
- Zainstaluj program SmartRF Flash Programmer 2. Jest on wgrywany do folderu 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 instalacyjnej dochelp.
- W programie SmartRF Flash Programmer 2 istnieje możliwość aktualizacji oprogramowania firmowego emulatora sprzętowego XDS110 znajdującego się na płytce drukowanej zestawu CC1350 LaunchPad. Typowo, taka sytuacja zachodzi podczas pierwszego użycia zestawu po zakupie lub po aktualizacji wersji sterowników.
- Uruchom program SmartRF Flash Programmer 2. W oknie Connected devices zostanie pokazany wykryty układ XDS110, XDS-xxxxxxxx (rysunek 5). Często linia XDS110 jest poprzedzona znakiem wykrzyknika i typ układu jest pokazany jako Unknown [12].
- Kliknij na linię XDS110. Powoduje to wyświetlenie okna z informacją o wymaganej aktualizacji oprogramowania firmowego emulatora XDS110 (rysunek 6). Należy to wykonać.
- Kliknij Yes. Poczekaj na wyświetlenie informacji o poprawnym wykonaniu aktualizacji.
- Kliknij Done.
Teraz poprawnie wyświetlana jest nazwa dołączonego zestawu sprzętowego.
Programowanie wewnętrznej pamięci Flash procesora. Program SmartRF Flash Programmer 2 jest przeznaczony do programowania wewnętrznej pamięci Flash układów SoC 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.
- Na zakładce Main kliknij przycisk Browse.
- Nawiguj do foldera z plikami źródłowymi *.hex aktualizacji dla zestawu CC1350 SensorTag (rysunek 7) C:Program Files (x86)Texas InstrumentsSmartRF ToolsBLE Device Monitorfirmwarecc26xx sensortag.
- Wybierz plik z aplikacją firmową najnowszej wersji 1.40 o nazwie CC1350SensorTag_BLE_All_v1_40.hex.
- Teraz należy zaznaczyć wszystkie akcje: Erase, Program, Verify.
- Kliknij na znaczek programowania.
- Czekaj na wyświetlenie w oknie Status informacji o sukcesie.
B) Reprogramowanie z zastosowaniem oprogramowania w chmurze
Ponowne zaprogramowanie zestawu CC1350 SensorTag programem firmowym „CC1350 SensorTag Out of the Box Demo” jest możliwe z wykorzystaniem strony „Meet the CC1350 SensorTag” [8] na portalu TI Resource Explorer [7]. Znajduje się tam przycisk (rysunek 8) służący do zaprogramowania pamięci Flash układu scalonego CC1350 zestawu SensorTag. Kod oprogramowania firmowego zostaje wpisany do zewnętrznej pamięci Flash zestawu.
Zestaw CC1350 SensorTag musi być dołączony do komputera PC poprzez emulator sprzętowy. Dobrym rozwiązaniem jest uzupełnienie zestawu CC1350 SensorTag o moduł rozszerzeń Debug DevPack [S3]. Realizuje on układ emulatora sprzętowego typu XDS110.
- Dołącz zestaw CC1350 SensorTag modułem rozszerzeń Debug DevPack z komputerem PC kablem USB-A USB-Micro.
- Otwórz okno Menedżer Urządzeń i sprawdź czy są poprawnie zainstalowane wszystkie sterowniki (cztery pozycje).
- Kliknij pierwszy raz na przycisk reprogramowania (rysunek 8).
- Wyświetlana jest plansza z instrukcją:
* Jeśli program TI Cloud Agent nie był instalowany to pokazywana jest plansza instalacyjna (rysunek 9).
* Jeśli program TI Cloud Agent był instalowany to pokazywana jest (prawdopodobnie) plansza aktualizacji (rysunek 10). Wtedy idź od razu do punktu B5. Po kliknięciu na pierwszy przycisk reprogramowania na stronie „Meet the CC1350 SensorTag” po raz pierwszy wyświetlana jest plansza z instrukcją (rysunek 10).
- Zainstaluj wtyczkę TI Cloud Agent Bridge [19] dla przeglądarki internetowej (Firefox, Chrome, Safari lub IE). Jest to niewielka aplikacja, która umożliwia programowanie i debugowanie układu scalonego bezpośrednio z narzędzi sieciowych Texas Instruments Cloud Tools. Na stronie [19] jest opis jak ją aktywować w przeglądarce.
- Pobierz plik instalacyjny ticloudagent__2__tixds110.exe aplikacji TI Cloud Agent.
- Wyłącz program antywirusowy.
- Uruchom i zainstaluj aplikację w domyślnej lokalizacji.
- Ponownie kliknij na przycisk reprogramowania. Zostanie wyświetlona plansza z nową informacją (rysunek 11). Odnośniki na planszy dotyczą strony TI Cloud Agent [19] z dodatkowymi informacjami.
- Kliknij na FINISH. Strona zostanie ponownie załadowana.
- Ponownie kliknij na przycisk reprogramowania (rys.8), aby rozpocząć reprogramowanie. Diody komunikacyjne emulatora XDS110 moduł rozszerzeń Debug DevPack zaczynają błyskać i pokazywana jest plansza z informacją o statusie operacji. Na koniec wyświetlana jest informacja o pomyślnym zakończeniu pracy.
- Kliknij OK.
Dalej wymagane jest odłączenie emulatora, uruchomienie zestawu uCC1350 SensorTag z zasilaniem bateryjnym, ponowne podłączenie emulatora i ponowne reprogramowanie zestawu CC1350 SensorTag z użyciem drugiego przycisku reprogramowania na stronie. Praktyka (09.2017) pokazuje, że zostaje wpisana jakaś bardzo stara wersja FW. Bardziej polecane jest reprogramowanie w programie SmartRF Flash Programmer 2.
C) Reprogramowanie poprzez łącze radiowe Bluetooth LE
Możliwe jest reprogramowanie poprzez łącze radiowe (OAD - Over the Air Download) standardu Bluetooth LE z aplikacji SimpleLink Starter pracującej na urządzeniu mobilnym (smartfon/iPad). Kod oprogramowania formowego zostaje wpisany do zewnętrznej pamięci Flash zestawu.
Uwaga! Aktualizacja oprogramowania firmowego poprzez łącze radiowe wymaga zasilania z baterii CR2032. Reprogramowanie OAD wymaga dostępu procesora do zewnętrznej pamięci Flash poprzez port SPI. W wypadku dołączenia do zestawu CC1350 SensorTag modułu Debug DevKit występuje konflikt przypisania sygnałów i reprogramowanie kończy się niepowodzeniem.
Do reprogramowania jest stosowane łącze standardu Bluetooth LE oraz aplikacja SimpleLink Starter pracująca na urządzeniu mobilnym (smartfon/iPad). W polu Device Information okna prezentującego bieżące wartości odczytu pokazywane są informacje o nazwie urządzenia, identyfikatorze (adresie), wersji sprzętu oraz wersji oprogramowania (rys. 5).
W oknie prezentującym bieżące wartości odczytu z zestawu kliknij na pole FW Dowload. W oknie TI OAD profile kliknij na Select FW file. W oknie Select FW to program znajdź wersje kompatybilne z zestawem CC1350 SensorTag oraz wpisaną wersją oprogramowania. Dla wpisanej wersji przedprodukcyjnej (rev.1.31 – Sep 15 2016) jest dostępna tylko wersja SensorTag 2 v1.12 (ZigBee). Należy zaktualizować FW do wersji co najmniej 1.33 – Nov 9 2016 (lub np. 1.40 Feb 23 2017) przy zastosowaniu programu SmartRF Flash Programmer 2. Wtedy w oknie Select FW to program zostaną wyświetlone wersje SensorTag v1.51 (BLE) A i B. Jednak obecnie (09.2017) reprogramowanie poprzez łącze radiowe nie działa.
Weryfikacja pracy w programie BLE Device Monitor
BLE Device Monitor [16] jest aplikacją dla systemu Windows do obsługi transmisji w formacie BLE. Aplikacja wymaga dołączenia do komputera zestawu CC2650LP [S8] lub CC2650STK [S1] z pracująca aplikacją BLE HostTest Project [S7]. Monitor umożliwia wgląd w parametry komunikacji oraz w przesyłane dane.
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 i wykonać dołączenie do wykrytego zestawu CC1350 SensorTag. Odczytywane są wszystkie dostępne dane i udostępniane sterowania.
Do poprawnej pracy aplikacji BLE Device Monitor wymagane jest oprogramowanie firmowe zestawu CC1350 SensorTag w wersji co najmniej v.1.33 ( Nov 9 2016).
W prawym panelu okna aplikacji BLE Device Monitor pokazywana jest zakładka CC1550 SensorTag (rysunek 11).W przystępny sposób graficzny udostępnia ona rezultaty pomiarów wartości odczytów czujników zestawu CC1350 SensorTag. Po kliknięciu na przycisk Run cyklicznie dane są odczytywane z zestawu CC2650 SensorTag i pokazywane w polach tabelek (rysunek 12). 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 (rys.13). Bardziej dokładny opis został zamieszczony w odcinku 7 kursu [S7].
Aplikacja BLE Device Monitor w obecnej (v2.5.0) wersji pracuje dobrze, ale czasami nie potrafi dołączyć się do zestawu 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
Pozostałe artykuły kursu
- 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
- Systemy dla Internetu Rzeczy (8). Zestaw startowy CC2650 LaunchPad, Elektronika Praktyczna, 7/2017
- Systemy dla Internetu Rzeczy (9). Zestaw startowy CC1350 LaunchPad, Elektronika Praktyczna, 9/2017
Bibliografia:
- CC1350 SimpleLink Ultra-Low Power Dual Band Wireless Microcontroller, Product Page, https://goo.gl/JSxjAK
- CC1350 SimpleLink™ Ultra-Low-Power Dual-Band Wireless MCU (SWRS183A) 21 Nov 2016, https://goo.gl/DS4yAN
- CC13xx, CC26xx SimpleLink Wireless MCU Technical Reference Manual (SWCU117H) 21 Aug 2017, https://goo.gl/NLHb32
- Simplelink CC1350 SensorTag Bluetooth and Sub-1GHz Long Range Wireless Development Kit CC1350STK, Tools Page https://goo.gl/WmMFd4
- CC1350 SensorTag Quick Start Guide (SWRU481A) 29 Mar 2017 https://goo.gl/nbmvcy
- CC1350STK Design Files (SWRC321A.ZIP) 30 Mar 2017 https://goo.gl/QZF8Ub
- TI Resource Explorer https://goo.gl/59QEsv
- Meet the CC1350 SensorTag, https://goo.gl/mL2FYu
= SimpleLink Sub-1 GHz CC13x0 Software Development Kit, SIMPLELINK-CC13X0-SDK, Ver 1.40.00.10 28-Jun-2017, https://goo.gl/BMi8G8
- SimpleLink CC13x0 SDK – v: 1.40.00.10, Software, Documents, Examples, SimpleLink Academy, https://goo.gl/3MVJf9
- SimpleLink Academy 1.13.01 for SimpleLink CC13x0 SDK 1.40, v1.13.01.05 - 5 July 2017, https://goo.gl/G1qCCp
- SmartRF Flash Programmer v2 v1.7.5 9-Dec-2016 https://goo.gl/C74htm
- Sub-1 GHz and 2.4 GHz Antenna Kit for LaunchPad™ and SensorTag CC-ANTENNA-DK2, https://goo.gl/e6ALw4
- TI SimpleLink™ Starter By Texas Instruments (Version: 4.92, Sep 26, 2016), https://goo.gl/xfecw1
- Google Play, Simplelink SensorTag, Texas Instruments Inc. (Version: 3.8, 4 listopada 2016), https://goo.gl/EsMPKs
- BLE Device Monitor User Guide (TI WIKI), 7 April 2017, https://goo.gl/rMBLkp
- Category:Sub-1GHz, TI Wiki, 30 June 2016, https://goo.gl/CqNz28
- 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/q1YAFX
- TI Cloud Agent, 23 February 2017, https://goo.gl/m3vNa7
- CC1350STKEU EC Declaration of Conformity (DoC) (SZZQ029) 06 Dec 2016, https://goo.gl/ixUmyz
- The SensorTag Story, 2017, https://goo.gl/ve7ZHt
- CC2650 SensorTag User’s Guide, 19 July 2017, https://goo.gl/cxAfbs
- MPU-9250 Product Specification Revision 1.1, Datasheet, TDK InvenSense, https://goo.gl/dvfGyd
- TMP007 Infrared Thermopile Sensor with Integrated Math Engine (SBPS685C) July 2015 https://goo.gl/U9vdFo
- HDC1000 Low Power, High Accuracy Digital Humidity Sensor with Temperature Sensor (SNAS643C) January 2016, https://goo.gl/Fm51N2
- BMP280 Barometric Pressure Sensor https://goo.gl/4vH5B4
- OPT3001 Ambient Light Sensor (ALS) (SBOS681B) December 2014 https://goo.gl/bW5Qrq
- Digital Zero-Height SiSonicTM Microphone With Multiple Performance Modes, https://goo.gl/sNHM78