Mikrokontrolery - Jak zacząć?

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

sobota, 19 marca 2011

Xplained Mini – czyli to, co Atmel już dawno temu zrobić był powinien


Autor: tmf
Redakcja: Dondu

Ostatnio ciągle trafiają mi w ręce nowe zestawy, co warto podkreślić, głównie polskie. I to bardzo dobrze, bo są świetne.

Tym razem testom poddam nowy zestaw Atmela – Xplained Mini. Serię zestawów rozwojowych Xplained wszyscy świetnie znamy, a szczególnie znają je czytelnicy moich książek – wszystkie dołączone do nich przykłady na nich bazują. W tej serii mieliśmy do tej pory Xplained z XMEGA 128A1, 256A3BU, 32E5, pojawiły się także wersje z ARM, oraz z „większymi” ATMegami.

Wszystko pięknie, tylko, że w stosunku do produktów konkurencji miały trzy poważne wady:
  • brak wbudowanego programatora (co omija wgrany bootloader),
  • brak sprzętowego debugera,
  • cena – 120-150 zł – nie ma tragedii, ale pięknie też nie jest.

Co więc ma zrobić fan mikrokontrolerów, który z niskim budżetem chciały rozpocząć przygodę z programowaniem? Najtaniej (ale nie najprościej) po prostu było wybrać jakiś zestaw z ARM, np. STM Discovery. Ale to się zmieniło…

Co oferuje Xplained Mini?

Moduł Xplained Mini
Moduł Xplained Mini


Pomimo nazwy Mini, nowy moduł z Atmela jest całkiem wypasiony. Ale zacznijmy od końca – ceny. W sklepie Atmela kosztuje $8 za Xplained ATMega168 Mni, do $8.50 za Xplained ATMega328 Mini. W Polsce można go kupić już za około 40 zł. 

Co za te pieniądze dostajemy? Otóż całkiem sporo:
  • na pokładzie mamy w zależności od wersji procesor ATMega168P lub ATMega328P – posiadający 16/32 kB FLASH, 1-2 kB SRAM, taktowanie 16 MHz (na stałe),
  • LED, przycisk oraz pole prototypowe,
  • i tu uwaga – wbudowany programator/debuger!

Wydaje się niemożliwe, a jednak – dostajemy możliwość programowania i debugowania mikrokontrolera, w dodatku wszystko działa wygodnie z poziomu Atmel Studio. Dzięki temu moduł ten jest godny polecenia dla każdej osoby zaczynającej przygodę z mikrokontrolerami. Nie musimy już ślęczeć godzinami nad kodem zastanawiając się, gdzie jest błąd. Teraz możemy na żywo podglądać jego wykonanie i korzystać z wszystkich możliwości jakie do tej pory były zarezerwowane dla posiadaczy sprzętowych debuggerów, z których najtańszy – Atmel ICE PCBA kosztuje około 160 zł.

Ale to nie wszystko – nasz moduł posiada pole prototypowe, które można wykorzystać do przylutowania elementów zewnętrznych – nic ciekawego i nie za bardzo ma to sens. To co jest ważne, to że w polu tym zostały wyprowadzone wszystkie sygnały mikrokontrolera (jego piny IO), w dodatku w formacie kompatybilnym z tzw. shieldami Arduino. Dzięki temu wszystkie moduły zaprojektowane dla Arduino będą wprost współpracować z naszym Xplained Mini!

Kompatybilność z Arduino

Kompatybilność z Arduino jest ciekawą cechą Xplained Mini. Moduł ten zawiera opcjonalnie mikrokontroler ATMega328P wspierany przez Arduino, a przy tym jest tańszy od zawierającego ten sam mikrokontroler Arduino UNO, w dodatku posiada wspomniany programator/debugger. Kompatybilność oznacza, że nasz moduł po wgraniu kodu Arduino będzie po prostu działał jak oryginalne Arduino.

Mała uwaga. Kupując Xplained Mini warto kupić wersję drugą (rev. 2) – wersja ta ma dwie zmiany w stosunku do pierwszej wersji Xplained – posiada wlutowane złącze mikroUSB zamiast złącza stykowego USB A, dodatkowo posiada wbudowany stabilizator 3,3V, dzięki czemu napięcie to jest dostępne na złączu.

Aby móc podłączyć shieldy Arduino należy w pole prototypowe wlutować żeńskie gniazda dla goldpinów o rozstawie 100 milsów (2,54 mm). Proces ten jest prosty i szybki. Gniazda te warto także wlutować jeśli nie planujemy skorzystać z shieldów – można w nie wkładać kable łączące z płytką stykową lub budowanymi przez nas układami.

Podłączenie

Podłączenie naszego modułu jest niezwykle proste – po prostu we wlutowane gniazdko mikroUSB wkładamy kabel – możemy moduł w ten sposób podłączyć zarówno z komputerem PC, możemy je wykorzystać po także jako zasilanie. W tym celu kabel z wtyczką USB może pochodzić z np. zasilacza smartfona. Dzięki temu nie musimy inwestować w osobny zasilacz. Należy tylko pamiętać, że wydajność prądowa portu USB w komputerze jest dla USB 2.0 ograniczona do 500 mA, a dla USB 3.0 do 900 mA lub 1,5 A jeśli nie transmitujemy danych.

