Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Programuj układy MSP430 od Texas Instruments w Arduino

Płytki Texas Instruments nie są może tak popularne jak Raspberry Pi czy Arduino, ale mają swoich zwolenników i entuzjastów. Zazwyczaj tego typu płytki są dedykowane dla bardziej doświadczonych użytkowników i wymagają większej znajomości programowania głównie w języku C. Na szczęście znaleźli się programiści, którzy przygotowali niezwykle wygodne narzędzie dzięki któremu możemy programować m.in. wydajne układy MSP430 w prosty i przejrzystym języku dla Arduino.

Energia IDE

Właśnie aplikacja Energia, która jest wzorowana i podobna do Arduino IDE pozwala w prosty sposób programować układy MSP430, MSP432, EK-TM4 oraz LAUNCHXL-F28.
Aplikację oraz sterowniki dla wybranych płytek można pobrać z działu Download projektu.
Aplikacja jest podobna jak nie identyczna jak Arduino IDE. Nawigacja w nim odbywa się identycznie jak w narzędziu dla Arduino, dlatego nie powinna przysporzyć problemów początkującym.

MSP-EXP430FR5739

Płytka, którą mam to model msp430fr5739, posiadająca 16kB pamięci FRAM, 1kB SRAM, 12x10 bitowych złącz analogowych ADC, komparator, 5x16 bitowych zegarów, eUSCI(UART, SPI, IrDA, I2C), 32 GPIO. Dodatkowo na płytce znajduje się trzyosiowy Akcelerometr, czujnik temperatury, dwa przyciski oraz 8 diod LED.

GPIO

Na płytce są 32 piny GPIO z czego my mamy do dyspozycji łącznie 28 pinów, które możemy programować. Poniżej znajduje się schemat z numeralizacją pinów oraz ich funkcjami.
Na schemacie widzimy że do dyspozycji mamy m.in. 10 złącz analogowych, 14 pinów PWM, I2C, UART. Schemat pokazuje, które obecnie piny można używać i programować za pomocą Energia. W programie Energia mamy sporo przykładów dzięki czemu możemy testować np. Akcelerometr.

Pisanie kodu

Tak jak wspominałem na początku układy domyślnie programuje się za pomocą języka C, ale nie jest to zbyt proste i przejrzyste dla początkujących. Poniżej przedstawiam przykład programu blink napisanego w C oraz w języku dla Arduino

Przykład w języku C #include "msp430fr5739.h" #include "FR_EXP.h" unsigned int i = 0; void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR |= 0x01; for (;;) { P1OUT ^= 0x01; for(i=0; i< 20000; i++); } } .oraz przykład dla Arduino int led1 = 25; void setup() { pinMode(led1, OUTPUT); } void loop() { digitalWrite(led1, HIGH); delay(1000); digitalWrite(led1, LOW); delay(1000); } Jak widać łatwiej jest odczytać drugi kod, a jest to tylko proste miganie diodą.

Przygotowałem prosty program dzięki któremu wbudowane 8 diod zapalają się jedna po drugiej.

#define przerwa 70 int i = 0; void setup() { for(i = 25; i<= 28; i++){ pinMode(i, OUTPUT); } for(i = 7; i<= 10; i++){ pinMode(i, OUTPUT); } } void loop() { for( i = 25; i <= 28; i++){ digitalWrite(i, HIGH); delay(przerwa); digitalWrite(i, LOW); } for( i = 7; i <= 10; i++){ digitalWrite(i, HIGH); delay(przerwa); digitalWrite(i, LOW); } // w druga stronę for( i = 9; i >= 7; i--){ digitalWrite(i, HIGH); delay(przerwa); digitalWrite(i, LOW); } for( i = 28; i >= 26; i--){ digitalWrite(i, HIGH); delay(przerwa); digitalWrite(i, LOW); } }

Poniższe nagranie pokazuje wynik programu.

Jak widać nie takie straszne płytki od TI, a możliwości i wydajność mają o wiele lepszą niżeli Arduino. Sama ilość pinów PWM oraz analogowych jest duża i na pewno pozwoli na zbudowanie ciekawego urządzenia lub robota. 

sprzęt oprogramowanie hobby

Komentarze

0 nowych
wojski   7 #1 20.04.2015 11:08

Gdzies w przykładowym kodzie zjadło #include - jak artykuł dla początkujących to warto poprawić :)

Wpis jak zwykle na poziomie, tylko brakuje mi informacji o cenie...

  #2 20.04.2015 11:58

MSP430 to ciekawa rodzina. Niby proste mikrokontrolerki, ale w pełni 16-bitowe. Dlatego nie ma się co dziwić, że są nieco wydajniejsze niż klasyczny AVR, który jest 8-bitowy. Już nie wspominając o tym, że zaawansowane sterowanie energią pozwala nawet na zasilanie ich... z ogórka kiszonego czy innych owoców śródziemnomorskich (To nie żart!). Kiedyś było to chlubą tej rodziny. Dziś AVR z PicoPower, oraz PIC z XLP ostro depczą jej po piętach, a nawet ją przewyższają w tej dziedzinie.

