[2] [Smart IoT] SAM D21 – Cortex-M0+ z USB

           

Poprzedni artykuł zawierał informacje o podstawowej rodzinie mikrokontrolerów SAM D20. Teraz idziemy krok dalej.

SAM D21 jest rozszerzeniem rodziny SAM D20.

Rozszerzenie to polega na rozbudowaniu podstawowej rodziny SAM D20 m.in. o: full-speed USB (host, device), DMA (Direct Memory Access) oraz high-end timers/counters.

 

 

Rys. 1. Architektura rodziny SAM D21

 

Atmel® | SMART™ SAM D21 jest serią mikrokontrolerów low-power pracującym w oparciu o rdzeń ARM® Cortex®-M0+. W ramach SAM D21 dostępne są układy w obudowach 32-, 48- oraz 64-piny. Z pamięcią flash od 32KB do 256KB oraz SRAM od 8KB do 32KB. Układy pracują z maksymalną częstotliwością 48MHz przy 2.46 Coremark/MHz.

Funkcjonalności SAM D21

  • In-system programmable Flash,
  • dwanaście kanałów DMA (Direct Memory Access),
  • dwanaście kanałów system event’ów,
  • programowalny kontroler przerwań,
  • do 52 programowalnych I/O,
  • 32-bit real-time clock z kalendarzem,
  • do pięciu 16-bit Timer/Counter,, trzy 24-bit Timer/Counters,
  • Full-speed USB 2.0, zarówno host jak i device,
  • do sześciu modułów SERCOM (Serial Communication Modules), gdzie możliwa jest konfiguracja jako: USART, UART, SPI, I2C (do 3.4 MHz), SMBus, PMBus, LIN slave,
  • dwukanałowy I2S,
  • do dwudziestu kanałów 12-bit ADC, 350ksps,
  • 10-bit 350ksps DAC,
  • dwa komparatory analogowe z trybem window,
  • sprzętowy Touch Controller, mogący obsłużyć do 256 przycisków, slider’y, kółka, z funkcją wykrywania zbliżenia ręki,
  • 2-pinowy interfejs SWD (Serial Wire Debug) umożliwiający zarówno debugowanie jak i programowanie.

Mikrokontroler może być taktowany zarówno z zewnętrznego jak i wbudowanego oscylatora. Dodatkowo różne clock domain mogą być niezależnie skonfigurowane, aby mogły pracować z różnymi częstotliwościami. Jest to bardzo przydatny mechanizm zwłaszcza w trybach oszczędności energii, gdzie w zależności od wymagań aplikacji można zmieniać częstotliwość pracy ograniczając pobór prądu. Układ posiada dodatkowo dwa tryby uśpienia: idle oraz standby. Zaimplementowano także tryb SleepWalking, znany z poprzednich produktów Atmel. Umożliwia on niezależne wybudzanie peryferiów bez udziału samego CPU. Sam system event’ów działa zarówno w trybie synchronicznym jak i asynchronicznym, pozwalając peryferiom odbierać, wysyłać i obsługiwać event’y nawet w trybie standby.   

Pamięć flash można programować wykorzystując dwuprzewodowy interfejs SWD lub poprzez implementację bootloadera, który może zaktualizować oprogramowanie wykorzystując dowolny interfejs komunikacyjny dostępny w układzie. Bardzo dużą popularnością cieszy się implementacja bootloadera z wykorzystaniem interfejsu USB, który może pracować zarówno jako device jak i host. Umożliwia to np. aktualizację firmware z pendrive.

 

Kontroler DMA

W ramach SAMD21 korzystać można z dwunastu kanałów DMA (Direct Memory Access), sterowanych przez DMAC (Direct Memory Access Controller). DMAC umożliwia transfer danych pomiędzy pamięciami i peryferiami bez potrzeby angażowania mikroprocesora. Pozwala to na uzyskanie przez urządzenie wysokich przepustowości transmisji danych z minimalnym wykorzystaniem samego CPU.

Wybrane cechy DMAC

  • Transfer danych
    • Peryferia do peryferiów
    • Peryferia do pamięci
    • Pamięć do peryferiów
    • Pamięć do pamięci
  • Źródła wywołania
    • Oprogramowania
    • Event z Event System
    • Dedykowane źródło z peryferiów
  •  Funkcjonalność arbitrażu
    • Cztery konfigurowalne priorytety dla każdego kanału
    • Ustalany lub round-robin schemat obsługi priorytetów
  • Od 1 do 256kB danych w jednym bloku transmisji
  • CRC
    • CRC-16 (CRC-CCITT)
    • CRC-32 (IEEE802.3)

 

 

Rys. 2. Schemat pracy kontrolera DMA

 

Interfejs USB

