Mikrokontrolery - Jak zacząć?

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

sobota, 26 lutego 2011

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:

30 komentarzy:

  1. Dzięki za super wprowadzenie w rodzinę xmega. Szczególnie projekt modułów DIY jest świetny, ponieważ xmegi mozna kupić już za 15-20zł i tanio wykonać płytkę prototypową. Z niecierpliwością czekam (zapewnie nie tylko ja) na ciąg dalszy!
    Pozdrawiam

    OdpowiedzUsuń
  2. Książki jeszcze całej nie przeczytałem, ale brakuje mi chyba jednej rzeczy - wykorzystania ADC. Czy dałoby się krótko opisać sposób korzystania z ADC na Xmegach?

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak, temat ADC poruszymy w kursie XMEGA, dokładniej jest to opisane w drugim tomie książki o XMEGA razem z innymi analogowymi ukłądami peryferyjnymi tego procesora.

      Usuń
  3. Tak, o ADC też będzie, będzie i tu. Także bez obaw, kolejne artykuły o XMEGA się pojawią.

    OdpowiedzUsuń
    Odpowiedzi
    1. A ja dodam, że dzisiaj będzie opublikowany Tomka artykuł o rozumieniu datasheet i tam jest co nieco w zakresie ADC.

      Usuń
  4. Na podstawie książki próbuję napisać program. Chcę ustawić wew. generator 32MHz jako taktowanie dla CP{U, jednak mam pewien problem. Dlaczego Atmel Studio podkreśla mi linię: while (!(OSC.STATUS & OSC_RC32MRDY_bm);
    i wyskakuje mi error: expected identifier ? Jak temu zaradziź?

    OdpowiedzUsuń
    Odpowiedzi
    1. Źle skopiowałem, zapomniałem o jednym nawiasie. Dotyczy to takiej linijki: while (!(OSC.STATUS & OSC_RC32MRDY_bm));

      Usuń
    2. Z pewnością problem dotyczy tej linii? Bo ona jest absolutnie poprawna, problem może dotyczyć jakiejś linii wcześniejszej. Ewentualnie nie dołączyłeś av/io.h. Tego typu problemy wygodniej jest rozwiązywać na Elektrodzie - załóż odpowiedni temat.

      Usuń
  5. Czy udało by się napisać artykuł o sterowaniu wyświetlaczem ze sterownikiem SSD1963?
    Głównie chodziło by mi o wykorzystanie DMA do przesłania danych i systemu zdarzeń do generowania sygnałów sterujących magistralą 8080. Dopiero zacząłem przygodę z mikrokontrolerami i od razu wpakowałem się w xmegi. Co z tego wyjdzie to się dopiero okaże.
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak, artykuły o TFT z pewnością się pojawią. Kiedy? To zależy od zapotrzebowania, jeśli więcej osób będzie chciało to można to w miarę szybko zrobić. Sterowanie tym układem jest niezwykle proste. Możesz wziąć albo XMEGA z serii A1, która ma interfejs pamięci zewnętrznej zgodny z 8080 i połączyć SED bezpośrednio - wtedy jego rejestry widzisz w wybranej przez ciebie przestrzeni adresowej pamięci (dzięki konfiguratorowi sygnału wyboru CS), albo bierzesz mniejszą XMEGA i generujesz stroby RW/WR za pomocą kanałów systemu zdarzeń wyprowadzonych na IO.

      Usuń
    2. Ja się piszę na taki kursik - od tygodnia walczę ze sprzętowym SPI w XMEGA, nie mogę nawet znaleźć informacji w internecie (nigdy nie robiłem żadnego SPI w niczym)

      Usuń
    3. SPI na XMega będzie opisane za jakiś czas.

      Usuń
    4. Ale w czym masz problem z tym SPI? To najprostszy ukłąd, nawet nie ma o czym pisać :) Raptem rejestr kontrolny i rejestr danych :) Wrzuć problem na elektrodę i daj tu link - zapewne się go rozwiąże w parę minut bez czekania na artykuł :)

      Usuń
  6. Witam,
    wiadomo już co z przetwornikiem ADC?
    Potrzebuję zmierzyć bardzo małe napięcie ( w zakresie 0-15mV różnicowe) i dlatego kombinuję z dodatkowymi wzmacniaczami aby podłączyć je pod atmegę, a może po prostu wystarczyć zmienić serce układu? Po zmierzeniu muszę wysłać wynik na wyświetlacz i po rs232 a zależy mi na dokładności pomiaru (nie na tempie, pomiar co 0,1s mnie zadawala bo układ i tak ma swoją bezwładność). Proszę o opinię.
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Witaj.
      Przetwornik ADC omówi Dominik w swojej części kursu XMega. Zobacz jakie masz dostępne wewnętrzne źródła napięcia odniesienia i wybierz najmniejsze możliwe, ale większe od największego jakie może mieć napięcie mierzone.

      Usuń
    2. A z jaką dokładnością i rozdzielczością chcesz mierzyć to napięcie? XMEGA ma możliwość amplifikacji napięcia przy pomocy programowalnego wzmacniacza o wzmocnieniu 1/2-64 razy. Z drugiej strony jeśli masz 12-bitowy ADC, do tego nie zależy ci jak piszesz na szybkości to można się pokusić o oversampling nawet do 16 bitów, co umożliwi bezpośrednio pomiar napięcia (wbudowany wzmacniacz wprowadza pewne błędy, jak każdy zresztą wzmacniacz).
      Najlepiej załóż temat na elektrodzie i wklej tu link - tak łatwiej się dyskutuje.

      Usuń
  7. Cześć,
    czy byłaby możliwość stworzenia tutorialu, jak wykorzystać moduł ethernetowy ENC28j60?
    Np. z prezentacją zmiennych mikroprocesora i jak odbierać jakieś dane z innego serwera, np. jakąś zmienną, by później zapisać ja w rejestrze mikrokontrolera?
    Chodzi także o przerobienie gotowych bibliotek pod XMEGĘ np. ze znanych bibliotek z tuxgraphics.

    OdpowiedzUsuń
    Odpowiedzi
    1. Jeśli masz porządną bibliotekę obsługi ENC to jej przerobienie na XMEGA wymaga tylko zmiany dwóch funkcji: inicjalizacji SPI i wysyłania/odbierania bajtów po SPI. Raptem jakieś 5 linii kodu.

      Usuń
  8. Witam, z racji tego, że Xmegi są wyposażone w sprzętowy RTC, może i do tego mógłby powstać jakiś tutorial? Uwzględniający np wybudzenie procka ze stanu uśpienia raz na jakiś czas.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja też byłbym zainteresowany opisem wykorzystania wbudowanego w XMEGI RTC :)

      Usuń
  9. Znalazłem dział w książce Tomasza "Avr praktyczne projekty " - którą kupuję jest opisane to zagadnienie. :) , co nie zmienia faktu, że taki tutorial mógł by się ludziom bawiącym xmegą przydać. pozdro

    OdpowiedzUsuń
  10. Witam,

    Ma ktoś może jakieś źródło jeśli chodzi o pamięci AT45DB642D-CNV?

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam.
      CNV, a nie CNU?
      Z tego co widzę CNU są w Farnell.

      Usuń
    2. Tak. CNU. W Farnell nie są niestety już dostępne bo nie są produkowane. Trzeba skorzystać z nowych pamięci typu E, co wiąże się ze zmianami w kodzie.

      Usuń
    3. Niestety nie jestem w stanie pomóc.

      Usuń
  11. Jest już dalsza część poradnika, ale na stronie Leona

    OdpowiedzUsuń
  12. Witam,
    nie wiem, czy jeszcze ktoś tu zagląda, ale zapytam:
    Czy jest możliwość wykorzystania ft232 jako programatora z interfejsem PDI, tak aby móc go wykorzystać do wgrania bootloader’a dla wybranego mikrokontrolera serii ATxmega?
    Uprzejmie dziękuję za jakiekolwiek informacje.
    Pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. Oczywiście jest taka możliwość. Tyle, że sam musisz sobie napisać odpowiedni soft, bo standardowo AVRDude tego chyba nie obsługuje.

      Usuń
  13. Mam pytani: Jak wyłączyć kasowanie EEPROMU przy programowaniu Xmegi? Domyślam się,że trzeba wpisać jakaś linie kodu, jeśli dla kogoś nie byłoby to problem, to proszę o podpowiedź. :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak jak w każdym AVR - trzeba skasować bit EESAVE w fusebitach. Można to zrobić programatorem lub programowo poprzez zmianę rejestru FUSEBYTE5, pola EESAVE.

      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.