TI LaunchPad
Korišćenjem PlatformIO plug-in-a, MS VisualStudioCode postaje veomo sofisticiran IDE za pisanje i razvoj aplikacija na mnogim razvojnim sistemima. Za razliku od Arduina, koji ne podržava TI mikroprocesore i gde je potrebno koristiti Energiju, jedan broj TI ploča je podržan u PlatformIO okruženju. Takav je i slučaj sa kombinacijom MSP430FR5994 i BOOSTXL-EDUMKII.
Iskoristili smo snagu mikrokontrolera sa prva i kolor LCD ekran, višebojnu diodu, tastere i džojstik na drugom i napisali veoma jednostavnu, ali ilustrativnu aplikaciju kojom se mogu menjanem R/G/B parametara na ekranu i na diodi dobiti svetlosti boje u skladu sa zadatim vrednostima svake od osnovnih boja.
Standard pri kodiranju boja za prikaz na ekranu je RGB, pri čemu se svaka od vrednosti ove tri boje kreće u rasponu od 0-255. Na ekranu je normalizovan prikaz na 100% kako bi intuitivnije mogli da posmatramo efekte mešanja.
Gotovo da nema projekta u kome nije zgodno imati LCD za prikaz podataka i osnovne grafike. Ponekad je serijski monitor na COM portu dovoljan za uvid, ali kada se krećemo ka konačnom proizvodu, vizuelizacija je bitna karakteristika budućeg proizvoda.
Na jednoj kartici smešteni su Sharp® LS013B7DH03 monohromatski LCD 128×128 piksela, izuzetno male potrošnje što ga čini idealnim za sve baterijski napajane projekte.
A onda smo poželeli da TI SensorTagTM bude drugačiji. Nije nam bilo dovoljno da očitavamo podatke sa njegovih 10 senzora na mobilnom uređaju u aplikaciji koja je u njegovom firmweru, čak nam nije bio dovoljan ni dodatni projekat čitanja podataka Bluetooth LE vezom na Raspberry PI-u, hteli smo naš sistem i našu aplikaciju.
SensorTagTM je baziran na SimplelinkTM CC2650 mikrokontroleru i sve što je od hardvera potrebno je upravo ova mala razvojna pločica – programator – XDS110 dibager koji je baziran na Tivia TM4C1294NCPDT : 120MHz 32-bit ARM Cortex-M4 CPU. Na pločici su i dva konektora koja služe za direktno povezivanje ubadanjem u SensorTagTM. Ono što se nama dopalo je da je moguće povezati dve pločice i ako se pločica SensorTagTM ne vadi iz kućišta, sa tim da je potrebno probiti jedan već označeni otvor na njemu.
Programiranje se radi iz CCS, kao i za sve mikrokontrolere iz SimplelinkTM CC2xxx serije. S obzirom da je ovde izuzetno interesantna podrška za BLE i Z, treba preuzeti ble i z-stack-ove sa TI sajta.
Texas Instruments je u nekoliko najnovijih izjava preporučio upotrebu dve platforme za razvoj aplikacija u budućnosti baziranih na seriji MSP430 i MSP432 mikrokontrolera. Dok je za MSP430 platformu preporuka na MSP5994 mikrokontroleru, kod moćnije MSP432 serije tu je MSP432E401Y. Razvojni sistem koji prati ovu seriju SimpleLink MCU-ova je pred nama.
MSP432E401Y u sebi ima 120-MHz Arm® Cortex®-M4F procesorsko jezgro sa Floating-Point Unit (FPU) jedinicom. U pitanju je SimpleLink mikrokontrolerska platforma koja garantuje 100% korišćenje istog koda u slučaju promene mikrokontrolera iz iste familije u narednim iteracijama dizajna – ili prilikom novog dizajna. Fokus ove platforme je na Wi-Fi®, Bluetooth® low energy, Sub-1 GHz, Ethernet, Zigbee tehnologijama. Sve ono što čini i što će još više činiti osnovu u budućim IoT rešenjima.
Na jednoj ploči TI je postavio 2-osni džojstik, mikrofon, bazer, TFT LCD 128×128 pikselski kolor displej, jednu RGB multi-kolor LED diodu, 2 prekidača, 3-osni akcelometar, TMP006 temperaturni senzor, OPT3001 senzor osvetljenosti, dva konektora za aligator kontakte (zemlja i signal) i konektor za servo motor (GND, PWR i SIG). Sve ovo čini jedan TI BoosterPack koji se može montirati na MSP430 i MSP432 razvojne sisteme prostim ubadanjem.
U prvom susretu sa ovim pakom testirali smo ga na MSP-EXP430FR5994 razvojnom sistemu. Treba obratiti pažnju da LCD biblioteka ne prepoznaje ovaj razvojni sistem, ali prostom modifikacijom biblioteke Screen_HX8353E.cpp dodavanjem defined(MSP430FR5994) || u 68 redu. Fabrički podržane platforme su: LM4F120H5QR, MSP430F5529, TM4C123GH6PM, TM4C1294NCPDT i TM4C1294XNCZAD i to se odnosi samo na HX8353E displej.
Za razvoj projekta pametnije je i daleko ugodnije radeći kroz Energia projekte, bilo da koristite sam Energia šel ili ono što mi preporučujemo CodeComposerStudio koji je sada u verziji 11 i koji u potpunosti integriše Energia IDE uz sve blagodeti moćnog Eclipse IDE-a.
Algoritmi za kontrolu rada motora kao i oni za kontrolu sistema za konverziju napajanja su izuzetno kompleksni i zahtevaju veliku količinu kompleksnih proračuna, snažne procesore i zahtevne algoritme. Nije moguće iznedriti kvalitetna i inovativna rešenja u ovoj oblasti bez ozbiljne procesorske snage.
TI je u ovoj oblasti između ostalih ponudio TMS32F28XXX seriju mikrokontrolera, a u ovom razvojnom kitu susrećemo se sa TMS320F28379D mikrokontrolerom koji radi na 200MHz. U njemu su dva 32-bitna foatpoint jezgra sa Viterbi i trigonometrijskim akceleratorima i dualnim nezavisnim koprocesorima. Svako jezgro ima 512KB sopstvenog FLASH-a i 102KB RAM-a.
Industrijski orijentisane periferije koje ovde srećemo su: 16 HRPWM izlazi sa 150 ps edge kontrolom, 6 capture ulaza, 3 QEP ulaza, 8 ulaznih kanala sa Sigma-Delta filterima.
SCI, SPI, I2C, CAN, McBSP, USP su podržani protokoli serijskih komunikacija.
Integrisani analogni podsistem ima 4 ADC konvertora koji se mogu selektovati kao 16 ili 12 bitni (1,1MSPS/3.5MSPS), 8 komparatora sa 12 bitnim DAC referencama i 3 12 bitna baferisana DAC izlaza.
Jedan od najelegantnijih senzorskih paketa može se naći kod Texas Instruments-a. Baziran je na njihovom SimpleLink™ Arm® Cortex®-M4F CC2642R ili CC2652R 32-bitnom mikrokontroleru koji podržava 2.4 GHz wireless, BLE (Bluetooth low energy) 5.2 i u sebi ima 352kB Flash i 80 kB SRAM memorije, 12-bit ADC, 2 SPI, 4 tajmera, I2C, I2S i kontroler za senzore.
Karakteristike ovog mikrokontrolera čina ga idealnim za IoT aplikacije, a SensorTag je upravo jedna od veoma uspelih primena ove platforme namenjena pre svega demonstraciji mogućnosti i prikupljanju podataka sa ugraženih senzora. Uz dodatni DevPack – razvojni sistem, o kome u ovom prikazu nećemo govoriti, predstavlja odličnu osnovu za IoT istraživanja sa ovom platformom.
Sam SensorTag ima 10 low-power MEMS senzora: senzor intenziteta svetlosti, digitalni mikrofon, senzor magnetnog polja, senzor vlage, senzor pritiska, akcelometar, žiroskop, magnetometar, senzor temperature ambijenta i infracrveni senzor temperature površine.
IoT primena se sama nameće: prikupljanje podataka sa senzora i smeštanje rezultata na oblak na internetu.
SensorTag se može koristiti direktno iz kutije. U sebi ima CR2032 zamenjivu bateriju čiji je radni vek izuzetno dugačak, jer je rad urežaja baziran na TI low-energy tehnologiji. BLE 5.2 tehnologija koja je implementirana na ovoj platformi, troši oko 75% manje energije od standardnih Bluetooth tehnologija.
teresantna ideja obrade zvučnih signala na TI MSP platformi, uz tome prilagođeni MSP430FR5994, koga smo opisali uz izuzetno zanimljiv LaunchPad Development Kit, postoje još moćnija uz TI BOOSTKSL-AUDIO Audio BoosterPack™ Plug-in modul. Ovaj modul na sebi ima audio mikrofonski ulaz i mali ugrađeni zvučnik za kontrolu obrađenog zvuka.
Jednostavnom montažom na heder MSP razvojnog sistema, ostaje samo da se bavite softverskim delom: digitalnom obradom signala (DSP) i mogućnostima filtriranja samog mikrokontrolera (MCU) koji se nalazi na LaunchPad-u.
Treba napomenuti da pločica sama za sebe ne omogućava rad, vej je u pitanju „ćerka“ploča koja se postavlja na sam razvojni sistem.
Razvojni sistem koji se od drugih, na prvi pogled razlikuje u prisustvu microSD card slota i super kondenzatora od 0,22F. Odmah je jasno da je gotovo idealan za izradu projekata u kojima imate „problem“ sa napojnom mrežom, a u isto vreme želite da sačuvate ili obradite veliku količinu podataka. Nešto kao baterijski mobilni loger, opremljen trosturkom zaštitom podataka koju čine: FRAM, super kondenzator i SD kartica. Gubitak podataka usled problema u napojnoj mreži, ovde je gotovo nemoguć.
Kada malo bolje pogledate postavljeni mikrokontroler, vidite da je u pitanju izuzetno jak model uz serije 5xxx sa FRAM memorijom na sebi. Odlika ove serije, i izuzetno mala potrošnja prilikom rada i jasno je da omogućava sve energetski efikasne modove po kojima je TI MSP430FR inače poznata.
Upotrebljen model je konkretno 16Mhz-ni MSP430FR5994 sa 256KB FRAM + 8KB SRAM memorije za podatke i kod.
MSP-EXP430FR6989 je mocan razvojni sistem baziran na jednom od najjacih modela 16-bitnih RISC mikrokontrolera MSP430 serije – MSP430FR6989. Predstavnik je FR serije, tj. u sebi ima FRAM i to celih 128 kB, što je sasvim dovoljno za sve aplikacije citanja vrednosti sa senzora, njihovo skladištenje i obradu.
CPU radi na 16MHz, što obezbeduje citanje i obradu u realnom vremenu. Ukupan broj I/O linija je impresivnih 83. Serijski komunikacioni modul (eUSCI) omogucava UART, SPI, I2C i IrDA enchanced IR modulaciju. Procesor može izvesti 128-bitnu ili 256-bitnu AES Security enkripciju/dekripciju.
Ulazne linije mogu biti analogne i digitalne, a u skladu sa tim treba pomenuti i jedan 16-kanalni 12-bitni AD konvertor. Tu su i pet 16 bitnih tajmera i jedan 16-bitni RTC.
Ukoliko se odlucujete za prve korake u TI svetu i nemate iskustva ili ste vec imali dodira sa Arduino ekosistemom, ovaj razvojni kit je pravi izbor. Po izuzetnio niskoj ceni, dobicete kompletan funkcionalni kit sa kojim možete bez velikih briga uroniti u tajne filozofije TI 16-bitnih mikrokontrolera serije MSP430.
Kit je baziran na MSP430G2553 mikrokontroleru u 20 pinskom PDIP kucištu, pa je sam cip lako zamenjiv i ugodan za rad i dalji razvoj na protobordu. To je velika prednost u pocetnim projektima, posebno kada još istražujete i otkrivate mogucnosti novih arhitektura. MSP430G2553 mikrokontroler ima RISC „ultra-low power“ arhitekturu i izuzetno mocno jezgro za obradu podataka i izracunavanja. Na sve to, tu je je 10bitni AD konvertor visokih-performansi.
MSP430G2553 ima 16-bitnu arhitekturu, a trajanje ciklusa izvršavanja instrukcije je 62,5 ns. Implementiran je stnad-by mod i ultra-fast wake up iz njega za manje od 1µs. Napajanje je u rasponu od: 1,8~3,6 V. Potrošnja struje u zavisnosti od moda rada je: 230µA/radni mod, 0.5µA/standby mod, 0.1µA/off mod (sadržaj RAM-a je sacuvan). Ulazna struja curenja na liniji porta je manja od 50 nA.
Za one koji žele da uđu u svet mikrokontrolera i žele da se upuste u pravi „industrijski“ standard, Ti mikrokontroleri predstavljaju pravi izbor. Ti se pobrinuo da za svaku seriju svojih mikrokontrolera ponudi cenovno veoma ekonomičan razvojni sistem (cena sa poštarinom se kreće do 20 evra, uz mogućnost kartičnog plaćanja direknto na Ti sajtu). Prvi u seriji koje ćemo testirati i prikazati je MSP-EXP430FR2311. Razvojni sistem je baziran na Ti MSP430FR2311 Ultra-low-power mikrokontroleru.
U pitanju je 16-bitna RISC arhitektura, sa klokom do 16 MHz. FR2xxx seriju krasi izuzetno niska potrošnja (126 µA/MHz u aktivnom modu, 0,71 µA u Standby i 32 nA kada je ugašen). Opseg napajanja od 1,8V do 3,6V, uz nisku potrošnju ukazuje na osnovnu ideju ove serije – izrada baterijski napajanih uređaja.
Iako malih dimenzija, opremljen je sa dva B tajmera (sa po 3 registra), transimpedansnim pojačivačem (TIA), 8-kanalnim 10-bitnim ADC konvertorom, poboljšanim komparatorom eCOMP (6-bitni DAC za referentni napon, programabilni histerezis) i pametnim analognim blokom (SAC-L1).
Kada je potrebno kontrolisati rad LED kanala većih struja, recimo do 500mA, Ti TLC59213 je odlično rešenje. U pitanju je 8-bitni paralelni I/O strujni drajver sa darlington izlazima koji se mogu lečovati. Rešenje jeste standardno i lako i odlično je za prikaz paralelne komunikacije između mikrokontrolera i integralnog kola- drajvera u ovom slučaju.
U projektu je korišćen Ti MSP430FR2311, ali se uz minimalne modifikacije može koristiti bilo koji mikrokontroler. Sve što je potrebno jeste jedan 8-bitni I/O port (u ovom slučaju je korišćen Port1, pinovi 0 do 7). Port je konfigurisan kao izlazni, sa početnim stanjem pinova 0.
Za upravljanje radom TLC59213 potrebna su još dva signala. CLK i CLR. Ulaz CLK služi za lečovanje izlaznih pinova kola, sa tim da se vrednost stanja na ulaznim pinovima D1…8, na koje dovodimo Port1, lečuje na izlazima Y1..8. „1“ na ulazu Dn, omogućava proticanje struje kroz Yn i time se pali diodni niz na n-tom kanalu. Ovaj signal je u primeru dodeljen Pinu 0 na Portu 2 mikrokontrolera.
Interesatno rešenje kontrole intenziteta sijanja 8 LED kanala dato je u ovom primeru. Kao osnova korišćeno je TI TLC5916 kolo, 8-kanalni LED sink drajver konstantne struje u rasponu od 3 do 120 mA po kanalu.
Upravljanje rada ovog kola vrši se uz pomoć TI MSP430FR2311 mikrokontrolera, koji je u ovoj aplikaciji bio u obliku TI LaunchPad razvojnog sistema MSP-EXP430FR2311.
Programiranje je urađeno u TI Code Composer Studio V10.0 u C-u, bez upotrebe DriverLiba.
Prilikom pisanja programa pazilo se na modularnost i lakoću korišćenja u budućnosti, pa su posebno napisane funkcije, koje se u glavnom (main.c) programu pozivaju prilikom podešavanja. MSP430FR2311 nakon toga ulazi u sleep mod u kome je potrošnja minimalizovana iz koga se pritiskom na dugme, interrupt-om na portu 2.0 vrši ponovno setovanje moda rada TLC591