LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

[embedded world 2014] Płytka uruchomieniowa XMC 2Go z mikrokontrolerem XMC1100 (Cortex-M0) – pierwsze kroki

Stworzenie własnej aplikacji krok po kroku

Udostępniony przez firmę Infineon kod źródłowy został napisany w oparciu o bezpośrednią modyfikację rejestrów mikrokontrolera. Ten klasyczny sposób tworzenia oprogramowania dla mikrokontrolerów wymaga od programisty bardzo dobrej znajomości rejestrów układu. Zapoznanie się z nimi jest czasochłonne. Firma Infineon chcąc wyjść naprzeciw oczekiwaniom deweloperów oprogramowania i uprościć, a tym samym przyspieszyć proces tworzenia aplikacji, zintegrowała w środowisku DAVE 3 generator kodu źródłowego. Dzięki niemu programista w ogóle nie musi być zaznajomiony z rejestrami mikrokontrolera. Proces tworzenia oprogramowania wygląda następująco. Z listy wszystkich dostępnych peryferiów mikrokontrolera użytkownik wybiera te, które chce użyć w aplikacji, a następnie ustawia ich parametry pracy i przyporządkowuje wyprowadzenia układu (o ile jest taka potrzeba). Wszystko odbywa się przy wykorzystaniu graficznego interfejsu użytkownika. W następnym kroku generowany jest dla mikrokontrolera kod konfiguracyjny zgodny z wybranymi peryferiami i ich ustawieniami. Ponadto generator tworzy kod źródłowy będący interfejsem programistycznym pozwalającym na korzystanie z peryferiów. Dzięki temu programista może nie tylko w wygodny sposób skonfigurować zasoby wewnętrzne mikrokontrolera, ale również sterować nimi. Przykładowa aplikacja dla płytki XMC 2GO stworzona zostanie właśnie z użyciem generatora kodu. Aplikacja ta będzie miała taką samą funkcjonalność co aplikacja udostępniania przez firmę Infineon.

Tworzenie aplikacji należy rozpocząć od utworzenia nowego projektu programistycznego (zakładka File -> New -> Dave Project w z menu głównym DAVE 3). W nowo-otworzonym oknie (rysunek 10) wskazać trzeba typ projektu. Projekt wykorzystujący generator kodu to DAVE CE Project. Po jego zaznaczeniu konieczne jest wpisanie nazwy projektu (pole Project Name). Po wciśnięciu przycisku Next należy wskazać model używanego mikrokontrolera. Czynność utworzenia projektu kończy wciśnięcie przycisku Finish. Stworzony projekt zostanie automatycznie wczytany do przestrzeni roboczej DAVE 3.

Rys. 10. Tworzenie nowego projektu w DAVE 3

Rys. 10. Tworzenie nowego projektu w DAVE 3

Na tym etapie można przystąpić do korzystania z generatora kodu źródłowego. W pierwszym kroku należy zwrócić uwagę na okno App Slelection View. Jest to lista wszystkich dostępnych komponentów oprogramowania (DAVE Apps), które odpowiadają peryferiom mikrokontrolera. Spośród nich należy poprzez dwukrotne kliknięcie wybrać następujące komponenty: IO003 (dwa komponenty), UART001 oraz SYSTM001. Wybrane komponenty wyświetlone zostaną w oknie S/W App Connectivity View (rysunek 11). Aby otworzyć okno konfiguracyjne danego komponentu, należy na niego dwukrotnie kliknąć. W przypadku tej aplikacji konieczne jest wykonanie konfiguracji portów I/O (zmiana trybu pracy na wyjściowy) oraz interfejsu UART (zmiana prędkości transmisji na baudrate 11500). Widok okien z prawidłową konfiguracją tych komponentów pokazano na rysunku 12.

Rys. 11.Widok używanych aktualnie w projekcie programistycznym komponentów oprogramowania