W praktyce większość płyt głównych pozwala na pobieranie znacznie większego prądu nawet z portu USB 2.0. Musimy jednak pamiętać, że jeśli pobieramy poprzez zwykły kabel USB znaczący prąd, to indukowane zakłócenia mogą uczynić niemożliwym przesył przez ten sam kabel danych. Nasz układ będzie działał, ale raczej możemy zapomnieć o programowaniu/debugowaniu, stąd też warto nie przeginać z pobieranym prądem.

Ten sam kabel USB posłuży nie tylko do zasilania układu – będzie on wykorzystywany także do programowania i debugowania w Atmel Studio. Ale to nie wszystko. Po podłączeniu do komputera nasz moduł zgłosi się jako urządzenie hybrydowe – oprócz debugera w menadżerze urządzeń zobaczymy też wirtualny port szeregowy.

Po co on jest? Tu ujawnia się kolejna miła cecha Xplained Mini. Port szeregowy mikrokontrolera ATMega168/328 jest podłączony do znajdującego się na płytce modułu mEDBG, który dokonuje translacji wszystkich danych z portu szeregowego mikrokontrolera i przesyła je przez USB na wirtualny port szeregowy utworzony w komputerze. Dzięki czemu z procesorem możemy bezpośrednio komunikować się z wykorzystaniem RS232! Odpada więc użycie translatora poziomów (MAX232) i konieczność posiadania w komputerze rzeczywistego interfejsu szeregowego. Jest to superwygodne rozwiązanie. Oczywiście jeśli chcemy, możemy podłączyć MAX232 i komunikować się z wykorzystaniem normalnego portu szeregowego, pytanie tylko po co?

Uwaga! Przed podłączeniem modułu zainstaluj Atmel Studio w wersji co najmniej 6.2. Zawiera ono wszystkie sterowniki do płytki, dzięki czemu moduł będzie od razu gotowy do pracy.


Pierwsze podłączenie

Po połączeniu modułu Xplained z komputerem, po chwili zobaczymy gotowe do pracy urządzenie. Aby się upewnić, że wszystko jest ok możemy kliknąć na menadżer urządzeń:


Widok Menagera
Widok Menagera

Pojawią nam się dwa urządzenia – pierwsze mEDBG to urządzenie za pomocą, którego Atmel Studio będzie komunikował się z modułem w celu programowania i debugowania. Drugie – port komunikacyjny – to wirtualny interfejs szeregowy, poprzez który będziemy mogli wymieniać dane z pisanym programem z wykorzystaniem RS232.

Jeśli włączymy Atmel Studio to pokaże nam się zakładka sygnalizująca gotowość modułu do pracy:


Widok w Atmel Studio
Widok w Atmel Studio

Od tej chwili jesteśmy gotowi do pracy z modułem i możemy zacząć pisać swój pierwszy kod. Jak widzimy start z mikrokontrolerami jeszcze nigdy nie był tak prosty.


Pierwszy program

Nasz moduł jest widoczny w systemie, jak napisać na niego program? Przede wszystkim tworząc nowy projekt musimy wybrać mikrokontroler jaki znajduje się w naszym module – ATMega168P lub ATMega328P. Po utworzeniu projektu musimy pamiętać o jednej rzeczy – mikrokontroler zawarty w module Xplained zawsze taktowany jest z generatora kwarcowego o częstotliwości 16 MHz – musimy więc w opcjach projektu zdefiniować symbol F_CPU i nadać mu wartość 16000000UL. I to wszystko – możemy zacząć pisać program.

A co jeśli 16 MHz nam nie odpowiada? Częstotliwość taktowania MCU możemy zmienić, ale wyłącznie korzystając z wbudowanego preskalera zegara – umożliwia on podział częstotliwości, dzięki czemu mikrokontroler może być taktowany wolniej. Innych możliwości oferowanych wprost (np. przestawienia na wewnętrzny generator RC) nie ma – ale nie za bardzo to przeszkadza.

Programowanie

Aby zaprogramować naszą płytkę we właściwościach projektu klikamy na zakładkę Tool i wybieramy typ programatora oraz interfejs programowania układu:


Widok programatora
Widok programatora


Pamiętaj, że jeśli w oknie wyboru programatora (Selected debugger/programmer) nie widzisz urządzenia mEDBG to najprawdopodobniej jako typ mikrokontrolera w opcjach projektu nie wybrałeś mikrokontrolera znajdującego się na posiadanej płytce Xplained (a więc ATMegi 168P lub ATMegi 328P).

Jako interfejs programowania/debugowania warto wybrać debugWire – umożliwi to sprzętowe debugowanie pisanej aplikacji. I to już naprawdę wszystko – od tego momentu możemy pisać i debuggować nasz kod tak jak to zostało pokazane w kursie Atmel Studio.

Pliki do pobrania

Dla zainteresowanych poniżej linki do plików do pobrania:

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

12 komentarzy:

  1. Gdzie można nabyć takie moduły? Na stronie Atmela przesyłka kosztuje az 34$, a w żadnym sklepie nie mogę znaleźć tego modułu.

    OdpowiedzUsuń
    Odpowiedzi
    1. ja widziałem na Farnell, ale niestety osoba prywatna musi zrobić zakupy za więcej niż 300 zł netto, może ktoś gdzieś jeszcze znalazł ?

      Usuń
    2. Są w Farnellu, pewnie jak się pojawi zapotrzebowanie to i Seguro sprowadzi. Co prawda kupowałem je w sklepie Atmela, ale Farnell z tego co wiem nie ma żadnych ograniczeń co do minimalnej wartości zamówienia dla osoby fizycznej - na niektóre towary jest co najwyżej ograniczenie na minimalną ilość sztuk. Osobiście mogę ten sklep polecić - mają duży wybór i błyskawicznie dostarczają towar - zwykle następnego dnia mam w domu to co zamówiłem. Aczkolwiek czasami warto sprawdzić ceny u konkurencji, np. zwykle w Seguro lub TME procesory są tańsze.

      Usuń
  2. udało mi się zakupić ten moduł na farnelu jednak mam problem, na win 8 64bity nie chce współpracować z Atmel Studio - zainstalowało mi w menadżerze tylko jedno urządzenie

    OdpowiedzUsuń
  3. i mam błąd w AS
    Unable to connect to tool mEDBG (ATML232304020000747�)
    Timestamp: 2014-10-17 21:10:29.693
    Severity: ERROR
    ComponentId: 20000
    StatusCode: 0
    Failed to set-up tool (no context id returned).
    ma ktoś pomysły co zrobić ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Zainstalować najnowszą wersję Atmel Studio, zrestartować komputer, sprawdzić połączenia, w szczególności kabel USB.

      Usuń
    2. niestety mam dwa takie moduły i jeden działa bez najmniejszego problemy, a drugi atakuje takim komunikatem

      Usuń
    3. Masz błąd w numerze seryjnym modułu, chodzi tu o znak - "?". W Twoim przypadku błąd pojawia się na końcu numeru seryjnego więc powinien Ci pomóc skrypt set_serial, który możesz pobrać z:

      http://atmel.force.com/support/articles/en_US/FAQ/Unable-to-connect-ATmega328P-Xplained-Mini/?q=atprogram+standalone&l=en_US&fs=RelatedArticle

      Jeśli to nie pomoże, możesz zmienić cały numer seryjny modułu korzystając ze skryptu Serial_number_bug_fix. Pobierzesz go ze strony:

      http://spaces.atmel.com/gf/project/avr_xp_mini/frs/

      Pozdrawiam

      Usuń
  4. Czy ktoświe gdzie to można kupić w Polsce? (oprócz Farnella, bo tam nie ma i nie wiadomo kiedy będzie). Sklep Atmela też odpada bo cena z przesyłką ok 43$.

    OdpowiedzUsuń
    Odpowiedzi
    1. http://www.conrad.pl/Płyta-rozwojowa-ATmega328P-Xplained-Mini-MEGA328P-XMINI-Atmel-MEGA328P-XMINI.htm?websale8=conrad&pi=1290229
      Ale to tylko dla bogatych ;P

      Usuń
    2. W Farnellu już jest po 46zł netto. To, że mamy tak drogo w stosunku do USA to wina naszych socjalistów. Niestety, żeby komuś dać, komuś trzeba zabrać.

      Usuń
  5. Nie zgodzę się, że to cacko jest tańsze od arduino UNO. Pewnie jest bardziej funkcjonalne, ale arduino UNO można kupić na ebay'u od chińczyka za 8$ (+darmowa wysyłka), a jak ktoś ma szczęście ze sterownikiem ch340 (który u mnie działał tylko na linuksie), to nawet za 4,5$ (+też darmowa wysyłka), co wychodzi jeszcze taniej niż xplained mini w Atmel Store (+ bez darmowej wysyłki)... Poza tym kupując w Polsce to minimum jakie się zapłaci to te 46+vat, czyli jakieś 56 zł (+przesyłka, ale to ostatnie przy większych zakupach można pominąć). No powiedzmy, że to około 40zł, o których tmf pisał... Myślę, że takie naciąganie cen jest trochę nie w porządku, a do zabawy z uC na dłuższą metę i tak trzeba kupić jakiś programator najlepiej z debuggerem. (IMHO) lepiej zaczynać od "niezmodułowanych" uC, bo wtedy przynajmniej wiesz potem jak to podłączyć, wiesz o zakłóceniach etc., a nie że dajesz zasilanie i działa, o jakichkolwiek kondensatorach zapominasz, stabilizacja prądu cię nie dotyczy, opór ścieżek i zakłócenia też, bo producent wszystko przemyślał etc. A jak spalisz takie xplained to jest tylko płacz i zgrzytanie zębów i łysienie na skutek wyrywania sobie włosów z głowy, bo nawet jak uszkodziłeś sam tani uC, to będąc początkującym go nie wymienisz bo to smd...

    OdpowiedzUsuń

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.