"Sama ilość pinów PWM oraz analogowych jest duża i na pewno pozwoli na zbudowanie ciekawego urządzenia lub robota."
Z tymi PWM-ami trzeba niestety uważać. Co prawda są układy, gdzie jeden licznik ma aż 7 kanałów PWM (rejestrów porównania), ale zwykle kanał 0 jest w pewnych sytuacjach nieco problematyczny. O ile w seriach F4xxx, F5xxx mamy spore możliwości, to w serii F2xxx już nie jest aż tak różowo.

@wojski: Jeśli chodzi o cenę to MSP430 jako mało popularne są u Nas drogie. Ti też nie rozpieszcza ceną za Lauchpady i tym podobne płytki. Oficjalna cena pokazanego tutaj modelu to 35USD.

cyryllo   17 #3 20.04.2015 12:03

@wojski: na fernelu kosztuje ponad 140zł. W polskich sklepach 230zł. Ja wygrałem swoja na pewnej stronie ;)

  #4 20.04.2015 12:47

Świetny wpis. Co do Energii to dla MSP432 wprowadzili fajną opcję. Każda zakładka kodu w edytorze to osobny wątek w kontrolerze.

anakkin   6 #5 20.04.2015 12:52

2 lata temu zamawiałem takie coś: http://www.ti.com/tool/MSP-EXP430G2
Wygląda, że jest z tej samej rodziny. Co więcej, przesyłka była darmowa, więc jedyny koszt, to $10 za cały dev kit.

cyryllo   17 #6 20.04.2015 13:10

@sprae (niezalogowany): MSP432 jak się nie mylę jest już na cortex-ie M4. Dobrze wiedzieć ;)

Autor edytował komentarz.
  #7 20.04.2015 13:16

@cyryllo: MSP432 jest na M0+ z FPU. I o ile dobrze wszystko zrozumiałem, jest tam dodatkowo rdzeń 430.

cyryllo   17 #8 20.04.2015 13:24

@Anonim (niezalogowany): wg specyfikacji http://www.ti.com/lit/ds/slas826a/slas826a.pdf jest to ARM 32-Bit Cortex-M4F CPU

  #9 20.04.2015 13:42

@cyryllo: Dzięki za wyprowadzenie z błędu. Pamięć już nie ta ;-)

SweetDreams   10 #10 20.04.2015 14:35

@anakkin: Przez jakiś czas była "promocja" i sprzedawali je za 4,99$ (wraz z przesyłką).
Podobnie Chronosy eZ430 za 30$, na które udało mi się załapać :)
http://www.ti.com/tool/ez430-chronos&DCMP=Chronos&HQS=Other+OT+chronos

anakkin   6 #11 20.04.2015 14:42

@SweetDreams: Coś mi się $10 wydawało dużo. Faktycznie na promocję wtedy się załapałem.

arlid   14 #12 21.04.2015 08:08

Trochę jak pasek ze znanego autka :P Tylko kolor nie ten :) Ale fajne, fajne.

cyryllo   17 #13 21.04.2015 09:23

@arlid: No takie tam kolory są na płytce ;) Efekt nie do końca jak z nieustraszonego ale zawsze mogę to poprawić ;)

revcorey   7 #14 21.04.2015 13:39

Mniej popularna bo i przeznaczenie procków texasa(chociaż ten msp430 jest bardziej ogólny) a mianowicie DSP(robiłem pracę mgr. na texasie).
Raczej szkoda marnować procków texasa na arduino, chociaż ten procek jest low-cost i mniej DSP niż inne rodziny texasa.
Ale ciekawa spraw nawet.
Trudność programowania procków texa polega na tym:
-Mało przykładów i informacji dla programistów,
-Dokumentacja taka sobie,
-Jak chcesz coś zrobić to musisz inicjować sporo struktur a tutoriali nie ma. Ale jak się człowiek w to wgryzie(ale trzeba to robić z głową bo tu jeszcze wchodzi w grę optymalizacja kodu).

cyryllo   17 #15 21.04.2015 14:27

@revcorey: No właśnie starałem się znaleźć jakieś przykłady, dokumentacje do tej płytki, ale naprawdę słabo z tym. Dlatego przeleżała ponad rok w szafie, aż przypadkiem znajomy powiedział że można programować je jak w Arduino wiec poszukałem info ;)

  #16 29.04.2015 10:58

@revcorey @cyryllo Nie zgadzam się co do dokumentacji - na stronie TI jest dość obszerna. Przykładów faktycznie za wiele się nie znajdzie. Ale dzięki Energii ich opanowanie powinno być przystępniejsze. :)
A edX Można znaleźć kurs "Embedded Systems - Shape the World " poświęcony TM4C123.

cyryllo   17 #17 29.04.2015 12:46

@Kobura (niezalogowany): No właśnie sama dokumentacja odnośnie bibliotek i funkcji to nie wszystko. Ważne jest aby pokazać jak z tego korzystać, a tego niestety brak.

Dzięki za info o kursie :)

  #18 30.04.2015 11:03

@cyryllo: Cieszę się, że moje informacje czasami są przydatne. :)
Poszperałem trochę po TI i na http://dev.ti.com/ znalazlem trochę przykładów, przede wszystkim do MSP, BoosterPack i różnych devkitów. Ale do TM4C nic tam nie znalazłem. :(