Jak wspomniano na początku SAM D21 to wzbogacona o DMA i USB rodzina SAM D20. Powyżej przedstawione zostały podstawowe parametry DMA, teraz czas na USB. Interfejs USB pracować może zarówno w trybie Host jak i Device, można go zmieniać podczas pracy programu. Jest on kompatybilny ze specyfikacja USB2.1, wspiera zarówno full speed (12Mbit/s) jak i low speed (1.5Mbit/s). Wspiera protokół Link Power Management (LPM-L1). Ma zaimplementowany mechanizm DMA co znacząco przyspiesza i ułatwia obsługę interfejsu. W Atmel Studio znaleźć można szereg programów z wykorzystaniem USB, w ASF znajdują się biblioteki dla najpopularniejszych klas: CDC, Mass Storage, HID.

 

TCC timer/counter

Warto wspomnieć także o bardzo rozbudowanych timerach. Jest to kolejny przykład transferu bardzo ciekawej i dopracowanej funkcjonalności z rodziny Atxmega, w tym przypadku AtxmegaE5, do platformy bazującej na Cortex-M0+. Oprócz możliwej 24-bitowej rozdzielczości, wielu trybów pracy, wielu kanałów, itd., właściwością na którą rekomendujemy zwrócić uwagę jest fault support, który pracować może w dwóch trybach:

 

Non-recoverable FAULT

W tym trybie, w przypadku wykrycia usterki, wyjście z TCC zostaje automatycznie ustawione na jeden ze zdefiniowanych wcześniej poziomów (0 lub 1).

 

Recoverable FAULT

Ten tryb daje dużo większe możliwości. Możliwe jest podjęcie następujących akcji.

  • „Halt” – wykrycie błędu powoduje zatrzymanie TCC timer/counter, wyjście utrzymywane jest w zdefiniowanym stanie, a po ustaniu błędu układ wraca do normalnej pracy.
  • „Restart” –  w tym przypadku TCC timer/counter jest restartowany.
  • „Keep” – wyjście utrzymywane jest w stanie 0, przez cały czas trwania błędu.
  • „Capture” – umożliwiający przypisanie odpowiednich znaczników.

Dzięki tym możliwością SAMD21 może okazać się bardzo interesującą propozycja we wszelkiego rodzaju aplikacjach, gdzie steruje się oświetleniem, silnikami, układach zasilania. Przykład takiego wykorzystania można zobaczyć na filmie.

Tabela 1. Podstawowe funkcjonalności rodziny SAMD21 z podziałem na obudowy

 

SAM D21J

SAM D21G

SAM D21E

Flash

256/128/64/32KB

256/128/64/32KB

128/64/32KB

SRAM

32/16/8/4KB

32/16/8/4KB

32/16/8/4KB

Kanały DMA

12

12

12

SERCOM

6

6

4

USB

1

1

1

Kanały ADC

20

14

10

Komparatory

2

2

2

Peripheral Touch Controller (PTC) linie X,Y

16×16

12×10

10×6

GPIO

52

38

26

Częstotiwość taktowania

48 MHz

Ilosć pinów

64

48

32

Kanały Event System

12

12

12

 

Zestaw ewaluacyjny

Wraz z pojawieniem się nowego produktu, w sprzedaży znalazł się zestaw ewaluacyjny ATSAMD21-XPRO, umożliwiający pierwsze prace z nowymi mikrokontrolerami.

Nowa rodzina wspierana jest oczywiście przez Atmel Studio 6 oraz Atmel Sofware Framework (ASF). Znaleźć tam można szereg przykładów i bibliotek, mających za zadanie maksymalnie skrócić czas pracy nad projektem. A wszystko to bezpłatnie.

Co bardzo interesujące wszystkie obudowy QFN oraz TQFT dostępne są w wersji na rozszerzony zakres temperatur. Mogą pracować w temperaturze do 125?C.

W następnych artykułach kolejno zostaną poruszone następujące tematy:

  • Cortex-M0+ z małych obudowach: SAMD/10/11,
  • najbardziej energooszczędny Cortex-M0+ na rynku: SAM L21,
  • 5V Cortex-M0+ z CAN : SAM C20/C21,
  • wybrane peryferia Cortex-M0+: komunikacja bezprzewodowa, przyciski pojemnościowe, LCD,
  • platforma Cortex-M7 – wprowadzenie,
  • wybrane peryferia Cortex-M7.

Aby nie przegapić kolejnych artykułów edukacyjnych oraz następujących po nich webinariów, można zgłosić się do listy subskrypcyjnej cyklu na marketing@jm.pl z dopiskiem: Cykl edukacyjny „Lider Technologii Smart IoT”. Pod tym adresem uzyska się również więcej informacji o ofercie Atmela dedykowanej na rynek IoT.

Osoby zainteresowane zakupem wybranych układów lub szukające wsparcia technicznego proszone są o kontakt się pod sprzedaz@jm.pl.

O autorze