FREEBOARD W MBED
Jako że mamy ekspansję wszelkiego rodzaju ułatwiaczy programistycznych i środowisk on-line
Warto wiedzieć że nasza płytka Freeboard spisze się pod środowiskiem i kompilatorem embed.com
Głównie dlatego że jest w duże mierze zgodna z FRDM-KL25z ale .. żeby nie było uprzedzam nie jest tak łatwo.
Głowna zgodność jaką mamy to oczywiście mikrokontroler którym jest KL25Z128xxx oraz zgodność pinowa jak też podłączenie diody RGB. Niema jednak programatora/debugera OpenSDA , ale za to jest złącze JTAG/SWD, Niema też przycisku RESET, a zamiast Touch Slidera do kanałów TSI podłączone sa 2 dodatkowe Diody LED , znajdziemy też Slot karty SD co jest bardzo przydatne. Podobnie jak wyprowadzone SPI i I2C oraz inne przydatne drobiazgi.

W każdym razie mamy możliwość pisania na naszą płytkę programów w środowisku popularnego internetowego środowiska wraz z kompilatorem jakim jest MBED. Jednak czeka nasz mały kłopot w kwestii programowania. Możliwości mamy 2:
1. Użycie JTAGA -- np. Segger J-Link EDU i programu Segger J-Flash Lite
2. Użycie Bootloadera
Ja się skupię na J-Linku gdyż jest bardzo wygodny w użytkowaniu i szybki. W tym też poście pokażę na szybko jak zacząć działania z naszym Freeboardem pod Mbed

Zatem zaczynamy … całkowicie od zera dla początkujących …
Wchodzimy na stronę :
https://developer.mbed.org/
jeśli jesteśmy zarejestrowani to się logujemy i uruchamiamy Compiler:
--- wybieramy płytkę FRDM-KL25Z
Tu tworzymy nowy pusty projekt Freeboard 1 i nowy plik main.cpp jak widać wyżej
Na początek zanim napiszemy program zapoznajmy się z pinami i ich nazwami -- w sumie to najlepiej pobrać dokumentację płytki :
http://dl.btc.pl/kamami_wa/kinetis_freeboard.pdf gdzie znajdziemy schematy piny i opisy
http://dl.btc.pl/kamami_wa/FREEboard_connectors.pdf opis pinów który warto sobie nawet na początku wydrukować .
…:: Pierwszy program
W embed piszemy takim swego rodzaju C++ bardzo podobnym do języka Arduino co wielu pomoże się szybko odnaleźć w tym środowisku jak też języku. Tu by się odnieść do konkretnego pinu wiec dla uproszczenia i w embed piny mają łatwe do przyswojenia nazwy aliasów , a nasza płytka dodatkowo przypomina wręcz Arduino fizycznie co znacznie nam ułatwia sprawę


Możemy też kożystać ze ściągi dla FRDM-KL25Z gdyż pinowo mamy pełną zgodność, a ściąga jest do pobrania pod adresem:
http://developer.mbed.org/platforms/KL25Z/
Gdy już znamy piny ożywmy naszą płytkę w kilku podstawowych programikach wykorzystując podstawowe aplikacje i metody interakcji mikrokontrolera z użytkownikiem i vice versa
1. LED BLINK
Ten program to swoiste Hello World w świecie mikrokontrolerów gdyż zamigamy diodą :
Cały nasz program składa się z kilku linijek i wygląda następująco i powoduje miganie Czerwonej DIODY LED:
- 1. #include "mbed.h"
- 2.
- 3. DigitalOut myled(LED1);
- 4.
- 5. int main() {
- 6. while(1) {
- 7. myled = 1;
- 8. wait(0.2);
- 9. myled = 0;
- 10. wait(0.2);
- 11. }
- 12. }
pamiętając że nasz KL25Z da sobie radę z 5mA poboru prądu ciągłego z pinu , a 20 chwilowego , nie więcej jednak niż 100mA na cały port. Tak więc łatwo uszkodzić mikrokontroler.
Dlatego też używając typowej diody LED która ma spadek 1,7V(2V max) i pobór 2mA (10mA max) łatwo policzymy że dla 5mm diody Czerwonej przy 3,3V-1,7V=1.6V przy prądzie 2 do 4mA łatwo już z prawa oma obliczyć że R = U / I = 1.6V / 2mA = 800 om, ale 470 om wygląda przyzwoicie i mieści się w granicach a jednocześnie da nam odpowiednią jasność diody do naszych zabaw.
Program jest na tyle prosty, że tłumaczenie go mija się z celem , zatem przystępujemy do kompilacji czyli klikamy na przycisk Compile i po chwili otrzymamy plik Freeboard.bin który wgrywamy do naszego mikrokontrolera przy pomocy bootloadera , lub jak zapowiedziałem programem J-Flash Lite:
W którym najpierw ustawiamy :
Device = MKL25Z128xxx4 // nasz mikrokontroler
Interface = SWD // właśnie przez Serial Wire Debuger będziemy programować nasz MCU
Speed = 1000 // szybkość programowania możemy zmienić ale i tak jest szybko

