LinkedIn YouTube Facebook
Szukaj

Wstecz
Artykuły

Zestaw startowy z mikrokontrolerami Renesas Synergy Glyn EVBSYNS3 – prosta aplikacja na Cortex-M dla początkujących

Praktyczne testy

Działanie modułu przetestujemy przez cykliczne gaszenie i zapalanie żółtej diody LED umieszczonej na module. Oczywiście jest to bardzo prosty test, ale pozwala na sprawdzenie działania mikrokontrolera: jego zasilania i taktowania, oraz sprawdzenie działania programatora J-Link. Po połączeniu gniazda USB programatora/debuggera J-Link z portem USB komputera PC powinny się automatycznie zainstalować sterowniki potrzebne do współpracy J-Link z programem e2studio.

Z dokumentacji modułu wynika, że dioda żółta LED1 jest połączona z linią portu P106, a czerwona LED2 z linia portu P107. Trójkolorowa dioda LED3 jest sterowana liniami portów P301, P301 i P303 – rysunek 7.

Rys. 7. Układ sterowania diodami LED w prezentowanym zestawie

Najpierw skonfigurujemy linie portu P106 jako wyjściową. Można to zrobić bezpośrednio w programie – listing 1.

List. 1. Konfiguracja linii P106 jako wyjściowej

Set pins to specified levels:
ioport_level_t level;
/* Konfiguracja pinów */
g_ioport.p_api->init(g_ioport.p_cfg);
/* Ustawienie linii portu 106 jako wyjściowego */
g_ioport.p_api->pinDirectionSet(IOPORT_PORT_01_PIN_06, IOPORT_DIRECTION_OUTPUT);

Jednak łatwiej jest to zrobić za pomocą konfiguratora Synergy Configurator w zakładce Pinsrysunek 8. Zamiany zostaną przekonwertowane na kod źródłowy po kliknięciu na przycisk Generate Project Content umieszczony w prawym górnym rogu okna z rysunku 8.

Rys. 8. Konfiguracja linii wyjściowej portu P106

Konfiguracja za pomocą konfiguratora jest o wiele łatwiejsza i szybsza, kiedy musimy ustawić wiele linii portu, w tym do pracy jako linie modułów peryferyjnych. Wyjściowa linia P106 jest połączona z katodą żółtej diody LED. Anoda tej diody poprzez rezystor R30 ograniczający prąd jest połączona do plusa napięcia +3,3V (rysunek 7). Kiedy na linii jest poziom niski, to przez diodę płynie prąd i zaczyna świecić. Cykliczne zapalanie i gaszenie diody będzie polegało na wymuszaniu naprzemiennie poziomu niskiego i wysokiego na linii P106. Do wystawania stanu wykorzystamy funkcję biblioteczna warstwy HAL g_ioport.p_api->pinWrite (port, level);.

Programowe opóźnienia będzie odliczać funkcja BSP R_BSP_SoftwareDelay.

Fragment procedury cyklicznie gaszącej i zapalającej diodę został pokazany na listingu 2.

Wsparcie BSP wygenerowane przez e2studio w momencie tworzenia szkieletu projektu umożliwia szybkie wyliczenie niezbędnych wartości na podstawie częstotliwości taktowania rdzenia potrzebnych wartości do programowego odliczania opóźnień.

 

List. 2. Cykliczne zapalanie i gaszenie diody LED

/* Definicje wartości niezbędnych do odliczania opóźnienia programowego */
 const bsp_delay_units_t bsp_delay_units = BSP_DELAY_UNITS_MILLISECONDS;
 /* ustawienie częstotliwości migania diody */
 const uint32_t freq_in_hz = 2;
 /* wyliczenie wartości opóźnienia*/
 const uint32_t delay = bsp_delay_units / freq_in_hz;

/*zmienna stanu linii sterującej LED*/
ioport_level_t level = IOPORT_LEVEL_HIGH;

while(1)
{
if (IOPORT_LEVEL_LOW == level)
 {
  level = IOPORT_LEVEL_HIGH;
 }
 else
 {
  level = IOPORT_LEVEL_LOW;
 }
g_ioport.p_api->pinWrite (lOPORT_PORT_01_PIN_06, level);//wystawienie stanu na linię 
g_ioport.p_api->pinRead (lOPORT_PORT_01_PIN_06, &level);//odczytanie stanu linii 
R_BSP_SoftwareDelay (delay, bsp_delay_units);//opóźnienie 1/2sekundy
}

Po wystawieniu poziomu na linii, jest następnie odczytywany jej stan i zapisywany do zmiennej level. Na podstawie tych wartości program zmienia stan na przeciwny wpisywany do rejestrów portu i linia zmienia poziom z niskiego na wysoki i odwrotnie.

Fragment programu pokazany na listingu 2 należy umieścić w nieskończonej pętli pliku hal_entry.c i skompilować w opcji debug. Kompilacja nie powinna generować żadnych błędów i ostrzeżeń. Uruchomienie debugowanie projektu wykonujemy z paska narzędziowego Debug, potem wybieramy z listy opcję Debug Configurations… , Renesas GDB Hardware Debugging i na końcu klikamy na Debugrysunek 9.

Rys. 9. Uruchomienie debugowania projektu

Uruchomienie programu wykonuje się po naciśnięciu na klawisz F8. Można też w trakcie debugowania zatrzymywać program na pułapkach, wykonywać pracę krokową, podglądać wartości zmiennych (Expression) itp.

 

Podsumowanie

Moduł Glyn EVBSYNS3 to ciekawa propozycja dla tych, którzy chcieliby rozpocząć pracę z nowymi mikrokontrolerami Renesas Synergy. Jak pokazałem EVBSYNS3 bez problemu współpracuje ze środowiskiem e2studio i bezpłatnym kompilatorem ARM GCC. Zastosowany mikrokontroler, chociaż należy do niższej serii jest bogato wyposażony w peryferia i ma wbudowany wydajny rdzeń ARM Cortex-M4. Zabudowanie złącz PMOD, gniazda micro USB, a przede wszystkim programatora/debuggera J-Link umożliwi szybkie testowanie własnych aplikacji. Możliwość podłączania płytek rozszerzeń Arduino na pewno zwiększy potencjalne możliwości szybkiego powiększenia sprzętowych możliwości budowanej aplikacji.

Absolwent Wydziału Elektroniki Politechniki Wrocławskiej, współpracownik miesięcznika Elektronika Praktyczna, autor książek o mikrokontrolerach Microchip i wyświetlaczach graficznych, wydanych nakładem Wydawnictwa BTC. Zawodowo zajmuje się projektowaniem zaawansowanych systemów mikroprocesorowych.