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:
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 :)
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 :)