Raspberry

wtorek, 3 stycznia 2017

000_F0 Niezbędne programy, dokumentacje i pierwszy projekt

Często czyta się o "natłoku dokumentacji" do STMów. W przypadku AVRów potrzebowaliśmy datasheet + erratę. Tutaj jest nieco inaczej. Potrzebujemy:
- dokument DM00088500 - jest to datasheet rodziny F030, w późniejszych częściach będę go nazywał "opis"
- dokument RM0360 - jest to opis rejestrów rodzin F030 i F070 zwany dalej jako "rejestry"
- dokumentację rdzenia M0
Wszystkie dokumenty znajdziemy na gicie w folderze "Dokumentacje".

ST oferuje mnóstwo poradników dotyczących poszczególnych peryferii np kalibracji ADC, wbudowanego RTCka itp. Dostępne są one tutaj: link.

Z programów przyda się  STM32 ST-LINK Utility oraz STM-Studio, później może też CUBEMX.

Będziemy korzystać z Atollica, można go pobrać stąd:  http://atollic.com/

Co do sprzętu - najpierw będziemy pracować na płytkach z STM32F030F4P6. Pasują one na dwie połączone płytki stykowe. Warto dorobić sobie przewód do programatora. Mała podpowiedź - ja u siebie przerobiłem trochę złącze programujące i dodałem pin resetu.
Wygląda to tak, jako programator - STM32L4-Discovery:


Krótki opis założenia pierwszego projektu:
1. Przy uruchomieniu podajemy ścieżkę, gdzie będzie nasz workspace z projektami
2. Tak prezentuje się nowo otwarty Atollic

3. Klikamy File->New->C Project

4. Wpisujemy nazwę projektu, wybieramy typ (Embedded C Project) i klikamy next

5. Szukamy tutaj naszego mikrokontrolera i klikamy next

6.  W następnym oknie również klikamy next
7.  Wybieramy nasz programator (ST-link) i klikamy finish

8. Atollic utworzył nam katalog z projektem i niezbędnymi plikami dla naszego projektu. Jeśli mamy podłączony mikrokontroler i programator kliknijmy na ikonkę robaczka - Debug

9. Zatwierdzamy utworzenie nowego profilu do debugowania
10. Otworzy się nowa perspektywa z oknem debugowania. Wiele okien jest niedostępnych z racji wersji Lite, ale nie będą nam potrzebne na tym etapie, więc możemy je pozamykać i ułożyć po swojemu.

11. Klikamy play i program ruszy, obecnie nic mądrego nie robi, ale to tylko test połączenia.

Niezbędne dokumentacje oraz projekt testowy znajdują się na gicie ( https://github.com/dambo1993/kurs_f0 ).

piątek, 23 grudnia 2016

Hello World!

Witam w mojej małej próbie napisania kursu programowania mikrokontrolerów STM32.

Dlaczego?
Aby usystematyzować swoją wiedzę, przy okazji może odkryję coś nowego/przydatnego i oczywiście - może komuś się to również przyda.

Dla kogo?
Założenie jest proste - dla tych, którzy już wcześniej mieli do czynienia coś z mikrokontrolerami, chociażby z arduino. Nie będę opisywał dokładnie jak działa SPI itp - tego jest w necie pełno. Skupimy się na czymś, czego jest o wiele mniej - programowanie na rejestrach. Zapewne wielu z was myśli/słyszało, że 32bitowe mikrokontrolery na rejestrach to coś najgorszego - udowodnię, że tak wcale nie jest (oczywiście, jeśli ktoś woli inaczej - proszę bardzo). Stworzymy sobie biblioteki do obsługi różnych peryferii, urządzeń. Często pojawiać się będą przyrównania do mikrokontrolerów AVR.

Na czym?
Wstępnie będziemy pracować na płytkach tego typu:
z mikrokontrolerem STM32F030F4P6 z rdzeniem M0 w bardzo przyjaznej obudowie TSSOP20 - pokazuję go dlatego, że jest to bardzo fajny zamiennik najpopularniejszych atmeg ( 8, 88, 328p ), a jest od nich tańszy i ma kilka lepszych funkcji.

Druga płytka zawiera procek STM32F103C8T6 jako przedstawiciela rodziny z rdzeniem M3. Prezentuje się tak:
Obie płytki można nabyć na ebayu itp za śmieszne kwoty. jako programator można użyć dowolnej płytki DISCOVERY/NUCLEO - mamy tam wyprowadzone złącze programatora ST-Link (trzeba jedynie rozewrzeć zworki łączące go z układem na płytce).

W czym?
Mamy szeroki wybór środowisk na STMy - ja skupię się na darmowej wersji Atollic True Studio. Różnica między nią, a płatną to głównie opcje dotyczące zaawansowanego debugowania - nam w zupełności wystarczą podstawowe.

Skąd pobrać materiały?
Wszystko będzie wrzucane na mojego gita - https://github.com/dambo1993

Wszystkie ważne rzeczy będą podkreślane i utworzę potem ich listę. Będą oznaczane np. "DO ZAPAMIĘTANIA #xx".

Luźne przemyślenia:
  • Ogólnie nie wiem skąd w ludziach strach przed poznaniem nowych procków. Jeśli zna się już podstawy, wie jak działają np AVRki to już mamy dużą część za sobą, wiemy jak poruszać się po notach katalogowych, poznaliśmy już typowe problemy z mikrokontrolerami odnośnie filtracji, podciągnięć resetu itp. Oczywiście zabierze nam to bardzo dużo czasu. Pewnie każdy ma już zbiór swoich ulubionych bibliotek i nowe procki wymagają ich ponownego przepisania na daną platformę. Jednak nie jest to nic niemożliwego!
  • Dużo rzeczy "naukowych" będzie linkowanych, jeśli uznam, ze sam mądrzej tego nie napiszę, ewentualnie dodam jakiś komentarz wyjaśniający coś/wskazujący na co zwrócić uwagę
  • wszelka KONSTRUKTYWNA krytyka mile widziana
  • ta lista może się zmieniać :)

UWAGA! - bardzo mile widziany feedback! chcesz mnie wyzwać za głupoty, nielogiczne zdanie itp? Śmiało! Wyciągną z tego wnioski i kolejnym razem będzie lepiej :)