I klikamy OK
W następnym oknie interesuje nas pole Data File w którym wskazujemy nasz plik bin:

Możemy tez wykonać kasowanie Mikrokontrolera przyciskiem Erase Chip , oraz gdy wybraliśmy plik BIN wgrać program do mikrokontrolera klikając Program Device i po chwilce zobaczymy okienko:

I nasz mikrokontroler jest zaprogramowany.
Hmm no tak , ale nie działa

1. Odłączyć zasilający przewód USB i podłączyć i już miga radośnie czerwona DIODA , ale sposób jest mało elegancki i szybko zabijemy gniazdo USB
2. Jako użytkownicy J-Linka możemy użyć programu J-Link Commander wpisując w konsoli programu komendy : r - czyli reset i g – czyli go .
3. Dorobić sobie przycisk RESET
Gdy wybraliśmy opcję numer 3 mamy łatwe zadanie pin RESET jest wyprowadzony na złącze JP5 i jest na pinie 6 oznaczony na naszej ściądze od pinów jako nRES :

Wystarczy ten pin zewrzeć z GND i mamy RESET


- 1. #include "mbed.h"
- 2.
- 3. DigitalOut myled(LED_RED);
- 4. DigitalIn button(D2);
- 5. int main() {
- 6. button.mode(PullUp);
- 7. while(1) {
- 8. myled = button;
- 9. }
- 10. }

w wierszu 4 widzimy iż pin D2 nazwany dla „niepoznaki” button ustawiamy jako WEJŚCIE gdyż właśnie będziemy na nim odczytywać STAN . Aby jednak mieć pewność , ze jest tak jak powinno czyli przyciśnięcie przycisku spowoduje podłączenie do D2 stanu LOW (GND) w linii 6stej włączamy wewnętrzne rezystory podciągające PullUp (wymuszające stan HI) co spowoduje że gdy naciśniemy przycisk zmieni się stan pinu D2 z HI na LOW i tym samym zaświeci nasza dioda
Program 3ci z tych najprostszych to odczyt wartości analogowych . Tak tu posłużymy się przetwornikiem ADC i potencjometrem

Środkowy pin potencjometra (suwak) podpinamy do A0 , a pozostałe 2 jeden do GND zaś drugi do 3V3
Nasz program również nie jest skomplikowany i prezentuje się następująco:
- #include "mbed.h"
- AnalogIn potencjometr(A0);
- PwmOut led(LED1);
- int main() {
- led.period(0.001);
- while(1) {
- led=(float)(potencjometr);
- wait(0.01
- }
- }
Nasz program odczytuje wartość pojawiająca się na suwaku potencjometru obrotowego na pinie A0 (AnalogIn 0) następnie wartość ta jest podstawiana na wyjście PWM i steruje jasnością naszej Diody LED sami zobaczcie
I to by było na tyle jak szybko i prosto zacząć z Freeboard w MBED
Miłej Zabawy