Rys. 11. Widok używanych aktualnie w projekcie programistycznym komponentów oprogramowania

 Rys. 12. Okna konfiguracyjne komponentów oprogramowania

Rys. 12. Okna konfiguracyjne komponentów oprogramowania

W następnym kroku należy przyporządkować wyjścia portów I/O oraz interfejsu UART do wyprowadzeń mikrokontrolera. Aby to zrobić, należy wybrać z menu głównego DAVE 3 zakładkę DAVE -> Manual Pin Assignment. Poprawne przyporządkowanie wyjść peryferiów do wyprowadzeń pokazano na rysunku 13.

Rys. 13. Widok okna pozwalającego przyporządkować wyjścia/wejścia peryferiów do wyprowadzeń mikrokontrolera

Rys. 13. Widok okna pozwalającego przyporządkować wyjścia/wejścia peryferiów do wyprowadzeń mikrokontrolera

Po wykonaniu tej czynności można uruchomić działanie generatora kodu (zakładka DAVE -> Generate Code w menu DAVE 3).

Ostatnim krokiem tworzenia aplikacji jest napisanie kodu źródłowego, który wykorzystując interfejs programistyczny do peryferiów implementowałby działanie mikrokontrolera zgodne z aplikacją wzorcową firmy Infineon. Listing naszego kodu przedstawiono poniżej.

#include       //Declarations from DAVE3 Code Generation (includes SFR declaration)

handle_t TimerId;
uint32_t SystemTime = 0;
uint32_t Uart_counter = 0;
uint8_t data1[] = "Visit www.infineon.com/XMC\r\n";
int i;

void timer_handler()
  {
  IO003_TogglePort(IO003_Handle0,1); //P1.0
  IO003_TogglePort(IO003_Handle1,1); //P1.1
  Uart_counter++;
  }

int main(void)
{
//  status_t status;    // Declaration of return variable for DAVE3 APIs (toggle comment if required)

  DAVE_Init();          // Initialization of DAVE Apps

  IO003_WritePort(IO003_Handle0,0); //P1.0
  IO003_WritePort(IO003_Handle1,1); //P1.1

  TimerId = SYSTM001_CreateTimer(200,SYSTM001_PERIODIC,timer_handler,NULL);
  SYSTM001_StartTimer(TimerId);

  while(1)
  {
    if(Uart_counter == 10)
    {
      Uart_counter = 0;

      for (i = 0; i <28; i++)
      {
        UART001_WriteData(UART001_Handle0,data1[i]);
      }
    }
  }
  return 0;
}

 

SZYMON PANECKI urodził się 17 lutego 1985 roku w Milanówku. Tytuł inżyniera Elektroniki i Telekomunikacji, a następnie magistra inżyniera na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał kolejno w roku 2008 i 2010. Ponadto tytuł inżyniera Informatyki na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał w roku 2011. Szymon Panecki jest doświadczonym elektronikiem-konstruktorem, który w trakcie swojej zawodowej kariery koncentruje się na definiowaniu i projektowaniu (zarówno w warstwie sprzętowej jak i programowej) systemów wbudowanych opartych na mikrokontrolerach z rdzeniem ARM od różnych producentów, w tym przede wszystkim Infineon Technologies (rodzina XMC1000 i XMC4000), STMicroelectronics (STM32 i STR7), Freescale Semiconductor (Kinetis L) oraz Silicon Labs (EFM32 i Precision32). Obszarem jego szczególnego zainteresowania są systemy wykorzystujące czujniki środowiskowe (wilgotności, ciśnienia, temperatury) oraz przemysłowe i motoryzacyjne interfejsy komunikacyjne, głównie CAN. Szymon Panecki od wielu lat współpracuje z czasopismem "Elektronika Praktyczna" oraz portalem Mikrokontroler.pl, na łamach których publikuje liczne artykuły dotyczące swoich projektów, jak również nowości produktowych firm z branży półprzewodnikowej.