STM32 jako ARDUINO …

STM32 jako ARDUINO …
Razem głosów: 3 co stanowi: 86.67% całości.

Użycie procesorów STM32 w środowisku ARDUINO to sposób na zwiększenie możliwości tego środowiska

przy jednoczesnym zachowaniu łatwości programowania.

Prace nad adaptacją Arduino dla STM32 a zwłaszcza dostepnych tanio zestawów STM32VLDiscovery są w toku.

Na chwile obecna przedstawie tylko podstawowe informacje o pomyśle i zamierzeniach oraz na jakim

etapie stoi cały projekt. Kożystanie z płytek Arduino oraz dostepnego dla nich Arduino IDE jest przepisem na szybki i prosty sposób na rozwijanie aplikacji własnych jak i wbudowanych (examples).

Dzieki istnieniu predefiniowanych funkcji dla portów I/O, komunikacji szeregowej,

timerów i wielu dostępnych szkiców (sketch) przykładowych,

użytkownik nie musi zaprzatac sobie głowy in icjalizacja niskiego poziomu, konfiguracją timerów,

czy też wektorami przerwań, a skupić się na pomysle urządzenia. Niestety ATMega168 czy 328

posiada ograniczone zasoby, jest 8 bitowa i niezbyt szybka.

Nowoczesne 32 bitowe Procesory STM32 na Jądrze Cortex-M3 są szybkie , mają znacznie

wiecej pamieci RAM i Flash , potężny i dobrze udokumentowany podsystem debugowania

za pomoca narzędzi JTAG. Zatem mozliwośc stworzenia prostego dynamicznego API w celu

napisania szybko i prosto programu może byc olbrzymim krokiem.

I tu właśnie jest miejsce na mój pomysł/projekt by użyć nieco zmodyfikowanego API Arduino

tak by móc użyć standartowych szkiców z ARDUINO na potężnych układach 32bitowych z rdzeniem

Cortex-M3. Proces pisania, przesyłania i uruchamiania programu będzie taki sam jak w Arduino tyle tylko,

że użyta plytka nie bedzie ARDUINO, a np testowana platforma STM32VL-Discovery.

Ciekawostką jest to że prostrzych aplikacji bedzie można używać również na starych płytkach ARDUINO.

Potrzebne Składniki do naszej 32Bitowej ZUPY:)

– Sprzęt – tu wybór padł na 2 płytki które są tanie i łatwo dostępne

   1. STM32 Value Line – Discovery

   2. ET-STAMP-STM32

  obie mają wyprowadzone wszystkie porty procesora , sa dostepne w cenie ok 50 pln,

  posiadaja zródlo zasilania 3,3V  , parę led czy przycisków. Nie posiadają własnego interfejsu USB –

  tylko Discovery ma zintegrowany Debuger ST-LINK

  Układ testowy oparłem o druga z wymienionych a prezentuje się tak :

arduino_stm321

Ze względu na użycie plytki ET-STM32 Stamp

Konwerter na USB UART zasila  płytkę napięciem 5V które jest doprowadzone do wbudowanego regulatora 3,3v (ST1117), może być podłączony zarówno do UART2 jak i UART3. Na razie doprowadziłem do tego ze działa na tym układzie szkic , w którym potencjometrem regulujemy wartość na wejściu analogowym , co ustala nam częstotliwość migania diody LED.

Jak widać szkic jest typowym Arduinowskim szkicem:)

Modyfikacja ARDUINO IDE.

Modyfikacja jest konieczna w celu umożliwienia skompilowania kodu dla procesorów ARM

 kożystająć z dostepnego TOOLCHaina. Zmodyfikowane i nowe pliki znajdziecie niebawem na tej stronie.

 Pliki te bedą musiały zostać umieszczone w drzewie katalogowym ARDUINO 0017.

nastepnie trzeba bedzie przebudować pliki IDE. Wstawic odpowiednie Biblioteki oraz specjalny

kod dla układów STM32 który bedzie umieszczony w sekcji hardware i np bedziemy wybierac BOARD

 o nazwie STM32 ARDUINO32 w menu TOOLS :)

ToolChainem któr zamiesza w  i stworzy folder CORES dla naszego STM32 i pozwoli nam na skompilowanie

 kodu dla  procesorów z jądrem CoRTEX-M3 moze byc np. testowany w tej roli Codesourcery G++ Lite Edition

 dla ARM w wersji EABI.  Można go pobrać ze strony projektu. Sposób instalacji a może juz gotowe CORE

 przedstawie niebawem.

BOOTLOADER:


Napisałem mały bootloader, starająć sie uzywac podobnych argumentów ja w avrdude, do którego są wysyłane opracowane szkice po kompilacji. Bootloader ten równierz będzie dostepny tutaj.

PRAWIE GOTOWE:


Oznacza to ze projekt jest mniej wiecej gotowy , ale jest parę kłopotów i problemów. Należy tez zwrócić uwage

na to iż numeracja pinów będzie inna

Arduino sketch           Płytka STM32
digital pin  0..15     pin PA0 .. PA15
analog pin   0..7      pin PA0  .. PA7
analog pin   8,9       pin PB0,PB1
analog pin   10..15    pin PC0  .. PC5

Pin 9 i 10 (PA9 i PA10)  są uzywane przez USART1, i sa polaczone z FTDI i nie powinny byc uzywane w projekcie.
Musimy też ręcznie przełaczać sie miedzy trybem bootloadera , a normalnym – robi to niebieski przełacznik zamontowany na płytce , a RESET resetuje wszystko:) i niestety przed wgraniem i po wgraniu programu trzeba reset wywołać ręcznie
pin D13 gdzie jest podłaczony LED uzyty w przykładzie BLINK z arduino / examples odpowiada naszemu PA13. Program ładuje się bezproblemu mimo kilku niedogodnień , ale będe dążył do tego by działało wszystko jak w 8bitowym ARDUINO
Jak macie jakieś sugestie czy pomysły Piszcie :)

 No i już można bedzie pobrać gotowe pliki dla Arduino IDE 021, dzieki którym można zaprogramować płytki :

STM32Stamp oraz Discovery


 Zapraszam do  do czytania drugiego artykułu gdzie wszystko sie wyjaśni i będzie można zacząć experymentować ,

tymczasem zapraszam do komentowania i niebawem nasza nowa płytka SunDuino32  z procesorem stm32F103.

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay