reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
© circotasu dreamstime.com Komponenty | 30 lipca 2015

Atmel dla Internet of Things : część II

SAM D21 jest rozszerzeniem rodziny SAMD20 o full-speed USB, DMA oraz high-end timers/counters.
Architektura rodziny SAMD21


© Atmel

Atmel SMART SAM D21 jest serią mikrokontrolerów low-power pracujących w oparciu o rdzeń ARM Cortex-M0+. W ramach SAMD21 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
o Peryferia do peryferiów
o Peryferia do pamięci
o Pamięć do peryferiów
o Pamięć do pamięci
• Źródła wywołania
o Oprogramowania
o Event z Event System
o Dedykowane źródło z peryferiów
• Funkcjonalność arbitrażu
o Cztery konfigurowalne priorytety dla każdego kanału
o Ustalany lub round-robin schemat obsługi priorytetów
• Od 1 do 256kB danych w jednym bloku transmisji
• CRC
o CRC-16 (CRC-CCITT)
o CRC-32 (IEEE802.3)

Schemat pracy kontrolera DMA


© Atmel

Interfejs USB

Jak wspomniano na początku SAMD21 to wzbogacona o DMA i USB rodzina SAMD20. 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.

Artykuł opracowany przez JM Elektronik, autoryzowanego przedstawiciela Atmel w Polsce
reklama
reklama
Załaduj więcej newsów
December 08 2016 23:17 V7.6.3-2