Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

poniedziałek, 28 lutego 2011

FLASH-owiec poszukiwany


Autor: Dondu

28 lutego 2012

Poszukujemy wolontariusza, chętnego do wsparcia bloga swoimi umiejętnościami z zakresu wykonywania animacji we Flash-u.

Od czasu do czasu przydałaby się jakaś animacja ułatwiająca zrozumienie omawianego problemu. Jako że istoty nadludzkie (jakimi są informatycy i elektronicy) są w większości "wzrokowcami", to animacja taka zastępuje wiele słów :-)

Ile czasu mi to zajmie?
To dorywcze zadanie, może jedna animacja w miesiącu, a może rzadziej.

Co możemy zaoferować w zamian?
Właściwie tylko chwałę i wdzięczność czytelników bloga. Ale na pewno także swoją wiedzę, w zakresie elektroniki i/lub informatyki.

Jak się skontaktować?
Najprościej poprzez formularz kontaktu.

Liczymy na chętnych do wsparcia bloga swoimi umiejętnościami :-)

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

Atmel Studio - wersje


Autor: Dondu

Artykuł jest częścią cyklu: Atmel Studio - Spis treści


28 lutego 2014r.

Pojawiła się nowa wersja Atmel Studio 6.2 beta.

Pobrać ją można ze strony Atmela: http://www.atmel.com/tools/atmelstudio.aspx



Informację o zmianach itp. możesz przeczytać z dokumentu:


(kopia)

Dokument zawiera kompleksową informację o wymaganiach dot. komputera oraz opis rozwiązań różnych problemów, które można spotkać podczas instalacji i korzystania z Atmel Studio.

Istotne jest, że wersję tę można zainstalować i używać równolegle do posiadanej wersji 6.1. co jest bardzo ważne, bo 6.2 to wersja beta.

Ci, którym proces włączania się Atmel Studio trwa zbyt dużo czasu, powinni przeczytać FAQ punkt 11 - można się zdziwić, a problem leży po stronie Microsoftu, a nie Atmela :-)

Dodatkowo punkty 17, 18, 19, 22 i 25 (częściowo pisał już o tym Tmf) - także mogą być pomocne.

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

Reklama na stronie


Autor: Dondu

Od początku powstania bloga tj. 14 kwietnia 2011r. do dnia dzisiejszego nie oferuję możliwości zamieszczania na stronie płatnych reklam ... może się to kiedyś zmieni, ale na razie daję w zamian inne możliwości:
  1. Całkowicie darmowa reklama w artykule o sklepach: Gdzie kupować?
  2. Akcja: Testowanie sprzętu
  3. Akcja: Arduino
  4. Konkurs na artykuł miesiąca 
  5. Konkurs: Drgania styków
  6. Konkursy okresowe
  7. Konkursy celowe
  8. Konkursy indywidualne
Są to akcje, których beneficjentami są czytelnicy i autorzy rozwiązań konkursowych, a nie ja osobiście, czy współautorzy bloga.

Kontakt
W sprawie zamieszczenia reklamy proszę kontraktować się za pomocą formularza kontaktu.


Zastrzegam sobie prawo do odmówienia potencjalnym sponsorom współpracy z dowolnych przyczyn bez ich podawania. Ma to na celu chronić stronę przed osobami (i ich firmami), które w stosunku do niniejszego bloga zachowują się nie fair lub zawiodłem się na nich w przeszłości.




1. Gdzie kupować?

Strona: Gdzie kupować?

Strona ta jest odwiedzana przez każdego początkującego, któremu brakuje wiedzy o tym,  gdzie można kupować elementy elektroniczne, oprzyrządowanie, chemię, itp..

Na tej stronie za darmo i bez żadnych zobowiązań reklamodawcy zamieszczam reklamy wartościowych sklepów związanych z tematyką strony, w tym także tych z serwisów aukcyjnych. Wystarczy skontaktować się ze mną poprzez formularz kontaktu i przesłać:
  • banner o szerokości 200px i wysokości maksymalnej 140px - statyczny (brak animacji) pliki GIF, PNG lub JPG,
  • adres, do którego ma prowadzić link zamieszczony na stronie,
  • propozycję bardzo krótkiego opisu - zastrzegam sobie prawo do jego zmiany na własny.

Zastrzegam sobie prawo do:
  • nieumieszczenia reklamy z dowolnych przyczyn,
  • zakończenia emisji reklamy w dowolnym momencie i z dowolnych przyczyn, bez konieczności informowania reklamodawcy.






2. Akcja: Testowanie sprzętu

Strona: Akcja: Testowanie sprzętu

Strona odwiedzana jest praktycznie przez każdego nowego czytelnika bloga, który stał się stałym czytelnikiem.

To akcja, w której sponsorzy bez mojego pośrednictwa i na własny koszt przekazują wybranym czytelnikom sprzęt do testowania w zamian za przekazanie przez nich sponsorowi opinii o ich produktach. Akcja ta dotyczy raczej drobnych elementów, modułów, itp. o wartości kilkunastu - kilkudziesięciu złotych.

Sponsor sprzętu otrzymuje na stronie akcji na okres jednego miesiąca (liczonego od dowolnego dnia):
  • banner z przedmiotem (link do przedmiotu w sklepie) o szerokości 200px i wysokości maksymalnej 280px (bez animacji) plik GIF, PNG lub JPG,
  • banner z logo sponsora (link do strony głównej sponsora np. sklepu) o szerokości 468px i wysokości 60px tzw. Full Banner (bez animacji) plik GIF, PNG lub JPG.

Data graniczna (data zakończenia emisji reklamy) zostaje ustalona na zasadzie dzień rozpoczęcia emisji + jeden miesiąc (liczony w dniach), a bannery są umieszczane na dole kolejki bannerów dużych (początkowa część strony). Bannery te przesuwają się do góry wraz z zakańczaniem się okresów emisji bannerów poprzedzających go sponsorów.

Po w/w okresie bannery duże są usuwane, a na stronie pozostaje informacja o osobie testującej oraz o sponsorze w postaci małego banneru o szerokości 120px i wysokości 50px (brak animacji) plik GIF, PNG lub JPG. Bannery te pozostają już na tej stronie "po wsze czasy" :-)

Jeżeli sponsor chce przedłużyć emisję reklam na kolejny okres miesięczny jest to oczywiście możliwe, a duże bannery lądują na końcu kolejki bannerów.





3. Akcja: Arduino

Strona: ... w trakcie przygotowania (start - marzec 2014r.)

Akcja ta ma na celu otwarcie nowego działu dot. stricte Arduino. W tym celu wyłoniliśmy dodatkową grupę autorów, którzy w tym zakresie będą opracowywali artykuły dot. Arduino jako takiego oraz wykorzystania dowolnych modułów dedykowanych tej platformie.

W skrócie akcja wygląda następująco:
  • osobiście szukam autorów o różnym poziomie wiedzy i znajomości Arduino,
  • wstępnie sprawdzam umiejętności pisania artykułów przez danego autora,
  • spośród kandydatów sponsor wybiera co najmniej jednego autora, ale może wybrać ich kilku,
  • sponsor na własny koszt i bez mojego pośrednictwa przekazuje autorom bezzwrotnie i bez opłat sprzęt w postaci bazowego Arduino (w dowolnej wersji) oraz sukcesywnie wybrane moduły,
  • sponsor w porozumieniu ze mną, swoimi autorami i pozostałymi uczestnikami akcji określa zakres tematyczny (i inne kwestie), który będą opisywać jego autorzy,
  • autorzy piszą artykuły,
  • artykuły zostają opublikowane na blogu,
  • w artykułach zamieszczona jest reklama sponsora na określony czas (raczej długi, a aktualnie trwają ustalenia ze sponsorami w tej sprawie),
  • po wyznaczonym czasie reklama jest usuwana, a artykuły pozostają na blogu.





4. Konkurs na artykuł miesiąca

Strona: Akcja: Testowanie sprzętu

Strona odwiedzana jest przez większość nowych czytelników bloga, którzy stali się stałymi czytelnikami.

To akcja skierowana do czytelników, którzy dojrzeli do tego, by napisać artykuł w celu zamieszczenia go na blogu. Każdy taki artykuł jest weryfikowany przez zespół redakcyjny i podlega ocenie przez czytelników, które to oceny stanowią podstawę do określenia pozycji artykułu w rankingu artykułów danego miesiąca.

Na razie w tym zakresie współpracujemy tylko z Helion.pl i eBookPoint.pl, ale jeżeli będzie zainteresowanie, to mogę pomyśleć nad dopuszczeniem dodatkowych sponsorów i określeniu zasad zamieszczania bannerów.

Koszty wysyłki nagród ponosi sponsor, a wysyłka odbywa się bez mojego pośrednictwa.





5. Konkurs: Drgania styków

Strona: Drgania styków: Przykłady eliminacji - Konkurs bezterminowy

Drgania styków, to jeden z najistotniejszych problemów początkujących, stąd też zainteresowanie temtem jest wielkie od strony czytelników.

To niekończący się (stały) konkurs dla czytelników bloga. Akcja ruszyła 22 stycznia 2014r. i powolutku będzie się rozwijać przez kolejne lata.

Każdy artykuł jest nagradzany z puli dostępnych dla tej akcji nagród. Sponsor może przeznaczyć na akcję nagrody małej wartości (kilkanaście - kilkadziesiąt złotych) na dowolną ilość nagrodzonych artykułów. Jeżeli więc zdecyduje się przekazać np. pięć jakichś modułów, to najbliższych pięć artykułów zostanie nagrodzonych jego nagrodami.

Nagrody są łączone tzn. nagrody kilku sponsorów mogą trafić do jednego autora, ale tylko jedna nagroda danego sponsora. Na przykład jeżeli w danym momencie jest dwóch sponsorów nagród, to do autora, który opublikuje artykuł w tej tematyce w danym momencie trafią dwie nagrody od dwóch różnych sponsorów.

Sponsor otrzymuje:
  • banner z przedmiotem (link do przedmiotu w sklepie) o szerokości 200px i wysokości maksymalnej 280px (bez animacji) plik GIF, PNG lub JPG,
  • banner z logo sponsora (link do strony głównej sponsora np. sklepu) o szerokości 468px i wysokości 60px tzw. Full Banner (bez animacji) plik GIF, PNG lub JPG.
Bannery te są widoczne na stronie według kolejności przystąpienia sponsorów do akcji i widoczne do momentu przekazania ostatniej nagrody danego sponsora. Po tym okresie, na stronie w tabelce pozostaje "po wsze czasy" link do sklepu sponsora w postaci małego bannera o szerokości 120px i wysokości 50px (brak animacji) plik GIF, PNG lub JPG.

... aktualnie trwa przygotowanie tabelki i umieszczenie pierwszego artykułu nadesłanego przez czytelnika.

Koszty wysyłki nagród ponosi sponsor, a wysyłka odbywa się bez mojego pośrednictwa.






6. Konkursy okresowe (duże)

Co jakiś czas na stronie organizowane są konkursy z konkretnymi celami i tematyką. Konkursy te cieszą się sporą popularnością wśród startujących jak i czytelników przygotowanych artykułów.

W tym zakresie nagrody są większej wartości i z reguły polega to na tym, że jest kilka wirtualnych paczek z nagrodami, do których różni sponsorzy deklarują dodać swoje konkretne nagrody. Nagrody są dodawane według wartości w taki sposób, by paczki miały różną wartość. Po zakończeniu konkursu i ustaleniu miejsc zajętych przez startujących czytelników, nagrodzeni według kolejności zajętych miejsc wybierają paczki.

Sponsorzy wysyłają nagrody do wskazanych osób we własnym zakresie bez mojego pośrednictwa.

W przypadku tych konkursów po prawej stronie każdej strony bloga (z wyjątkiem spisu treści) pojawia się informacja o trwającym konkursie wraz z małymi bannerami sponsorów nagród:



Okres emisji tych bannerów zależy od czasu trwania konkursu, co z reguły zawiera się w przedziale od 30 do 90 dni.

Na stronie konkursu "po wsze czasy" znajdują się bannery reklamowe - przykłady:
O kolejności bannerów i linków sponsorów decyduje wartość przedmiotu i/lub sumaryczna ich wartość (dla danego konkursu). Im wartości wyższe, tym banner lub link znajduje się wyżej.

Koszty wysyłki nagród ponosi sponsor, a wysyłka odbywa się bez mojego pośrednictwa.

O trwających konkursach często przypominamy czytelnikom na naszych stronach fanpage Facebook i Google+.






7. Konkursy tematyczne

Od czasu do czasu wprowadzam konkursy tematyczne, czyli opracowania jakiegoś zadania, projektu i opisania go w artykule.

Przykłady:

Z reguły dotyczą one ważnych zagadnień przez co artykuły, które powstają są często odwiedzane przez czytelników.

W tym przypadku nie ma standardu dot. reklam, stąd zasady należy uzgodnić indywidualnie.

Koszty wysyłki nagród ponosi sponsor, a wysyłka odbywa się bez mojego pośrednictwa.





8. Konkursy indywidualne sponsorów

Dopuszczam możliwość ogłoszenia indywidualnego konkursu sponsora, ale tutaj za każdym razem rozważam wszelkie za i przeciw zanim zgodzę się na taki konkurs.

Przykłady:

W tym przypadku nie ma standardu dot. reklam, stąd zasady należy uzgodnić indywidualnie.

Koszty wysyłki nagród ponosi sponsor, a wysyłka odbywa się bez mojego pośrednictwa.


Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

sobota, 26 lutego 2011

XMEGA: Wybrane moduły

Autor: tmf
Redakcja: Dondu

Wstęp do XMEGA: Spis treści

Zachęcony możliwościami XMEGA chciałbyś rozpocząć z nimi przygodę, ale nie wiesz jak? Poniżej znajdziesz krótki poradnik na temat dostępnych modułów ewaluacyjnych z tym mikrokontrolerem. W kolejnych częściach opiszę jak je programować.

Problemem dla osób stawiających pierwsze kroki może być fakt, że XMEGA występują wyłącznie w obudowach TQFP i QFN do montażu powierzchniowego, nie znajdziemy ich więc w „ulubionych” obudowach DIL, tak jak starsze AVRy. Związane jest to z tym, że XMEGA występują typowo w obudowach z 64 lub 100 wyprowadzeniami, najmniejsze XMEGA mają ich co najmniej 32. Nie powinno cię to jednak zniechęcać.

Tak naprawdę układy w obudowach SMD lutuje się zdecydowanie łatwiej i szybciej niż układy w obudowach DIL, więc warto spróbować własnych sił.

Niemniej problemem jest prototypowanie układów w wersji SMD. Do tego przydają się wszelkiego rodzaju płytki stykowe, ale w takie płytki nie włożymy bezpośrednio XMEGA. Jak rozwiązać ten problem?


Oryginalne moduły Atmel'a

Atmel postanowił dogodzić potencjalnym użytkownikom XMEGA i wypuścił kilka modułów z tymi mikrokontrolerami. Pewnie część osób powie, moduły, a fe! Ale warto mimo wszystko im się przyjrzeć, gdyż oferują za rozsądną cenę (149-159 zł) spore możliwości, dodatkowo nie wymagają programatora.

Jeśli jednak jesteś zdecydowanym przeciwnikiem takich modułów to mam też inną propozycję, ale o tym za chwilę. Przyjrzyjmy się więc dostępnym modułom.

Jednymi z ciekawszych są atmelowskie Xplained. Każdy z tych modułów ma te same gabaryty, może być zasilany i programowany przez USB, nie wymaga więc ani zewnętrznego zasilacza, ani programatora.

W efekcie start z XMEGA z wykorzystaniem tych modułów jest tani i szybki. Każdy z nich wyposażony jest w cztery 10-pinowe złącza, na które wyprowadzone są wybrane piny IO mikrokontrolera, co umożliwia łatwe rozszerzenie możliwości modułu, a także połączenie z innymi układami, w tym znajdującymi się na płytce stykowej.

Każdy moduł Xplained ma też wyprowadzone osobno złącze JTAG/PDI przy pomocy którego możemy programować mikrokontroler, a także, co istotniejsze wykorzystać je do debugowania.





Xplained XMEGA 128A1


Jest to moduł z procesorem XMEGA128A1, demonstrujący jego możliwość współpracy z pamięcią SDRAM. W skrócie moduł ten posiada:
  • 8 MB SDRAM – tak, to nie błąd, mamy do dyspozycji aż 8 MB pamięci RAM + pamięć SRAM mikrokontrolera,
  • czujnik temperatury oparty o termistor,
  • czujnik oświetlenia oparty o fototranzystor,
  • głośnik sterowany poprzez wzmacniacz z przetwornika DAC,
  • 8 przycisków,
  • 8 diod LED, którymi możemy dowolnie sterować,
  • złącze USB, z którego można zasilić moduł, a także przeprogramować i wykorzystywać do komunikacji poprzez wirtualny port szeregowy,
  • cztery 10-pinowe złącza rozszerzeń, na które wyprowadzone są niektóre porty I/O mikrokontrolera,
  • miejsce do wlutowania dodatkowej pamięci DataFLASH.

Moduł ten jest bardzo uniwersalny, warto go polecić szczególnie osobom pragnącym poznać działanie kontrolera pamięci (EBI), budować uniwersalne układy, w tym układy odtwarzające dźwięki/muzykę.


Xplained ATXMEGA-B1


Co mamy ciekawego na pokładzie?:
  • moduł ten przede wszystkim zawiera wielosegmentowy wyświetlacz LCD – jest on przeznaczony głównie do demonstracji możliwości kontrolera LCD wbudowanego w XMEGA serii B. Jeśli planujesz budowanie układu, w którym mikroprocesor ma bezpośrednio sterować „gołym” LCD to jest to moduł dla Ciebie,
  • cztery przyciski QTouch umożliwiające zapoznanie się z technologią dotykową firmy Atmel,
  • czujnik temperatury,
  • czujnik oświetlenia,
  • dodatkowe cztery  LEDy mogą być sterowane z MCU.




Xplained XMEGA256A3BU


Jest to moduł wyposażony w:
  • wyświetlacz graficzny LCD 128x32 piksele z podświetleniem regulowanym programowo i interfejsem szeregowym,
  • trzy przyciski,
  • dwa LEDy,
  • pamięć szeregową DataFLASH o pojemności 64 Mbity,
  • 1 przycisk QTouch,
  • czujnik temperatury,
  • czujnik oświetlenia.

W efekcie moduł ten doskonale nadaje się do testowania aplikacji mających współpracować z graficznym LCD lub wykorzystywać pamięci DataFLASH o dużych pojemnościach.





Inne rozwiązanie


Moduły Xplained są naprawdę godnymi polecenia narzędziami, ale nie jedynymi. Z pewnością ich zaletą jest posiadanie kilku elementów dodatkowych, w efekcie mamy w miarę kompletny system mikrokontrolerowy, ale za to nie wszystkie sygnały są wyprowadzone – ze wględu na ograniczoną liczbę złącz.

Osoby, które chciały by po prostu spróbować z „gołą” XMEGA mogą skorzystać z przejściówek TQFP > DIL. Większość tego typu przejściówek nie współpracuje z płytką stykową, ale są wyjątki.


XMEGA256A3BU



Jest to propozycja polskiej firmy (modulowo.com.pl) oferującej różnego typu minimoduły, w tym właśnie moduły oparte o mikrokontrolery XMEGA. Jest to oferta godna uwagi, gdyż:
  • moduł posiada wyprowadzone wszystkie piny mikrokontrolera, nie stwarza więc żadnych ograniczeń,
  • zawiera złącze USB przez które możemy moduł zasilać, programować, możemy je też wykorzystać do komunikacji z komputerem lub symulacji urządzeń USB-device (HID),
  • zawiera regulator napięcia LDO 3,3V, dzięki czemu możemy zasilać z USB inne układy, ale możemy także zrezygnować z zasilania USB i podłączyć zewnętrzne źródło zasilania,
  • moduł ten doskonale pasuje do płytki stykowej – po prostu wsuwamy go w płytkę i możemy pracować tak jak z układami w obudowie DIL, niemniej płytka stykowa nie jest potrzebna, możemy bezpośrednio wykorzystać wyprowadzone złącza,

  • wszystkie piny GND, Vcc i AGND oraz AVcc są właściwie połączone i odsprzęgnięte przez kondensatory 100 nF, dodatkowo AVcc połączone jest przez dławik, zmniejszający zakłócenia przedostające się do części analogowej,
  • na „pokładzie” mamy też kwarc 16 MHz oraz kwarc zegarkowy 32768 Hz, gdyby przyszła nam ochota sprawdzić jak działają zewnętrzne źródła zegara, lub zbudować układ kalendarzowy to wszystko co potrzebne mamy już w module,
  • moduł jest dostarczany z wgranym bootloaderem, dzięki czemu nie potrzebujemy programatora, a do programowania możemy wykorzystać darmowy program FLIP dostarczany przez firmę Atmel.

Także jest to szczególnie fajne rozwiązanie dla hobbystów, którzy chcą szybko zacząć przygodę z XMEGA (czy też w ogóle z mikrokontrolerami), a nie chcą od razu kupować programatorów i wydawać pieniędzy na moduły Xplained. W dalszej części tego wstępu do XMEGA pokażę przykłady bazujące m.in. na tym module, aczkolwiek posiadając schematy w połączeniu z kompatybilnością różnych serii XMEGA nie będzie problemu aby uruchomić je na czymkolwiek, w tym na własnoręcznie zbudowanych układach.


X3-DIL64

Inną propozycją równie ciekawą jak powyższa jest modul X3-DIL64 autorstwa Dominika Bieczyńskiego leon-instruments.blogspot.com.


Modul X3-DIL64 produkcji Leon Instruments.
Modul X3-DIL64

Moduł zawiera mikrokontroler ATxmega128A3U. Szczegółową dokumentację znajdziesz w linku powyżej.
Moduł ten umożliwia szybki start z nowymi procesorami ATxmega:
  • nie musisz kupować programatora PDI. Na płytce jest przycisk RESET oraz FLIP, dzięki czemu możesz szybko ładować nowe programy przez zwyczajny kabel USB, bez potrzeby rozłączania modułu czy podłączania zewnętrznych przycisków.
  • pamięci nigdy nie zabraknie - włóż kartę SD do gniazda połączonego z procesorem przez SPI. Ale jeśli nie chcesz korzystać z SD, to linie z interfejsu SPI możesz wykorzystać do innych celów.
  • włóż kwarc jaki chcesz - nie lubisz, kiedy producent zestawu narzuca Ci częstotliwość taktowania procesora? Słusznie! Dlatego w płytce X3-DIL64 z Leon Instruments zastosowano podstawkę, w którą możesz włożyć dowolny kwarc.
  • płytka odpowiada wymiarami obudowie DIL64 i wszystkie piny z obudowy procesora TQFP64 są dostępne i rozmieszczone w takiej samej kolejności. Są wyraźnie opisane na płytce, abyś nie musiał ich szukać w dokumentacji.
  • zasilanie z USB, z programatora PDI, albo z dowolnych pinów 3V3 i GND. Stabilizator, filtry, dławiki - to wszystko już jest w zestawie. 








Jeszcze inne rozwiązanie

... zrobić własny moduł wykorzystując fotochemiczną technikę tworzenia PCB, o której już niebawem krótki artykuł Dondu się pojawi. Tą metodą spokojnie wykonasz PCB o rastrze 0,5mm, czyli dla każdej XMEGA.


Wstęp do XMEGA: Spis treści

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

Dlaczego XMEGA?


Autor: tmf
Redakcja: Dondu

Wstęp do XMEGA: Spis treści


Nietypowo, zamiast od faktów, zacznę od własnych odczuć.

Z XMEGA miałem pierwszy kontakt gdzieś około 2009r. Po przejrzeniu paru not producenta stwierdziłem, że procki fajne, ale jakieś pokręcone i skomplikowane. O co w nich w ogóle chodzi?

Sprawę odłożyłem na później głównie dlatego, żeby skończyć książkę o AVR-ach. Jakieś dwa lata temu wróciłem do XMEGA na nowo, by po dwóch miesiącach obcowania z nimi stwierdzić, że już nigdy nie dotknę innego AVR, tylko XMEGA.

Konkurs - zagadka
W artykule jest mały konkurs-zagadka, a nagroda będzie ciekawa :-)

Aby nie lać dłużej wody przejdę do faktów:


Dlaczego XMEGA?




1. Jest prosta

Atmel odwalił kawał niezłej roboty porządkując układy peryferyjne. W końcu nie musimy zastanawiać się czy timer0 jest 8-, czy 16-bitowy, czy USARTB ma taką samą strukturę rejestrów konfiguracyjnych jak USARTA, czy inną? A może, czy układy A i B mają wspólny preskaler?

Nie, koniec niepewności. Od teraz timer, to timer, a USART, to USART. Co więcej każdy układ peryferyjny ma opisującą go strukturę języka C. Co to daje zobaczysz w przykładach, które pokażę w następnych artykułach.







2. Bogate peryferia

Spotkałeś się kiedyś z problemem typu – zabrakło mi portów szeregowych, albo przydałby się dodatkowy timer? Albo, jak uzyskać więcej kanałów PWM?

Jeśli tak, to ucieszy cię zapewne fakt, że szansa, że z tego typu problemami zetkniesz się przy XMEGA jest mała. Dlaczego? Bo mają one nawet:
  • osiem 16-bitowych timerów
  • osiem modułów USART
  • osiem modułów I2C
  • osiem modułów SPI,
  • itd. 

Czyli wszystkiego mamy więcej, a jak wiadomo od nadmiaru głowa nie boli :-)

A np. SPI nadaje się nie tylko do komunikacji z innymi urządzeniami, ale można za jego pomocą generować określone przebiegi cyfrowe, do wykorzystania na wiele sposobów, choćby do generowania dźwięku w protokole 1-bit.

Osiem timerów to za mało? A co powiesz na możliwość ich podzielenia w celu uzyskania 16 timerów?

Potrzebujesz dwudziestu sprzętowych kanałów PWM? Czemu tylko dwudziestu, XMEGA da Ci nawet trzydzieści dwa PWM.






3. Lepsze peryferia

Mamy nie tylko więcej peryferii, ale są one także lepsze. Dlaczego? Bo każdy z układów peryferyjnych dobrze przemyślano i rozszerzono. Umożliwiło to także uproszczenie peryferii bez zwiększenia stopnia ich skomplikowania.

Niemożliwe? A jednak. Pamiętasz tryby pracy timerów w ATmega? To świetnie, bo ja nie :-)
Było ich koło czternastu, czy jakoś tak. A czym się różniły? Hmm ...

W XMEGA jest inaczej. Mamy tylko 2-3 tryby, ale dodatkowe opcje czynią je tak uniwersalnymi, że można z nich wycisnąć więcej niż z czternastu trybów ATMega.

A może 16-bitowy licznik to za mało? Co powiesz na liczniki 32-bitowe? A może potrzebujesz 64-bitowych? Z XMEGA nie ma problemu.







4. USART: Osiem sztuk i prostota

Wiemy już, że jest ich nawet osiem. Co to daje?

Przede wszystkim możliwość ich wykorzystania do celów, do których szkoda marnować USART jeśli jest dostępny tylko jeden. Co powiesz na prostą implementację 1-wire? Bez wstrzymywania procesora, całkowicie sprzętowo?

A jakże, z XMEGA to normalka. Problemy z boudrate? Jaki dobrać kwarc USART-frendly?

W XMEGA to nie problem, dzięki generatorowi frakcyjnemu możemy sobie programowo wybrać dowolny baudrate dla dowolnej częstotliwości taktowania.

Kwarc do USART? Jaki kwarc? XMEGA ma stabilny generator RC, który jest fabrycznie prekalibrowany tak, że XMEGA nie wymaga kwarcu do zapewnienia poprawnej transmisji USART. Ba, nawet USB może działać z wewnętrznego generatora RC.






5. Pobór prądu 100 µA/MIPS

Budujesz układ zasilany z baterii lub akumulatora? ATmega ją niemiłosiernie drenuje?

Zastosuj XMEGA, te z serii E5 pobierają poniżej 100 µA/MIPS. Nie muszę tłumaczyć, co to oznacza dla długiej pracy na bateriach lub akumulatorach.








6. Wbudowany zegar czasu rzeczywistego (RTC)

Potrzebujesz zegara czasu rzeczywistego? Stosujesz zewnętrzne układy kalendarzowe typu PCF8563/83? Masz dosyć, bo komunikacja I2C to czarna magia i nic ci nie działa, a układ kosztuje tyle co mikrokontroler?

XMEGA ma zegary RTC16 i RTC32 z podtrzymywaniem bateryjnym (seria A3) pobierające zaledwie 500nA. Nie ma więc problemu, by wykorzystać dobre baterie i pracować na jednej baterii nawet 25 lat.

Cały układ kalendarzowy masz w zasięgu ręki, a dokładnie paru kliknięć w Atmel Studio.






7. Praca niskonapięciowa

Głowisz się jak podłączyć kartę pamięci SD? Karta działa na 3,3V, mikrokontroler na 5V, zastosować dzielnik, bufor?

Po co? Nie lepiej użyć mikrokontroler, który będzie działał na 3,3V, który można podłączyć bezpośrednio do SD? Masz w układzie elementy zasilane 5V? W czym problem, XMEGA to zniesie.





8. Dwukrotnie szybsza niż przeciętna ATmega.

Piszesz aplikację, która wyciska ostatnie poty z mikrokontrolera ATmega. Co powiesz na 2-razy więcej MIPS-ów?  Taktowanie 32 MHz daje ci szybkość dochodzącą do 32 MIPSów, ale to nie znaczy, że XMEGA jest „tylko” dwukrotnie szybsza niż inne AVR-y.

Dzięki rozbudowanym układom peryferyjnym całe fragmenty aplikacji można realizować sprzętowo, co czasami daje potężnego „kopa”.





9. Nowe peryferia

No właśnie, słyszałeś, że XMEGA ma jakieś nowe peryferia. Co ma?

9.1 DMA

DMA to układ umożliwiający transfer z I/O do pamięci i odwrotnie oraz z pamięci do pamięci. DMA ma także proste możliwości:
  • filtrowania danych, 
  • odwracania ich kolejności, 
  • wyszukiwania wzorców, 
  • liczenia sum kontrolnych CRC16 i CRC32 z przesyłanych danych,
  • itd. 
Co to daje? W wielu przypadkach po zaprogramowaniu kontrolera DMA procesor może zająć się czymś innym. Szczególnie to odciąża procesor przy współpracy z peryferiami.





Na przykład chcesz wysłać 100 bajtów przez SPI. Programujesz DMA i wysyłka robi się sama. Po zakończeniu operacji program zostanie poinformowany, że robota zakończona.


9.2 System zdarzeń (Event System)

To chyba najpotężniejsze narzędzie w XMEGA. Do dyspozycji mamy osiem kanałów, które umożliwiają połączenie ze sobą dowolnych układów peryferyjnych.

Wyobraź sobie, że chcesz przechwytywać zdarzenia z pinu I/O, nadawać im marker czasowy i zapisywać w buforze próbek. Nie ma problemu, łączysz interesujące Cię zdarzenie (określone zbocze lub poziom sygnału) z kanałem capture timera, który to po nadaniu mu markera czasowego inicjuje transfer DMA, odpowiedzialny za przesłanie wartości z timera do bufora w pamięci.

Ile to linii kodu? ZERO! Da się to zrobić całkowicie sprzętowo przy pomocy m.in. systemu zdarzeń.




A może naciśnięcie klawisza ma rozpocząć zliczanie czasu przez timer, a kolejne naciśnięcie ma go zatrzymać? To też da się zrobić całkowicie sprzętowo, łącząc peryferia poprzez system zdarzeń.

Nie wiesz jak obsługiwać enkoder obrotowy, nie wiesz co to kod Graya? Nie musisz wiedzieć, takie rzeczy XMEGA robi sprzętowo, po prostu ustawiasz bit informujący, że na wybranych pinach jest enkoder, a w timerze X chciałbyś mieć informację o liczbie obrotów enkodera.

Masz enkoder z indeksem? To też nie problem, XMEGA obsłuży to sprzętowo.


9.3 Sprzętowe szyfrowanie danych

Czytasz dużo o bezpieczeństwie danych, a budujesz układ komunikujący się radiowo. Dobrze byłoby szyfrować jakoś dane. Słyszałeś o DES, 3DES, AES, może to wykorzystać?

Kurcze, na ATmega taki kod zajmuje 6-9 kB i pochłania sporo mocy obliczeniowej, na XMEGA, mamy układ sprzętowy. Szyfrowanie bloku danych AES, to jakieś 360 taktów zegara i tyle instrukcji ile potrzeba do załadowania danych do rejestru (kilkanaście).


9.4 Przetwornik cyfrowo-analogowy (DAC)

Chcesz, aby budowany układ miał syntezę mowy, odtwarzał muzykę? Można wykorzystać PWM, ale po co skoro mamy dwa 2-kanałowe układy DAC? Po prostu ładujesz dane (chociażby z użyciem DMA), a sprzęt zajmuje się resztą :-)





9.5 Kontroler pamięci zewnętrznej

A może potrzebujesz więcej pamięci? Nowy kontroler pamięci zewnętrznej (EBI w XMEGA serii A1) obsługuje do 16MB pamięci RAM, oprócz SRAM obsługuje także pamięci SDRAM.

Mało tego, dzięki elastycznej konfiguracji możesz wybrać, czy chcesz zmniejszyć liczbę wykorzystanych pinów I/O kosztem zewnętrznych zatrzasków, czy chcesz uprościć układ i nie stosować zewnętrznych zatrzasków, łącząc SRAM bezpośrednio z XMEGA.


9.6 AWeX - sterowanie silnikami

A może chcesz sterować silnikami BLDC, czy krokowymi? Na naszej stronie masz świetny kurs poświęcony silnikom BLDC. Ale to prościej można zrobić na XMEGA, która posiada AWeX – specjalny podsystem zajmujący się generowaniem przebiegów sterujących silnikami:
  • możliwość sterowania PWM
  • automatycznego wstawiania czasów martwych (dead time), 
  • wykrywania sytuacji krytycznych i awaryjnego wyłączania silnika, 
z pewnością uchroni wiele budowanych przez Ciebie układów przed uwolnieniem „magicznego dymu”.


9.7 Hi-Res PWM

A może 16-bitowa rozdzielczość PWM jest niewystarczająca? Co powiesz na Hi-Res, podsystem rozszerzający rozdzielczość o dodatkowe 2-3 bity?


9.8 Wielopoziomowy system przerwań z priorytetami

Mierzi cię jednopoziomowy system przerwań ATmega? Co powiesz na system 3-poziomowy z priorytetami?

Żadnych więcej niebezpiecznych NO_BLOCK, po prostu przerwaniu istotniejszemu nadajesz wyższy priorytet.

A wygląda to tak:




9.9 IRCOM - czyli sprzętowy IrDA na pokładzie

Jako dodatek jest moduł IRCOM – umożliwiający transmisję w podczerwieni z wykorzystaniem protokołu IrDA.


9.10 USB

Dla starych wyjadaczy elektroniki, kolejna kostka to nie problem, dla hobbystów, szczególnie początkujących to kolejne źródło potencjalnych problemów, pomyłek, przyczyn dla których układ nie działa.

XMEGA mają USB device, to znaczy, że można je podłączyć do komputera tak jak każde urządzenie peryferyjne USB.

Co nam to daje? Przede wszystkim nie ma potrzeby stosowania układów interfejsów, typu FT232. Upraszcza to układ i zmniejsza koszty, a przede wszystkim zwiększa szansę na sukces.  XMEGA łączymy z USB najprościej jak się tylko da:
  • GND, 
  • D+, 
  • D-, 
  • opcjopnalnie Vcc 
bez jakichkolwiek elementów zewnętrznych, chociażby rezystora!!!

Można więc to przedstawić tak:







10 Fusebity i zegar - prosto przyjemnie i bezpiecznie.

Fusebity to prawdziwa zmora użytkowników AVR. Ale nie użytkowników XMEGA!

Z pewnością zdarzyło ci się, albo przynajmniej słyszałeś o zablokowanym mikrokontrolerze AVR, bo ktoś przestawił błędnie fusebity? Można się ratować różnymi nakładkami graficznymi, czy komercyjnymi programami, które mają rzekomo to uniemożliwić.

A można wybrać mikrokontroler, który ma konfigurację zegara rozwiązaną normalnie. XMEGA zawsze startuje z wewnętrznego zegara RC 2 MHz, co więc byś nie robił, mikrokontroler się uruchomi.

Zegar konfiguruje się całkowicie programowo – możesz sobie wybierać pomiędzy:
  • wbudowanymi, prekalibrowanymi zegarami 2MHz, 8MHz, 32kHz (o ultraniskim poborze prądu), 
  • 32768 Hz
  • zewnętrznymi generatorami RC
  • kwarcowymi,
  • itd. 



Co więcej, zegar taktujący MCU możesz zmieniać w trakcie jego działania, możesz go, co oczywiste, dzielić z wykorzystaniem preskalera, ale XMEGA ma także układ PLL umożliwiający pomnożenie wybranego zegara 1-31 razy.

W ten sposób możesz sobie także programowo XMEGA przetaktować powyżej wartości dopuszczalnych (co oczywiście nie jest zalecane), bez problemu do 50MHz, a serię U nawet do 64MHz (powyżej różnie to bywa).

W efekcie fusebity, to coś czego w XMEGA zwykle się nie rusza, praktycznie wykorzystuje się je wyłącznie do włączenia ochrony pamięci. Ze względu na elastyczność konfiguracji zegara w 99% przypadków nie ma potrzeby stosowania zegara zewnętrznego, co upraszcza płytkę. 

W książce, którą piszę o XMEGA na grubo ponad setkę przykładowych projektów (a może nawet grubo ponad dwie setki) tylko jeden wymaga zewnętrznego zegara ze względu na konieczność uzyskania niskiego jitteru.

Z A G A D K A

27 lutego 2013

Przy okazji mały konkurs-zagadka:

Jaki to wyjątkowy projekt  wymaga podłączenia do XMEGA zewnętrznego zegara (czytaj akapit powyżej)?

Dla pierwszej osoby, która poda prawidłowe rozwiązanie przewiduję nagrodę.

Regulamin konkursu:
  1. Nagrodę otrzyma pierwsza osoba, która poda prawidłową odpowiedź.
  2. Aby uczestniczyć w konkursie należy udzielić odpowiedzi na powyższe pytanie, za pomocą komentarza do niniejszego artykułu.
  3. Jako nazwę użytkownika należy podać nazwę swojego konta na forum Elektroda.pl.
  4. Informacja o zwycięzcy zostanie podana w tym artykule, a kontakt ze zwycięzcą nastąpi przez forum Elektroda.pl.
  5. UWAGA! Komentarze są moderowane (nie ukazują się od razu), ale decyduje godzina faktycznego napisania komentarza (według zegara systemu blogspot.com), a nie godzina moderowania. Kolejność jest więc zawsze zachowana. Dlatego proszę odpowiedzi przesyłać tylko raz, spokojnie czekając na ich moderację, która będzie miała miejsce hurtowo o północy 28 lutego 2013r. :-)





11. Nowy interfejs PDI / JTAG + programowanie przez interfejs USB

XMEGA posiadają nowy interfejs PDI / JTAG. Dlatego wymagają niestety nowych programatorów, AVRISP MkII, JTAGICE MkII,, JTAGICE3, AVR Dragon – tym XMEGA zaprogramujesz.

Ale nie jest źle – programatory tego typu kupisz już za 70zł. Od biedy da się też wykorzystać znany USBasp. Niemniej XMEGA mogą pracować już przy zasilaniu 1,6 V, co stwarza problem dla prostych programatorów.


PROGRAMATOR JEST ZBĘDNY!

Tak naprawdę programator nie jest potrzebny – do programowania można
wykorzystać bootloader i darmowy program FLIP dostarczany przez Atmela.
Ale uwaga! XMEGA nie posiadają firmowo wgranego bootloadera, stąd też ta
możliwość jest dostępna tylko na płytkach Xplained i minimodułach w
których producenci wgrali bootloader. Dotyczy to m.in. minimodułów naszych rodzimych producentów: LeonInstruments i Modułowo.

Prawdę mówiąc to całkiem niezłe rozwiązanie – kiedy pierwszy raz programowałem XMEGA przez USB z wykorzystaniem FLIP myślałem, że coś poszło nie tak. Wciskam klawisz programowania i już. Po prostu kilka kB wsadu programowało się na tyle szybko, że tego nie zauważyłem. :-)





12. Rerouting sygnałów

XMEGA wybacza też błędy projektowe i umożliwia łatwe projektowanie PCB.

Na gotowym PCB podłączyłeś źle sygnały?
USART jest na innych pinach, a sygnał, którego częstotliwość chciałeś mierzyć trafił nie tam gdzie chciałeś?
Projekt ścieżek byłby łatwiejszy, gdyby zamienić piny miejscami?

W czym problem? Przełączamy po prostu piny wewnętrznie, tak aby odpowiadały naszym potrzebom.

Wiele podsystemów XMEGA może korzystać z dowolnego pinu I/O, można to konfigurować m.in. przez event system lub specjalne rejestry umożliwiające rerouting sygnałów.

Często jest to w ogóle niepotrzebne – każdy port I/O posiada komplet portów – USART, I2C, SPI, wejścia/wyjścia timerów, w efekcie zmiany w programie są kosmetyczne, zamiast USARTC0 wykorzystasz np. USARTD0 – jeśli pomyliłeś się i doprowadziłeś sygnały z USART do PORTD zamiast PORTC.






13. Rozbudowane funkcjonalności portów I/O

XMEGA ma znacznie rozbudowane porty I/O – możesz wybierać konfiguracje open source / open drain. W efekcie np. magistralę 1-wire można zrobić całkowicie sprzętowo bez jednego chociażby elementu zewnętrznego.

Mamy już nie tylko rezystory podciągające do Vcc (tzw-pull-up), ale także do GND (tzw. pull-down), mamy konfiguracje totem pole i bus keeper, mamy o wiele więcej.

Mamy coś o czym często się zapomina, a co jest naprawdę ważne – kontrolę nad czasami narastania/opadania sygnału na pinach IOslew rate control

Dlaczego to takie ważne? Bo strome zbocza sygnałów cyfrowych generują potężne zakłócenia o szerokim widmie. Ograniczając stromość zboczy możemy te zakłócenia znacznie zredukować. Ma to fundamentalne znaczenie dla realizacji wielu interfejsów.






14. ADC 2Msps wraz z DMA - miodzio :-)

ADC to kolejny układ, który przeszedł lifting. Mamy nawet dwa niezależne 8-kanałowe układy ADC (ATMega ma tylko jeden 8-kanałowy ADC) ADC XMEGA może próbkować z rozdzielczością 12-bitową i szybkością nawet 2 Msps. Drzasiek to wspaniale wykorzystał budując w oparciu o XMEGA oscyloskop – jak na potrzeby amatorskie o parametrach naprawdę niezłych.




Co więcej, ADC współpracuje z DMA, dzięki czemu próbkowanie z maksymalnymi szybkościami nie obciąża CPU, procesor ciągle może robić w tym czasie inne rzeczy. 

ADC dysponuje także wzmacniaczem wejściowym o programowo regulowanym wzmocnieniu, co umożliwia pomiary napięć o amplitudach rzędu mV.

ADC ma też o wiele stabilniejsze niż w ATmega źródła referencyjne.






Podrodziny XMEGA

Poniżej wybrane rodziny, do których udało mi się znaleźć diagramy.


A1 subfamily with Crypto & DMA in 100 Pin package




A3 subfamily with Crypto & DMA in 64 Pin package




A4 subfamily with Crypto & DMA in 44 Pin package




D3 subfamily without Crypto & DMA in 64 Pin package





D4 subfamily without Crypto & DMA in 44 Pin package






Podsumowanie 

Rodzina XMEGA zawiera układy o różnych możliwościach i różnych peryferiach, poniższy rysunek ułatwi zorientowanie się co do możliwości poszczególnych rodzin:




Jak widzisz warto wybrać XMEGA, która pod każdym względem przewyższa wcześniejsze modele AVR.

Dla początkującego sprawa jest łatwa, a co mają zrobić osoby znające inne AVRy (ATTiny, ATMega)? Uczyć się wszystkiego od początku? Po co? Otóż nie.

Przesiadka z ATtiny, czy ATmega na XMEGA jest banalnie prosta. Przede wszystkim:
  • używasz tego samego IDE np. Atmel Studio (polecam!), Eclipse, CodeBlocks, itd.),
  • używasz tego samego kompilatora AVR GCC i toolchaina (które już masz),
  • rdzeń to ciągle ten sam doskonale znany Ci rdzeń AVR. Jeśli programujesz więc w asemblerze, to przesiadki nawet nie zauważysz,
  • w C problem jest tylko początkowo, co jest związane ze zmianą i usystematyzowaniem nazw rejestrów, ale po godzinie załapiesz nowe nazewnictwo i będzie się ono wydawało naturalne i logiczne.

W efekcie przesiadka jest łatwa i przyjemna, to mniej więcej tak jakbyś zamiast ATMega8 postanowił użyć ATMega128.






XMEGA na stronie Atmela:



Wstęp do XMEGA: Spis treści

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

Wstęp do mikrokontrolerów XMEGA Atmel'a.

Autorzy: Tomasz Francuz i inni
Redakcja: Dondu

Nasz blog poświęcony jest głównie mikrokontrolerom rodziny AVR, a rodzina, jak to rodzina lubi się powiększać. Także rodzina AVR wzbogaca się o nowe mikrokontrolery, a także o nowe serie. Z pewnością wielu fanów Atmela i AVR słyszało o XMEGA - najnowszym członku rodziny AVR.


O tej rodzine krąży wiele plotek typu, że są to skomplikowane mikrokontrolery, trudne do wykorzystania, nie ma ich czym programować i są drogie. Jak to z plotkami bywa, niewiele w nich prawdy. Ale nic tak bardzo nie rozwiewa plotek, jak rzetelne informacje. W krótkim cyklu artykułów postaram się wam przybliżyć nieco tę rodzinę.

Dlaczego? Dlatego, że naprawdę warto je poznać dostając znacznie więcej niż w ATtiny czy ATmega, przy jednoczesnym zachowaniu i wykorzystaniu całej Twojej wiedzy z tych rodzin.

A co powiesz na to, że do programowania XMEGA nie trzeba programatora?
Szczegóły znajdziesz w pierwszym artykule :-)


XMEGA
czyli ATmega na sterydach :-)

Wstęp do XMega:
  1. Dlaczego XMEGA?
  2. Moduły
  3. Moduły DIY by manekinen
  4. Podłączamy przez USB
  5. Pierwszy program
  6. Bootloader - ponowne ładowanie programu
  7. Na pohybel FT232, czyli jak prosto zrobić emulację portu szeregowego RS-232 na XMEGA?
  8. XMEGA i "inteligentne" diody RGB WS2812B cz. I
  9. XMEGA + UART i "inteligentne" diody RGB WS2812B cz. II NEW
  10. XMEGA + DMA + UART i "inteligentne" diody RGB WS2812B cz. III NEW
  11. ... jeżeli masz konkretny problem mogę go opisać (napisz poniżej komentarz).
Kurs XMega by Leon-Instruments
  1. Co trzeba wiedzieć, by zacząć?
  2. Pierwszy program.
  3. Nowe metody konfiguracji rejestrów.
  4. Porty i piny.
  5. Wyświetlacz LCD (HD44780)
  6. Przerwania
  7. Sygnały zegarowe
  8. Generator RC
  9. Generator kwarcowy 
  10. ... następnych kilkanaście w opracowaniu.

Niezbędne PDF-y:

Linki zewnętrzne
  1. Oficjalna strona XMEGA na Atmel.com



Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

XMEGA: Bootloader - ponowne ładowanie programu


Autor: tmf
Redakcja: Dondu

Wstęp do XMEGA: Spis treści


Zapewne po napisaniu pierwszej aplikacji na XMEGA przyjdzie ci ochota na kolejną. A tu przykre rozczarowanie – jak ponownie wejść w bootloader i uploadować nowy kod?

Problem w tym, że po RESET MCU wchodzi w bootloader, który stwierdza, że w pamięci FLASH znajduje się kod aplikacji i go automatycznie uruchamia, w efekcie nie da się ponownie połączyć z MCU przy pomocy FLIP.

Ale nie martw się – jest rozwiązanie tego problemu.

Każdy mikrokontroler rodziny XMEGA (części ATMega zresztą też), ma specjalny pin, którego stan informuje, czy ma być uruchomiony bootloader, czy aplikacja.

Tak naprawdę w tym pinie nie ma nic specjalnego, ot prawie zwykły pin I/O. Jeśli podczas RESET-u MCU będzie on znajdował się w stanie niskim, to bootloader nie uruchomi aplikacji, lecz będzie oczekiwał na polecenia np. z programu FLIP.

Który to pin? Odpowiedź na to pytanie zależy od użytego MCU, a znajdziemy ją w dokumencie Atmela: Atmel AVR1916: USB DFU Boot Loader for XMEGA

Ale uważaj, w wersji tego dokumentu z dnia pisania tego artykuły był błąd:


XMEGA: Piny odpowiedzialne za zmianę funkcjonalności Bootloader-a.


Wystarczy więc, że podczas włączenia zasilania zewrzemy pin PE5 do masy, a uruchomi się bootloader i będziemy mogli przeprogramować mikrokontroler.

Sprytne, prawda? W praktyce wystarczy na chwilę wyciągnąć wtyczkę USB i włożyć ją ponownie (o ile zasilamy MCU z USB), lub też na chwilę aktywować RESET, zwierając go do masy, co oszczędzi nam nadwyrężania gniazda USB, które i bez tego wygląda licho.

I to tyle. Mamy pierwszy program za sobą, a XMEGA radośnie miga diodami.

Wstęp do XMEGA: Spis treści

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

XMEGA: Pierwszy program


Autor: tmf
Redakcja: Dondu

Wstęp do XMEGA: Spis treści


Pierwszy program na XMEGA

Jaki będzie nasz pierwszy program? Słusznie się domyślasz, nieśmiertelne miganie LEDem. W tym celu uruchamiamy nasze ulubione IDE (czyli Atmel Studio – przy okazji warto przejrzeć krótki kurs na jego temat AS) i tworzymy pierwszy projekt, wybierając jako MCU XMEGA256A3BU – tu ważne, abyś z różnych dostępnych MCU wybrał ten, który posiadasz, wbrew pozorom, ostatnie literki nazwy mają znaczenie.

Jak pamiętamy w AVR piny I/O moga być skonfigurowane jako wyjścia, lub jako wejścia. Nie inaczej jest w XMEGA. Pominiemy na razie całe zawiłości konfiguracji I/O i różne możliwości jakie XMEGA oferuje, póki co chcemy prostą konfigurację totem-pole. Jako, że jest ona domyślna jedyne co musimy zrobić to przestawić piny I/O na wyjście:

PORTC.DIR=255;

Po tej operacji PORTC będzie wyjściem, a stan pinów będziemy mogli sobie radośnie zmieniać, co niniejszym uczynimy:
while(1)
    {
     PORTC.OUT=0;
     _delay_ms(1000);
     PORTC.OUT=0xff;
     _delay_ms(1000);    
    }

Jak widać naprzemiennie, co 1 sekundę zmieniamy stan wyjść PORTC z 1 na 0 i vice versa. Aby dać pewien przedsmak możliwościom o których wkrótce powiem, to samo możemy uzyskać pisząc po prostu:
while(1)
    {
      PORTC.OUTTGL=0xff;
      _delay_ms(1000);
    }

Jak się zapewne domyśliłeś, rejestr OUT to rejestr wyjściowy, a rejestr DIR to rejestr określający kierunek pinów. Czyli w starej ATMega byłyby to rejestry PORTC i DDRC. Nasz kompletny migacz wygląda tak:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
   PORTC.DIR=255;
   
   while(1)
   {
      PORTC.OUT=0;
      _delay_ms(1000);
      PORTC.OUT=0xff;
      _delay_ms(1000);
   }
}

TU możesz ściągnąć kompletny przykład w Atmel Studio 6: LEDBLINK.ZIP

Mamy więc napisaną pierwszą aplikację na XMEGA, proste, prawda?

To jeszcze sprawdźmy czy działa, nasz FLIP jest w gotowości, klikamy więc na ikonkę Load HEX File (przypominającą strzałkę do otwartej książki) i wskazujemy plik wynikowy – znajduje się on w katalogu LEDBLINK/LEDBLINK/Debug/LEDBLINK.hex i klikamy znajdujący się po lewej stronie przycisk Run. I tyle, mikrokontroler jest zaprogramowany.

Tyle, że nic się nie dzieje. Dlaczego? Ano dlatego, że MCU ciągle jest w sekcji bootloadera oczekując na kolejne polecenia. Aby odpalić naszą pierwszą aplikację musimy nacisnąć przycisk Start Application.

Po tej operacji diody podłączone do PORTC będą sobie radośnie migać (o ile oczywiście proste urządzenia półprzewodnikowe mogą wyrażać emocje).

Jeżeli będziesz próbował wgrać kolejny program zostaniesz zaskoczony, ale o tym w następnej części.


Wstęp do XMEGA: Spis treści

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

XMEGA: Podłączamy przez USB


Autor: tmf
Redakcja: Dondu

Wstęp do XMEGA: Spis treści


Zaczynamy przygodę – czyli jak podłączyć moduł XMEGA256A3BU, o którym pisałem w poprzednim artykule. Od dawna kusiło mnie, aby kupić sobie przejściówkę zawierającą XMEGA, która umożliwia łatwe połączenie jej z płytką stykową. Parę fajnych znalazłem w internecie, niestety na zagranicznych stronach, gdzie koszty przesyłki są porównywalne z ceną płytki. Z kolei Xplained są fajne, ale miałem dosyć pająków do płytki stykowej i plątaniny przewodów na biurku.

Modulik  XMEGA256A3BU przyszedł fajnie zapakowany i co ważne gotowy do użycia! Płytka opisana, przy każdym pinie widać jego opis – doskonale, wreszcie koniec z zaglądaniem do PDF'a, żeby sprawdzić rozkład pinów.




Ponieważ piny zasilające są odpowiednio połączone i mają już kondensatory odsprzęgające, cały moduł jest gotowy do użycia. No to jedziemy. Zachęcony wyglądem modułu postanowiłem go poddać pierwszemu testowi.


Podłączamy USB

Z lewej strony modułu widzimy gniazdo micro-USB – dobrze się składa, bo akurat stosowny kabel miałem pod ręką. Chwila adrenaliny – pójdzie dym, czy nie? Połączyłem i ... system wykrył nowe urządzenie USB. Jest dobrze ...



System widzi mikrokontroler i próbuje zainstalować klasę DFU – jest to wynalazek Atmela, a co to oznacza? Device Firmware Upgrade – jest to klasa umożliwiająca uaktualnienie firmaware przy pomocy standardowego bootloadera firmy Atmel.

Oczywiście na próżno oczekiwać, aby standardowy Windows posiadał dla niej sterowniki. Ale tak się dobrze składa, że wcześniej już musiałem w systemie coś Atmelowskiego instalować, chociażby Atmel Studio i jego programatory, więc jakoś magicznie odpowiedni sterownik się odnalazł, a mnie ukazał się upragniony widok:



Jeśli nie masz tyle szczęścia co ja, to jest na to rada. Ściągamy darmowy program FLIP, jest to coś co i tak za chwilę będziemy potrzebowali. Instalujemy go w domyślnej lokalizacji, a następnie, kiedy Windows zacznie narzekać, że nie znalazł driverów (dziwne, prawda?) wskazujemy mu ścieżkę do ich lokalizacji – przy standardowej instalacji FLIP będzie to katalog Atmel/FLIP/usb. W tym katalogu znajduje się plik atmel_usb_dfu.inf, który załatwi nam resztę.

Udało ci się zainstalować moduł? Gratulacje. Najtrudniejsze (o ile jest coś trudnego we włożeniu wtyczki USB) mamy już za sobą. Zakończyliśmy komunikatem:



A w menagerze urządzeń widzimy nasz nowy moduł:



Testujemy połączenie

Mamy też przy okazji zainstalowany FLIP, czyli mamy wszystko, więc pora przetestować połączenie. Odpalamy FLIP, klikamy na robaczka symbolizującego układ scalony (pierwsza ikona z lewej) i wybieramy ATXMEGA256A3BU (o ile taki MCU mamy na module, jeśli kupiliśmy inny to wybieramy taki MCU jaki posiadamy).

Następnie klikamy ikonkę symbolizującą wtyczkę USB i wybieramy jedyną dostępną opcję – USB. Zaraz po wybraniu opcji połączenia powinniśmy zobaczyć ekran jak poniżej:



Mamy informację o wersji bootloadera (Bootloader ver. 1.0.4), sygnaturę procesora (0x1E984306) lub inną jeśli dysponujemy innym MCU, informacje o dostępnej pamięci FLASH (256 kB) i parę innych rzeczy.

Widzimy więc, że połączenie działa, a nasz układ jest gotowy do pracy – pozostaje go jeszcze zaprogramować. O tym w następnej części.


Wstęp do XMEGA: Spis treści

Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.