Obsługa kontrolera eDMA w mikrokontrolerach KINETIS

Wbudowany w mikrokontrolery Kinetis kontroler DMA zapewnia bezobsługowe przenoszenie danych z lokacji mapowanej w jednej pamięci do innej. Po skonfigurowaniu i zainicjalizowaniu kontroler DMA działa równolegle z CPU wykonując transfer danych, który w innym przypadku byłby obsługiwany przez jednostkę centralną (rysunek 1). Skutkuje to obniżoną obciążalnością jednostki centralnej i wynikającym z tego wzrostem wydajności systemu.

Rys. 1. Zasada działania sterownika DMA

Rys. 1. Zasada działania sterownika DMA

Mikrokontrolery z rodziny Kinetis wyposażono w udoskonalony kontroler bezpośredniego dostępu do pamięci (eDMA) służący do przenoszenia danych. Kontroler eDMA rodziny Kinetis zawiera 16-bitowy bufor do tymczasowego magazynowania danych. Ponieważ mikrokontrolery Kinetis bazują na architekturze magistrali krzyżowej, jednostka centralna jest głównym zarządcą magistrali dołączonej do portów nadrzędnych M0 i M1. Kontroler eDMA jest podłączony do portu głównego M2 przełącznika krzyżowego. Dzięki temu jednostka centralna oraz eDMA mogą równocześnie mieć dostęp do różnych portów podrzędnych. Zastosowana architektura oparta na wielu portach nadrzędnych sprawia, że system może wykorzystywać maksymalnie funkcje eDMA. Na rysunku 2 przedstawiono architekturę DMA w mikrokontrolerach z rodziny Kinetis.

Rys. 2. Konfiguracja przełącznika krzyżowego w DMA wbuodwanym w  mikrokontrolery Kinetis

Rys. 2. Konfiguracja przełącznika krzyżowego w DMA wbuodwanym w mikrokontrolery Kinetis

Przełącznik krzyżowy jest sercem architektury opartej na wielu portach nadrzędnych. Łączy ona każdy port nadrzędny z określonym urządzeniem podrzędnym. Jeśli oba porty nadrzędne próbują uzyskać dostęp do tego samego portu podrzędnego, schemat arbitrażowy rozpoczyna eliminację sporu o magistralę. Dostępne są jednocześnie stałe priorytety oraz schematy arbitrażowe szeregowane okrężnie. Jeżeli oba porty nadrzędne próbują uzyskać dostęp do różnych portów podrzędnych, priorytety są ustalane przez schemat arbitrażowy.
Każdy kanał modułu eDMA może być wyzwalany w celu rozpoczęcia transferu DMA z wielu źródeł takich jak urządzenia peryferyjne lub oprogramowanie. Moduł eDMA posiada zintegrowany multiplekser DMA do prowadzenia różnych źródeł wyzwalania do szesnastu kanałów. Przy udziale multipleksera DMA, transfer eDMA może być aktywowany przez maksymalnie 63 zdarzenia występujące w obrębie innych urządzeń peryferyjnych. Flagi zdarzeń w wielu modułach mogą być zatwierdzeniem żądania przerwania lub eDMA. Źródła te mogą być wybierane poprzez rejestry DMAMUX_CHCFGn[SOURCE]. Różne urządzenia mogą posiadać odmienne konfiguracje urządzeń peryferyjnych. Należy odnieść się do specyfikacji odpowiedniego urządzenia, w celu zapoznania się ze szczegółami.
Multiplekser kanałów DMA pomaga skonfigurować źródło eDMA. Do szesnastu kanałów mogą zostać doprowadzone 52 gniazda urządzeń peryferyjnych oraz 10 gniazd zawsze włączonych. Dodatkowo, pierwsze cztery kanały zapewniają okresową możliwość wyzwalania. Każdy router kanału może zostać przypisany do jednego z możliwych 52 gniazd urządzeń peryferyjnych DMA lub do jednego z dziesięciu gniazd zawsze włączonych. Struktura logiczna multipleksera DMA została przedstawiona na rysunku 3.

Rys. 3. Schemat blokowy multipleksera DMA

Rys. 3. Schemat blokowy multipleksera DMA

Multiplekser DMA wspiera trzy różne sposoby wyzwalania żądań transferu DMA.

  • Tryb Disabled – do kanału nie jest prowadzony żaden sygnał żądania i kanał jest wyłączony. Jest to stan resetu kanału w multiplekserze DMA. Tryb Disabled może być wykorzystywany także do zawieszania kanału eDMA, gdy jest on rekonfigurowany lub niewykorzystywany.
  • Tryb Normal – żądanie DMA jest prowadzone bezpośrednio do odpowiedniego kanału eDMA.
  • Tryb Periodic Trigger – tryb ten jest dostępny jedynie dla kanałów eDMA od 0 do 3. W trybie tym żądanie PIT pracuje jako stroboskop dla źródła żądania kanału DMA, co oznacza, że źródło DMA może zażądać transferu DMA jedynie okresowo. Transfer może się rozpocząć jedynie w przypadku, gdy aktywne są jednocześnie źródło żądania DMA oraz wyzwolenie okresowe. Dostarcza to do bramki lub przepustnicy wystarczające zasoby do realizacji żądania przerwania przy wykorzystaniu PIT. Zazwyczaj jest to stosowane do okresowego sondowania stanu źródła urządzeń peryferyjnych, w celu kontroli harmonogramu transferu lub do okresowego transferowania.

Na rysunku 4 przedstawiono zależność pomiędzy okresowym wyzwalaczem PIT, żądaniem transferu od źródła z urządzenia peryferyjnego oraz aktywacją transferu.

Rys. 4. Aktywacja bramkowanego transferu PIT

Rys. 4. Aktywacja bramkowanego transferu PIT

O autorze