To co mnie zachęciło do wyboru tej serii MCU, to m.in fakt, że ta seria została obłaskawiona przez firmę Keil w swoim komercyjnym produkcie uVison. I możemy bezpłatnie używać tego profesjonalnego narzędzia a jedynym ograniczeniem jest rozmiar kodu do 256 kB czyli całkiem sporo. Zaletą STM32G0 jest stosunkowo szybkie prototypowanie z uwagi m.in na fakt, że mamy tylko dwa piny na zasilaniu co upraszcza projekt płytki. STM32G0 dostępne jest również w małych obudowach co jest również zaletą.
W mojej koncepcji zapoznania się z STM32G0 wybieram stary sprawdzony sposób, który daje mi najwięcej korzyści w progresie poszerzania wiedzy na temat MCU i najwięcej frajdy.
Czyli sam strugam płytkę :), dzięki czemu już na wstępnym etapie zapoznaję się bliżej z MCU. 98,1% ludzi zapewne wybrała by tutaj zakup płytki Nucleo bo tak jest najprościej i najwygodniej. Ale tam gdzie jest za dużo wygody to nasz mózg tępieje a poza tym szybciej się nudzimy, no takie jest moje zdanie.
Wybrany przeze mnie MCU to konkretnie STM32G071KBT6 w obudowie 32-pin. . Płytkę , którą wykonam zaopatrzę w dwa złącza Mikroelektroniki na dodatkowe moduły . Do programowania MCU mam zamiar użyć najlepszych dostępnych narzędzi czyli J-Linka firmy SEGGER np. tej małej pchełki J-Link EDU Mini. Na płytce pojawi się standardowe gniazdo w pełnym wymiarze JTAG. Środowiskiem w jakim mam zamiar porozmawiać z STM32 będzie Seeger Embeded Studio czyli ultra szybkie środowisko do programowania ARM-ów . To profesjonalne narzędzie programistyczne jest całkowicie darmowe dla zastosowań niekomercyjnych i bez żadnych ograniczeń np. co do wielkości kodu. Odrzucam na starcie bibliotekę HAL m.in dlatego, że widziałem na własne oczy jak to potrafi nieźle przymulić sprzęt ,niech używają jej ci co tego potrzebują lub ci co nie potrafią inaczej.
Moje pierwsze przymiarki do projektu płytki :
Na płytce umieściłem gniazdo do modułu HC5, kilka modułów ostatnio sobie takich sprawiłem (dziękuję Chris bo to dzęki tobie je mam :) ) , więc gdzieś je muszę wetknąć :). Będzie przyczynek aby coś uruchomić na płytce :).
Projekt płytki poszybował do fabryki płytek. Czekam na efekt mojego rękodzieła.
W międzyczasie przeglądam dokumentację czyli manual reference i próbuję poczuć ten MCU.
W oczekiwaniu na płytki . Pokażę jak przygotować środowisko Seeger Embeded Studio do rozmowy z STM32G0. Po tym linkiem ściągamy sobie spakowaną paczkę z programem. Ja wybieram paczkę dla systemu Linux 64bit i na przykładzie tego systemu pokażę jak przygotować sobie środowisko i programator do współpracy z STM32G0. Po rozpakowaniu paczki otrzymamy folder o dosyć długiej nazwie, ja zmieniam nazwę folderu na krótką np. segger. W środku folderu mamy dwa pliki INSTALL.txt i install_segger_embedded_studio. Pierwszy plik to instrukcja instalacji a drugi to plik instalacyjny.
Czynności jakie ja wykonuję w konsoli to :
cd /home/wat/Pobrane/segger/ - ustawiam ściężkę dostępu do plików w katalogu segger
sudo chmod u+x install_segger_embedded_studio - nadaję uprawnienia
sudo ./install_segger_embedded_studio - uruchamiam instalację
Środowisko mamy zainstalowane teraz zajmiemy się programatorem. Programator jakiego ja używam to J-Link Edu Mini , bez problemu zakupimy go na naszym rynku za ok 80 zł. Jest on wart każdych pieniędzy :). Zaprogramujemy nim prawie dowolnego ARM-a od dowolnego producenta. Miałem już przyjemność działania z nim i MCU ATSAM ze stajni Microchipa. Dodatkowo warto dokupić kabelek przejściówkę na pełnego JTAG-a , bez problemu dokupimy u nas taki kabelek.
Aby J-Link był widziany przez system i nasze IDE ,musimy doinstalować specjalną paczkę o nazwie J-Link Software and Documentation pack for Linux, DEB installer, 64-bit
Po ściągnięciu paczki klikamy ją i uruchamia się proces instalacji, w sumie bez naszej ingerencji. Po instalacji paczki podpinamy do PC nasz programator za pomocą kabla USB. Zdarzy się, że kabel USB może być np uszkodzony i system nie zobaczy podłączonego urządzenia USB, wtedy w konsoli wpiszmy komendę lsusb i pokaże się lista wszystkich urządzeń USB podpiętych do naszego PC, wśród nich powinien być nasz programator SEGGER tak jak poniżej na obrazku :
Jeśli nasz programator jest na liście urządzeń, odpalamy ponownie konsolę i wpisujemy jak poniżej :
Od tego momentu nasz programator powinien być widoczny w środowisku SEGGER.
Odpalamy środowisko SEGGER-a, pierwsze co nas uderzy po twarzy to niesamowita prędkość od startu do gotowości do pracy, nieosiągalne przez kobyłę Eclipsową STM32CUBE IDE. Po uruchomieniu środowiska zobaczymy przykładowy projekt, jakieś tam bzdety. Nie przejmować się surowością tego co zobaczymy to tylko pozory, tutaj kryje się moc . Pierwszą czynnością będzie doinstalowanie paczki z naszym MCU czyli STM32G0. W tym celu wybieramy w górnym menu Tools - > Package Manager , wyskoczy nam okienko o nazwie Select Packages, wyszukujemy w nim STM32G0 i klikamy dwa razy w pole po prawej stronie aż wskoczy nam napis Install
Potem na dole okienka klikamy Next , Next , Finish. Od tej chwili nasze programy będą widziały STM32G0. Ostatnim krokiem konfiguracji środowiska będzie wyświetlenie potrzebnych ikon narzędziowych, na starcie są one ukryte. W tym celu wybieramy z górnego menu View -> Toolbars -> Standard, Build, Debug. Pod górnym menu uaktywnią się ikonki narzędziowe jak poniżej :
picmajster.blog@gmail.com
Z pic32mm w tme też nie jest dobrze , ogólnie Microchip serię MM olał i widzę po twoim artykule że zmienia rdzeń na cortex-m0+ . Kompilator dla -O3 płatny ,dokumentacja pic32mm z błędami dlatego stm32go uważam za dobry ruch
OdpowiedzUsuńNie będę z Tobą polemizował Szanowny czytelniku ani się z Toba licytował co jest gorsze a co lepsze i co jest lepszym wyborem a co nie i ewentualnie dla kogo. Takich dyskusji mamy pełno na elektrodzie i niech one tam pozostaną.
OdpowiedzUsuńA płytki w postaci gerberowej będą dostępne ?
OdpowiedzUsuńNie wiem jeszcze, nie zdecydowałem. Nie wykluczone , że płytki np. zmontowane wystawię na portalu aukcyjnym.
OdpowiedzUsuń