Mikrokontrolery - Jak zacząć?

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

sobota, 26 lutego 2011

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:

39 komentarzy:

  1. Co będzie nagrodą?

    OdpowiedzUsuń
  2. Odpowiedź do zagadki: generowanie sygnałów video.
    Nazwa konta: wolf99

    OdpowiedzUsuń
  3. Miernik częstotliwości.

    OdpowiedzUsuń
  4. Koszt mikrokontlorerów z serii stm32 jest podobny do xmega, a możliwości stm32 są dużo większe.

    OdpowiedzUsuń
  5. Cena jest tylko jednym z kryteriów - patrz ostatnia czerwona ramka powyżej oraz tutaj: Jaki mikrokontroler wybrać?

    OdpowiedzUsuń
  6. mi się wydaje, że odpowiedzią na pytanie jest generowanie jakiś bardzo wrażliwych na odchyłki synałów. Takim sygnałem może być np. sygnał wizji w systemie PAL albo NTSC lub VGA. Oczywiście w kolorze.
    Pozdrawiam,
    Krzysztof Gibasiewicz (miszcz310).

    OdpowiedzUsuń
  7. Odp. na konkurs: projekt odtwarzający muzykę bądź generator DDS

    OdpowiedzUsuń
  8. Niski jitter (czyli stabliny zegar, a więc kwarc) jest wymagany do generowania obrazu (VGA lub TV).

    OdpowiedzUsuń
  9. Odpowiedź na zagadkę to: system/silnik do gier video

    OdpowiedzUsuń
  10. myślę, że chodzi o przetwornik A/C. pozdrawiam

    OdpowiedzUsuń
  11. Aplikacja wykorzystująca RTC.

    OdpowiedzUsuń
  12. Korzystamy z zewnętrznego zegara ze względu na konieczność uzyskania niskiego jitteru.

    OdpowiedzUsuń
  13. Kontroler RFID, a może odtwarzacz MP3?

    (Nazwa konta Google jest taka sama jak na Elektrodzie ;))

    OdpowiedzUsuń
  14. Możliwości piękne nie moge się doczekać dalszego ciągu

    OdpowiedzUsuń
  15. Zapowiada się ciekawie.
    Czekam na ciąg dalszy.
    Gratuluję blog'a i pozdrawiam.
    Stały czytelnik

    OdpowiedzUsuń
  16. ROZWIĄZANIE ZAGADKI DZISIAJ
    Rozwiązanie konkursu tmf przedstawi dzisiaj wieczorem.

    OdpowiedzUsuń
  17. Pierwszy był kolega wolf99, tak więc jest zwycięzcą konkursu, niemniej gratuluję wszystkim, powiem szczerze, że zaskoczyła mnie liczba poprawnych odpowiedzi.
    Oczywiście chodzi o zastosowania w których ważny jest mały jitter, w książce, która mam nadzieję wkrótce będzie dostępna, przykładem, który tego wymaga jest generowanie obrazu TV/VGA.
    BTW, piszcie propozycje co was interesuje w kontekście XMEGA, a stosowne artykuły z pewnością się pojawią, o ile oczywiście kolega Dondu da radę je redagować :)

    OdpowiedzUsuń
  18. Z przyjemnością, choć musicie wiedzieć, że czasami czekają kilka tygodni na swoją kolej - tak jest w tej chwili z sześcioma artykułami :)

    OdpowiedzUsuń
  19. możecie mi powiedzieć jak przy pomocy Winavr+Eclipse ogarnąć ATXMEGA64A4U?? nie mogę go znaleźć na liście procesorów?

    OdpowiedzUsuń
  20. Przy pomocy WinAVR to raczej tego nie ogarniesz, bo to za stary toolchain. Ściągnij najnowszy toolchain z Atmela, albo Atmel Studio 6.x, co ma o tyle sens, że przynajmniej symulator warto mieć o ile nie sprzętowy debugger. Chyba, że piszesz pod GNU/Linux i nie masz wyboru.

    OdpowiedzUsuń
  21. tak też właśnie się doczytałem. Spróbuję odpalić atmel toolchain na Eclipse.

    OdpowiedzUsuń
  22. W niektórych fragmentach czytało się to bardziej jak tekst pisany przez marketingowca niż artykuł techniczny, ale sporo informacji zawiera

    OdpowiedzUsuń
  23. Bo to jest marketing :) Zachęta do tego, żeby XMEGA się zająć. Dalsze artykuły są i będą stricte techniczne.

    OdpowiedzUsuń
  24. Witam , z kolegą chcemy zbudować joystick wysokich parametrów do laptopa . Z początku chciałem skorzystać z Atmegi128 ale jako że trzeba do niej budować przejście z USB przy pomocy np FT232 , oraz to że pracuje z małymi częstotliwościami , czy to że posiada niewielką ilość pinów zadecydowało o użyciu Xmegi A1. W schemacie wykorzystuje także ADC (24bity 96kHz) WM8775 (jako osie x, y ,z oraz przepustnica - grając min w Ił 2 doszedłem do wniosku że przydadzą się prawdziwe , mega dokładne orczyki ) . Kolejne 7 potencjometrów ( mieszanka , skok śmigła , trymery od x y i z , oraz rozglądanie się) kieruje do ADC (Port A) w ATxmega . W projekcie są 64 przyciski programowalne (multipleksowane 8x8) oraz 16 przycisków radia (4x4) . Zdecydowałem się użyć dodatkowo AT89S8253 jako przekaźnika sygnału cyfrowego to wyświetlacza 16x1 (gdyż obawiałem się że ten dziadek może nie rozpoznać stanu wysokiego na ATx). Tak naprawde jestem świerzakiem i nie mam doświadczenia w układach z ADC , czy mikrokontrolerach , jako gimnazjalista zacząłem interesować się elektroniką i lutowałem trochę w audio (wzmacniacze małej mocy z gotowych schematów , czy w telefonach - drobne naprawy oraz zmiana diod itp.) , później porzuciłem w sumie elektronikę na rzecz lotnictwa (asem nie jestem , ale jak by co mogę coś doradzić :) ). Jak by ktoś chciał pomóc to podaje maila cor-angar@Tlen.pl , żeby wysłać schemat ( bo ciężko rozmawiać o czymś czego się nie widzi). Dziękuje i pozdrawiam :D

    OdpowiedzUsuń
  25. Jeśli XMEGA zasilisz 3,3V to LCD spokojnie te poziomy rozpozna i pośrednik nie będzie potrzebny. Przykłady urządzeń HID USB masz w Atmel Studio i w projekcie LUFA, chociaż mnie osobiście bardziej pasuje stos USB Atmela. Wrzuć na elektrodzie wątek jeśli masz konkretny problem, to łatwiej będzie dyskutować.
    BTW, mam nadzieję, że kupiłeś XMEGA A1U, bo A1 nie ma USB (i żeby było śmieszniej jest droższa). BTW, jeśli jesteśpoczątkujący, to z tym 24-bitowym ADC pojechałeś...

    OdpowiedzUsuń
  26. Mnie interesuje konkretny mikrokontroler, który ma 32 PWM. Widzę dla niego bardzo dobre zastosowanie.

    OdpowiedzUsuń
    Odpowiedzi
    1. W nowych XMEGA, np. XMEGAxxxA1U każdy timer typu 0 ma 8 kanałów PWM. Ponieważ np. rodzina A1U ma cztery timery typu 0, masz więc łącznie 32 kanały PWM.

      Usuń
  27. tmf, czy jesteś pewien stabilności wewnętrznego RC w XMEGACH? Jestem w trakcie budowania systemu, w którym kilkanaście modułów jest zarządzanych poprzez RS485. Zależy mi na stabilności działania systemu oraz jak najmniejszych rozmiarach modułów. Rezonator kwarcowy jest obecnie idealnym kandydatem do wywalenia, aby zmniejszyć rozmiary płytki:) W planach miałem użyć Atmega88 i takie też testuję, ale to sprawa otwarta. Xmegom od dawna się przyglądam, a artykuł przekonuje:) Modułów ma być do 20-stu, każdy odpytywany sekwencyjny (ciągła kontrola), dane wysyłane przez moduł to max kilka bajtów. Jaką prędkośc mogę uzyskać, przy minimalnym procencie błędów bez rezonatora? Rozumiem, że w takim razie Xmega8E5 będzie dobrym zamiennikiem w/w układu, ale gdzie go w Polsce można kupić?

    OdpowiedzUsuń
    Odpowiedzi
    1. XMEGA8E5 mają w Farnellu w niezłej cenie, XMEGA32E5 mają w cenie niewiele wyższej np. w Seguro (z tego co wiem Seguro będzie wprowadzać stopniowo także modele z mniejszą ilością FLASH). Co do stabilności wewnętrznego generatora RC - tak deklaruje producent. Z drugiej strony używam XMEGA na RC do projektów zarówno z USART, jak i z USB (USB też może byc taktowane z generatora RC!) i nie mam żadnych problemów. Pamiętaj też, że dzięki DFLL generator RC 2 MHz i 32 MHz mogą być stabilizowane względem referencji (np. generatora ULP). W praktyce ograniczeniem szybkości transmisji będzie raczej długość magistrali i użyte transceivery, a nie stabilność generatora RC. Błedy USART można też zminimalizować dzięki generatorowi frakcyjnemu, w który jest USART XMEGA wyposażony. W efekcie masz do dyspozycji niecałkowite stopnie podziału, stąd też praktycznie zawsze błąd można sprowadzić do właściwie 0%. Nie występują więc problemy znane z innych procesorów ze stosowaniem kwarców USART-friendly.
      Także XMEGA E5 szczerze polecam, ze względu na niską cenę, możliwości i wygodę programowania. Pamiętaj też, że XMEGA mają oddzielną pamięć na bootloader, więc 8E5 ma więcej FLASH niż 8 kB. No i seria E5 ma tzw. custom logic, czyli dwa bloki sekwencyjno-kombinatoryjne, które można dowolnie oprogramować (coś jak makrocele z CPLD). Można je użyć np. do sprzętowej realizacji kodera/dekodera Manchester.

      Usuń
    2. Dzięki za szybką odpowiedź. Patrząc na cenny układów XMEGA są nieco wyższe, no i napięcie do 3,6V, więc transceivery droższe, niewątpliwie podroży projekt ale już zdecydowałem, dobry moment by poznać XMEGA. Skorzystam z Twojej wiedzy i doświadczenia = odwiedziłem helion.pl i zakupiłem "AVR. Praktyczne projekty":) Pozdrawiam

      Usuń
    3. XMEGA E5 jest w cenie ATMega8 i jest tańsza niż ATMega88, przy nieporównywalnie wyższych możliwościach. Co do transceiverów 485 - główny wpływ na cenę ma firma z jakiej kupujesz. Niestety te tanie są badziewne, a oryginalne MAXy nie są tanie...

      Usuń
  28. Hej :) Fajny artykuł bardzo mi pomógł i skłonił do wykorzystania xmegi w mojej pracy inzynierskiej (moj pierwszy uC). Ale prosze zredagujcie tekst w taki sposób aby nie by lo mylnych informacji. Nie każdą xmege można zaprogramować przez USB, w sumie jest ich tylko klika. Jak piszecie o jakiś fajny fukcjach zaznaczcie których serii to dotyczy. Bardzo długo dochodziłam do tego czy moją wybraną xmegę można zaprogramować przez USB i okazuję się, że jednak nie.. Warto by też było wspomnieć, że i tak do takiego programowania jest potrzebny programator do zaprogramowania po raz pierwszy....

    OdpowiedzUsuń
    Odpowiedzi
    1. Masz rację, dziękuję za uwagę. W artykule nanieśliśmy stosowne poprawki. Niestety bootloader w XMEGA jest tylko wtedy, gdy ktoś go wgra - niemniej jeśli się kupuje gotowe minimoduły to bootloader jest i można korzystać z FLIPa.

      Usuń
  29. szkoda, że programowanie i ciągłe problemy z wgrywaniem bootloadera, ponadto cena, XMEGA E najtaniej 40zł, kusi moc, lecz jej wykorzystanie dla zawodowych wielkich projektów

    OdpowiedzUsuń
    Odpowiedzi
    1. Gdzie ty żyjesz? Pierwszy lepszy sklep, np. Seguro - XMEGA32E5 - 9,69 zł z VAT. XMEGA E5 z 8 lub 16 kB FLASH są tańsze, a jest jeszcze tania rodzina D. Więc jakie 40 zł? No i o jakich problemach z bootloaderem piszesz? Raz się go wgrywa, a potem przy jego pomocy programuje MCU.

      Usuń
  30. gdzie można zobaczyć w necie poza modułami leona ? wgrywanie bootloadera ?
    nie wszyscy są zawodowcami !

    OdpowiedzUsuń
  31. cyt. "Masz w układzie elementy zasilane 5V? W czym problem, XMEGA to zniesie."

    Jesteście tego pewni? Mogę bezpiecznie podłączyć wyjście układu pracującego w domenie 5V z wejściem ATXMegi?

    OdpowiedzUsuń
    Odpowiedzi
    1. To zależy od układu. Lepiej łączyć w takiej sytuacji przez rezystory. Bezpośrednie połączenie to raczej wyjście z XMEGA i wejście ukł. zasilanego 5V.

      Usuń
    2. Też zastanawiam się nad takim podłączeniem. Tylko teraz pytanie czy rezystory podłączać szeregowo żeby ograniczyć przepływ prądu i to będzie bezpieczne dla uC czy raczej chodzi o dzielniki napięcia 5V-3.3V ?

      Usuń

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.