Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka

ghost666 29 Mar 2017 21:42 5721 0
  • Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka
    Spośród osób korzystających z modułu SAMD21 od Sparkfun, sporo może być takich, które zainteresowane są wgraniem własnego bootloadera do znajdującego się na pokładzie mirkokontrolera ATSAMD21g18, aby móc rozwijać własne oprogramowanie na tym systemie. Podobnie zrobić można, gdy chcemy układ ten zastosować we własnych projektach, zaprojektowanych od podstaw samodzielnie. Poniższy opis przeprowadzi nas krok po kroku przez opisaną operację.

    Jakkolwiek opis ten jest dedykowany dla modułu SAMD21 od Sparkfun Electronics to z powodzeniem zaadoptować go można do innych urządzeń wyposażonych w ATSAMD21g18, takich jak Adafruit Feather M0 czy Arduino Zero. Postępujemy z nimi podobnie jak z modułem od Sparkfun, aby wgrać własny bootloader.

    Krok 1: Potrzebne narzędzia

    Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka


    1) Sprzęt do lutowania. Opis w artykule zakłada, że posiadamy narzędzia do lutowania (np. stację lutowniczą) i umiemy się nimi posługiwać. Jakkolwiek do zlutowania jest tylko jeden element, to trzeba umieć to zrobić.
    2) Moduł Sparkfun SAMD21.
    3) Programator J-Link EDU, albo dowolny inny zgodny ze standardem SWD.
    4) Adapter Olimex JTAG z 20 pin 0,1" do 10 pin 0,05".
    5) Złącze 10 pozycyjne o rastrze 0,05" do montażu przewlekanego.
    6) Kabel microUSB.

    Ponadto potrzebować będziemy oprogramowanie - Arduino IDE, które pobrać można tutaj .

    Krok 2: Zrozumieć Bootloader i SWD

    Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka


    SWD to szeregowy interfejs służący do debugowania pracy mikrokontrolera (ang. Serial Wire Debug). Zrozumienie jak działa on i bootloader układu ATSAMD21g18 jest kluczowe, jeśli chcemy zastosować ten element na własnej PCB w jakimś urządzeniu.

    Zacznijmy od Bootloadera. Jest to fragment firmware (oprogramowaniu dedykowanego do konkretnego sprzętu) odpowiedzialny za wgrywanie do układu oprogramowania dedykowanego do konkretnej aplikacji. Jeśli kupujemy układ ze sklepu, a nie wlutowany w płytkę uruchomieniową, to musimy wgrać do niego bootloader, aby móc ładować do układu programy poprzez interfejs kompatybilny z Arduino IDE.

    Z kolei SWD to wykorzystywany przez ATSAMD21g18 interfejs debuggera. Procesor ARM Cortex M0+ w tym mikrokontrolerze programowany on może być przez interfejs SWD. Programowanie układu przez ten interfejs wymaga dedykowanego urządzenia, takiego jak J-Link EDU lub ATMEL ICE BASIC. Większość procesorów z rodziny ARM Cortex-M wymaga zewnętrznych programatorów tego rodzaju.

    Aby w module SAMD21 dostać się do 10 pinowego interfejsu SWD musimy wlutować odpowiednie gniazdo w płytkę. Nie wszystkie piny są nam potrzebne. Krytyczne są:

    * VCC - napięcie 3,3 V
    * GND - dwa piny masy
    * SWDCLK - zegar
    * SWDIO - dwukierunkowy interfejs szeregowy.

    Krok 3: Podłączanie wszystkiego razem

    Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka


    Pierwszą rzeczą, jaką musimy zrobić, to wlutowanie gniazda SWD w moduł SAMD21. Możemy nawet, jeśli nie mamy złącza, wlutować pojedyncze kabelki w pola lutownicze i następnie podłączyć je do programatora w odpowiedni sposób. Następnie podpinamy do wlutowanego gniazdka kabelek Olimexu z przejściówką do programatora, jaki opisano powyżej. Finalnie podpiąć możemy programator do komputera poprzez port USB.

    Krok 4: Kasowanie pamięci ATSAMD21g18

    Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka


    Do wgrania bootloadera wykorystać musimy oprogramowanie ATMEL Studio. Po otwarciu wchodzimy do narzędzi i wybieramy Device Programming (lub naciskami Ctrl+Shift+P). Wtedy otworzy się okienko programatora.

    W okienku programatora wybieramy jaki mamy programator kub debugger - J-Link. Wybieramy programowanie po SWD, klikamy Apply, odczytujemy sygnaturę układu i po upewnieniu się, że mamy wybraną wersję 3,3 V klikamy Erase, co skasuje zawartość pamięci układu.

    Krok 5: Wgrywanie bootloadera

    Bootloader dla ATSAMD21g18 z wykorzystaniem J-Linka


    Pod tym linkiem na repozytorium znajdziemy bootloader, który możemy wgrać. Aby to zrobić klikamy:

    Najpierw w Fuses i wybieramy program do wgrania.To zweryfikuje ustawienia rejestrów wewnętrznych mikrokontrolera.

    Następnie programujemy układ naciskając na przycisk Burn. Abyśmy mogli to jednak zrobić wybrać musimy odpowiedni Firmware. W menu wybieramy pliki jaki wypakowaliśmy z pliku ZIP pobranego z GitHuba, najważniejszy jest plik z wsadem do układu - samd21_sam_ba_sparkfun.bin.

    Po zapisaniu programu do układu system zweryfikuje poprawność zapisu i gotowe! udało nam się z powodzeniem wgrać nowy Bootlader do układu.

    Źródło: http://www.instructables.com/id/ATSAMD21g18-Bootloader-With-J-link-Debugger/


    Fajne!
 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME