Kurs XMEGA: pierwszy program

Starożytny zwyczaj nakazuje zacząć naukę programowania mikrokontrolerów od mrugającej diody! Tak więc i my, jako nasz pierwszy program na ATxmega zrobimy mrugającą diodę.

Pliki do pobrania:

Pierwszy projekt

Uruchamiamy Atmel Studio 6 (jeśli jeszcze go nie masz, to zapraszam na stronę Atmel Studio 6 download). Po uruchomieniu programu, powinniśmy zobaczyć taki ekran:

Pierwszy program w XMEGA

Klikamy New Project. Otwiera się okno, w którym musimy nazwać nasz nowy projekt oraz podać, w jakim katalogu ma być zapisany. Wpisz tu, co uznasz za stosowne. Oprócz tego wybieramy GCC C Executable Project.

Atmel Studio nowy projekt

W kolejny kroku wybieramy procesor, jaki nasz interesuje. W module X3-DIL64 znajduje się ATxmega128A3U. W tym oknie możemy także ściągnąć aktualną dokumentację.

Atmel Studio wybór procesora

Po kliknięciu OK zostanie utworzony projekt i pojawi się szablon, zawierający szkielet prostego programu. Skasuj go i skopiuj poniższy kod w jego miejsce. 


#include <avr/io.h>
#include <util/delay.h>

int main(void) {
    
    PORTE.DIR = 0;                  // caly port E jako wejście
    PORTF.DIR = 0b11111111;         // caly port F jako wyjście
    
    uint8_t licznik = 0;            // zmienna sterująca mrugającymi diodami
    
    while(1) {
        licznik++;
        PORTF.OUT = licznik;
        if(PORTE.IN & (1<<5)) {     // jeśli przycisk FLIP zwolniony
            _delay_ms(100);
        } else {                    // jeśli przycisk FLIP wciśnięty
            _delay_ms(50);
        }
    }
}
 

Aby skompilować program, wystarczy wcisnąć klawisz F7. W konsoli w dolnej części okna, powinniśmy zobaczyć Build Succeeded. Aby sprawdzić ile pamięci zajmuje nasz program, trzeba przesunąć tekst trochę do góry lub rozciągnąć okno konsoli. 

XMEGA build succes

Programowanie przez FLIP

Procesor w module X3-DIL64 ma wbudowany bootloader, dzięki któremu możesz szybko wystartować z procesorami XMEGA bez potrzeby posiadania programatora PDI. Wystarczy zwykły kabel MiniUSB, taki jak do telefonu czy innych urządzeń. Ściągnij Atmel Flip ze strony producenta i zainstaluj.

Po podłączeniu płytki do komputera, nic nie powinno się dziać, bo uruchomił się ostatnio wgrany program. Aby uruchomić bootloader, należy wykonać taką sekwencję:

  • Wciśnij jednocześnie RESET i FLIP
  • Puść RESET, cały czas trzymając FLIP
  • Komputer powinien wykryć nowe urządzenie USB
  • Puść FLIP
  • Procesor jest gotowy do otrzymania nowego programu

Jeśli system zapyta się o sterowniki, wybierz automatyczne wyszukiwanie w katalogu C:/Program Files/Atmel. W Menedżerze urządzeń płytka powinna się przedstawiać jako ATxmega128A3U.

Manager urządzeń

Uruchamiamy program Atmel FLIP. Następnie klikamy ikonkę pierwszą z lewej i wybieramy procesor ATxmega128A3U. Dalej, wybieramy Select Communication Medium i oczywiście wybieramy USB Open. Wszystkie opcje programu powinny się uaktywnić.

XMEGA Atmel FLIP

Klikamy ikonkę Load Hex File z czerwoną strzałką skierowaną w stronę książki. Musimy teraz wskazać plik do wgrania do procesora. Znajduje się on w katalogu projektu w /Debug/xmega-demo.hex. Ważne! Ścieżka, nazwy katalogów i plików nie powinny być nadmiernie skomplikowane i nie powinny zawierać polskich znaków. Następnie klikamy RUN. Niniejszym program został przesłany do procesora, co powinno zająć mniej niż sekundę. Ostatnia rzecz to kliknięcie przycisku Start Application, by wyłączyć bootloader, odłączyć USB (nie trzeba odpinać kabla), a program wystartuje samoczynnie.

Testujemy

Program testowy generuje różne sygnały o niewielkiej częstotliwości na porcie F. Potrzebujemy zatem diodę z rezystorem, bo zobaczyć te sygnały na własne oczy :) Można ją podłączać na różne sposoby do dowolnego pinu portu F. Po wciśnięciu przycisku FLIP, dioda powinna migać dwukrotnie szybciej.

Pierwszy program w ATxmega

Poniżej udostępniam cały testowy projekt oraz inne ważne rzeczy:

Pliki do pobrania: