SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Arduino poradnik

Wstęp

Teoria

Biblioteki

Komponenty

Czujniki i sensory

Rozwiązania i algorytmy

Narzędzia

Mikrokontrolery i Arduino IDE

Arduino i klony

Poradniki wideo

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Ostatnie fotografie

polskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorywieliczka-szyb-danilowicza

MattairTech MT-D21E (ATSAMD21E)

Arduino ZERO z 32-bitowym mikrokontrolerem ATSAMD21G18 jest już dostępny na naszym rynku od dłuższego czasu. Jego niewątpliwym atutem jest taktowanie zegarem 48MHz oraz 256kB pamięci Flash. Jest więc pewnym ratunkiem dla osób, które "duszą" się z programem na Arduino UNO, gdzie do dyspozycji dostajemy jedynie 32kB pamięci Flash.

Niestety pomimo pełnego wsparcia ze strony Arduino, jakoś nie zauważyłem większej siły przebicia wśród mniej zaawansowanych projektantów domowej elektroniki. Zacząłem się więc zastanawiać, co jest powodem tego stanu rzeczy?

Przez moje biurko przewinęły się już Arduino M0 oraz Arduino Zero PRO - praktycznie dwie bliźniacze sobie wersje, które pojawiły się w czasie sporu wokół marki Arduino. Płytki oczywiście bardzo ciekawe, ale tylko na etapie ich poznawania.

Prędzej czy później u każdego z nas przychodzi taki moment, kiedy zechcemy przenieść nasz prototyp z okablowanej po brzegi płytki stykowej na własne PCB. W przypadku ATmegi328 nie ma z tym żadnych kłopotów, ponieważ jest ona dostępna zarówno w obudowie DIP do montażu przewlekanego jaki i TQFP32 do montażu powierzchniowego SMD z odległością między padami lutowniczymi 0,8mm.

W przypadku Arduino ZERO zastosowano ATSAMD21G w obudowie TQFP64, a więc znacznie trudniejszej w lutowaniu dla większości hobbystów, gdzie raster padów lutowniczych wynosi już tylko 0.5mm. Oczywiście pewnym rozwiązaniem dla niektórych było umieszczenie całego Arduino Zero w obudowie, ale niektórych (w tym mnie) taka opcja nie zadowala. Trzeba było więc czekać na "klony" :)

Pierwszy jaki do mnie trafił, to płytka od Sparkfun ATSAMD21G R3, zgodna rozstawem pinów z Arduino Zero.

Konstrukcyjnie była już znacznie ciekawsza - posiadała wyprowadzania na dodatkowy port UART, gniazdo do podłączenia jedno celowego akumulatorka LiPo wraz z układem ładowania oraz dodatkowe wyprowadzenia dla dodatkowego portu UART. Brak fabrycznie zamontowanych gniazd i goldpinów pozwalał już na wygodniejsze wykorzystanie w finalnym projekcie. Jednak wciąż nie było tym, czego szukałem.

Trafiłem więc na kolejną konstrukcję - a mianowicie na "miniaturowy" moduł Neutrino od RABID Prototypes o wymiarach zaledwie 38mm x 18mm. Jakość wykonania jest na bardzo wysokim poziomie i praktycznie nie ma sobie nic do zarzucenia. Przestępna jest również cena producenta, wynosząca 20$. Bez zbędnych bajerów - miejsce na goldpiny oraz gniazda SWD i SPI. Od strony programowania? W pełni zgodna z oprogramowaniem Arduino Zero.

Pomimo rosnącej możliwości wyboru, wciąż czegoś mi brakowało, a obudowa TQF64 zniechęcała mnie do używania go we własnych projektach. Aż wreszcie pojawiła się konstrukcja, która sprawiła, że powoli zapominam o 8-bitowej Atmedze.

Przejdźmy zatem do bohatera naszego artykułu.

MattairTech LLC oznaczony symbolem MT-D21E.

Największą różnicą jest tutaj zastosowanie układu ATSAMD21E w wygodniejszej obudowie TQFP-32. Co prawda werjsa "E" udostępnia mniejszą ilość 38 pinów cyfrowych w porównaniu do wersji "G", ale w większości przypadków ilość ta i tak jest wystarczająca.

Co dostajemy?

  • 22 piny cyfrowe ogólnego przeznaczenia
  • 10 pinów analogowych (12-bit ADC)
  • 1 pin analogowy (10-bit DAC)
  • 12 pinów PWM
  • 15 pinów przerwań (w tym 1x NMI)
  • 2 porty UART
  • 1 port SPI
  • 1 port I2C (TWI)
  • obciążalność portu I/O - 7mA

Najbardziej spodobała mi się budowa MT-D21E, bowiem przemyślano ją w najmniejszych szczegółach.

Możemy zasilić ją zarówno z gniazda USB jak i pinów, zastosowano diody schottkyego, które zabezpieczają przed błędną polaryzacją zasilania. Wykorzystano dobrej jakości stabilizator 3.3V o wydajności 250mA i bardzo niskim prądzie spoczynkowym 2uA, co pozwala nam na zasilenie płytki nawet napięciem 16V.

Pomyślano również o zabezpieczeniu prądowym 180mA (400mA trip) w postaci bezpiecznika PTC. Na płytce znajduje się również niebieska dioda, dwa kwarce 16MHz oraz 32.768kH, a  także dwa przyciski oraz wlutowane gniazdo Cortex.

Do dyspozycji mamy również dwa bootloadery, które możemy wgrać w zależności od naszych potrzeb:

  • Atmel SAM-BA działający w trybie USB CDC - pozwala programować układ bez dodatkowego programatora oraz może służyć nam jako dodatkowy port SerialUSB.
  • MSD (Mass Storage Device) Bootloader, który pozwala na wgranie programu jak na pamięć masową USB.

Po drugiej stronie PCB znajdziemy natomiast szereg zworek, które pozwolą nam na dopasowanie modułu pod własne, indywidualne potrzeby. Jeśli nie będziemy korzystać z bootladera MSD, możemy odłączyć kwarc 16MHz na korzyść drugiego portu szeregowego. Mamy możliwość zmostkowania diody schottkyego, jeśli planujemy zasilać urządzenie z baterii, pomijając tym samym spadek napięcia na diodzie. Możemy również odłączyć rezystory podciągające 4.7kΩ magistrali I2c, odłączyć diodę LED czy przyciski. Możliwości konfiguracyjnych jest naprawdę sporo!

Kompilując nasz program, mamy do wyboru kilka konfiguracji, które mają wpływ na rozmiar kody wynikowego. Jeśli chcemy, możemy skompilować program bez obsługi UART lub CDC, oszczędzając tym samym miejsce w pamięci Flash. Dostępne tryby to:

  • CDC + HID + UART
  • CDC + UART
  • HID + UART
  • CDC + HID
  • CDC Only
  • HID Only
  • UART Only
  • No USB / No UART

Należy jednak pamiętać, że chcąc mieć możliwość programowania przez port USB, musimy chociaż pozostawić obsługę CDC.

Na stronie producetna znajdziemy również pełną dokumentację modułu, wymagane sterowniki oraz oprogramowanie dla Arduino IDE 1.6.5 oraz Arduino IDE 1.6.6. Sam moduł zaś możemy kupić w cenie 23$ za wersję ATSAMD21E17A z 128kB pamięci Flash lub ATSAMD21E18A 256kB Flash w cenie 30$.

Strona producenta: https://www.mattairtech.com/index.php/development-boards/mt-d21e.html

Reklama

Komentarze Komentarze
Avatar 1
Sebastian Mac OS X / Mozilla Firefox 44.0
01 February 2016 - 07:48 Warszawa

Chyba najwyższy czas rozszerzyć repertuar znanych rozwiązań o ARM-y. Tylko gdzie szukać samych mikrokontrolerów? Na TME widzę tylko kila rodzin, w tym SAM 7S, ale brak SAM D.

Avatar 2
Korneliusz Linux Ubuntu / Mozilla Firefox 43.0
04 February 2016 - 16:32 Bytom

Na http://pl.farnell.com znajdziesz bez problemu :)