Mikrokontrolery - Jak zacząć?

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

piątek, 25 marca 2011

Jak czytać noty katalogowe mikrokontrolerów AVR (cz. I)



Autor: tmf
Redakcja: Dondu


Artykuł składa się z dwóch części: Jak czytać noty katalogowe mikrokontrolerów AVR (cz. II)

Jednym z częstszych problemów z którymi spotykają się początkujący elektronicy jest interpretacja not katalogowych układów. W gąszczu różnych magicznych oznaczeń łatwo się pogubić, w efekcie szybko się zniechęcamy i porzucamy to niezwykle cenne źródło informacji.

W tym mini cyklu pokażę jak czytać noty mikrokontrolerów AVR, na przykładzie XMEGA. Dlaczego XMEGA? Bo w ich notach występuje wszystko co w notach innych AVR-ów, a w dodatku są to następcy popularnej rodziny ATMega.

Użytkownicy AVR-ów przywykli do tego, że wszelkie informacje na temat użytego procesora znajdują się w jego nocie katalogowej. W przypadku XMEGA jest nieco inaczej, informacje na temat rodziny (A, B, C, D, E) znajdują się w nocie ogólnej opisującej rodzinę, natomiast informacje szczegółowe, w tym charakterystyka elektryczna układu w nocie konkretnego procesora. Jednak w takiej nocie nie znajdziemy szczegółowego opisu np. peryferii – będzie tylko skrótowa informacja, że dany mikrokontroler określony układ peryferyjny posiada.

W efekcie w nocie „XMEGA A MANUAL” znajdziemy dokładny opis wszystkich peryferii rodziny XMEGA A, łącznie z opisem rejestrów i ich poszczególnych bitów. Ale w tej nocie na próżno szukać informacji np. o maksymalnym prądzie IO pinu, czy też układach peryferyjnych dostępnych np. w XMEGA128A1. Tego typu informacje znajdziemy w nocie szczegółowej ATXMEGA128A1.

Warto zauważyć, że procesory należące do tej samej rodziny, np. wspomnianej A1, różniące się wyłącznie wielkością dostępnej pamięci, mają wspólną notę katalogową. Stąd informacje na temat charakterystyki mikrokontrolerów XMEGA128A1, 64A1, 192A1, 256A1 i 384A1 znajdziemy w tej samej nocie.

Osoby korzystające z Atmel Studio mają nieco ułatwioną sytuację. Jeśli klikniemy na typ procesora na listwie narzędziowej to pojawi się okienko informacyjne:


Wybór noty katalogowej procesora w Atmel Studio.
Wybór noty katalogowej procesora w Atmel Studio

W okienku tym możemy kliknąć na nazwę procesora (np. ATXMEGA256A3BU) lub link Datasheets, co spowoduje przeniesienie nas na odpowiednią podstronę strony firmowej Atmela:


Na stronie Atmela można znaleźć różne dokumenty opisujące używany nikrokontroler.
Na stronie Atmela można znaleźć różne dokumenty
opisujące używany procesor

Na stronie tej mamy dostęp do wszystkich dokumentów powiązanych z wybranym mikrokontrolerem. Przede wszystkim na pierwszej pozycji widzimy dokument nazwany Atmel AVR XMEGA AU Manual – jest to dokument zawierający szczegółowy opis rodziny XMEGA AU. Zaraz pod nim widzimy dokument Atxmega256A3BU Complete – jest to dokument opisujący charakterystykę użytego mikrokontrolera.

Tego typu dokumenty nazywane są Complete – jeśli jest to finalna wersja dokumentu, lub Preliminary – jeśli dokument jest w fazie tworzenia. Dokumenty typu preliminary należy traktować jako wersje robocze. Poniżej tych dwóch najważniejszych dokumentów znajdziemy setki innych znajdujących się w sekcji Application Note – są to tzw. noty aplikacyjne. Dokumenty te są niezwykle ważne – zawierają one gotowe, rekomendowane przez firmę Atmel rozwiązania różnych problemów. Od bardzo ogólnych typu jak zasilić mikrokontroler, do bardzo szczegółowych, np. jak zrealizować regulator PID. Warto je przejrzeć, chociażby po tytułach. W przypadku not aplikacyjnych oprócz dokumentu pdf czasami mamy możliwość pobrania związanych z nim przykładowych kodów:


Do niektórych not można pobrać kody przykładów.
Do niektórych not można pobrać kody przykładów.

W takim przypadku oprócz symbolu dokumentu pdf obok znajdzie się mała ikonka symbolizująca folder.

Ok, widzimy więc, że dostęp do informacji jest niezwykle prosty. Przejdźmy więc do czytania not. Po otwarciu dokumentu pdf warto wyświetlić sobie indeks dokumentu, dzięki temu łatwo będziemy mogli poruszać się po jego poszczególnych sekcjach:

Każdy dokument posiada spis treści ułatwiający w nim nawigację.
Każdy dokument posiada spis treści ułatwiający
w nim nawigację.

Każdy dokument ma identyczny podział na sekcje, dzięki czemu niezależnie od użytego procesora, te same informacje zawsze znajdziemy w tych samych sekcjach. Zanim zaczniemy czytać informacje zawarte w nocie warto zwrócić uwagę na mały szczegół znajdujący się w prawym dolnym rogu pierwszej strony:


Struktura noty katalogowej.
Struktura noty katalogowej.

Jest to informacja (na pokazanym przykładzie 8077H-AVR-12/09) zawierająca numer noty, wersję i datę jej wydania. Czasami wydawane są aktualizacje not, w efekcie jeśli powołujemy się na notę katalogową to warto podać jej wersję i datę wydania. Numer noty ułatwia z kolei jej wyszukanie – zamiast podawać długi tytuł, możemy posłużyć się krótkim numerem, np. 8077.

Zobaczmy jak wyglądają najważniejsze sekcje noty.

Sekcja Features

Sekcja ta zawiera jednostronnicowe podsumowanie informacji o użytym mikrokontrolerze.


Sekcja Features.
Sekcja Features.


W tej części możemy szybko znaleźć bardzo ogólne informacje dotyczące mikrokontrolera – ilość dostępnej pamięci FLASH, SRAM i EEPROM, dostępnych układów peryferyjnych, typów obudów w jakich jest on dostępny, maksymalnej częstotliwości taktowania i napięć zasilających. Informacje te są bardzo ogólne, jeśli jednak interesuje nas np. ile USART-ów ma wybrany mikrokontroler, to w tej sekcji na to pytanie szybko znajdziemy odpowiedź.


Sekcja Pinout/Block Diagram

To kolejna krótka sekcja – zawiera ona rysunki obudów w jakich występuje wybrany mikrokontroler i sposób przyporządkowania podsystemów mikrokontrolera do wyprowadzeń obudowy.


Sekcja Pinout/Block Diagram.
Sekcja Pinout/Block Diagram.


Informacje zawarte w tej sekcji musimy zawsze bardzo dokładnie przeanalizować. Właściwie z konieczności dokładnej analizy tej sekcji zwalnia nas wyłącznie posiadanie sprawdzonej biblioteki, do której mamy pełne zaufanie, zawierającej definicję wybranego układu dla wykorzystywanego przez nas programu typu CAD.

Na przykład biblioteki AVR dla popularnego programu Eagle zawierają predefiniowane mikrokontrolery z przyporządkowanymi sygnałami do wyprowadzeń, w efekcie projektując schemat i PCB w Eagle sekcję tą możemy pominąć. To co będziemy widzieć na ekranie to nazwy symboliczne (np. PJ2), Eagle samo zadba o połączenie sygnału z odpowiednim pinem.

Pamiętaj, że jak do wszystkiego, także do gotowych bibliotek trzeba mieć ograniczone zaufanie. Nic nie szkodzi sprawdzić, czy sygnały zostały w bibliotece właściwie przyporządkowane do poszczególnych pinów.


Sekcje opisujące rdzeń i układy peryferyjne


Kolejne sekcje zawierają opisy poszczególnych podsystemów mikrokontrolera – jego rdzenia i układów peryferyjnych. W notach szczegółowych sekcje te zawierają jedynie bardzo skrótowe informacje, mieszczące się na 1-2 stronach. Sekcje te bardzo szczegółowo opisują dany układ peryferyjny w nocie dotyczącej wybranej rodziny mikrokontrolerów. W każdej nocie sekcje te są do siebie niezwykle podobne i na razie je pominiemy.


Sekcja Electrical Characteristics

Jest to najważniejsza sekcja noty szczegółowej procesora. Znajdziemy w niej wszystkie parametry elektryczne użytego mikorkontrolera. Właściwie nigdy nie powinniśmy rozpoczynać przygody z mikorkontrolerem nie przeglądając bardzo dokładnie tej sekcji jego noty.

Czasami wystarczy ograniczyć się do opisu elementów, które wykorzystujemy w danym projekcie, lecz zazwyczaj warto tę sekcję przestudiować dokładnie. Sekcja ta składa się z kilku elementów.

Absolute Maximum Ratings

Element Absolute Maximum Ratings, czyli maksymalne dopuszczalne warunki pracy układu to część, którą absolutnie i zawsze musimy przeczytać. Zawiera ona krytyczne informacje na temat procesora, dotyczące parametrów po przekroczeniu których możemy procesor nieodwracalnie uszkodzić.


Sekcja Electrical Characteristics.
Sekcja Electrical Characteristics.

Warto podkreślić, że parametry wymienione w tej sekcji to parametry maksymalne, po przekroczeniu, których procesor może ulec nieodwracalnemu uszkodzeniu.

Jeden z elektrodowiczów zadał pytanie:

Chumanista
Czy Atmega 128 przeżyje zasilanie 6,6V (4 paluszki)?


Po przeczytaniu sekcji Absolute Maximum Ratings odpowiedź jest znana i nie musimy się zdawać na opinie innych osób :-)

Nie znaczy to jednak, że procesor może pracować stale przy podanych parametrach. Podane parametry można osiągać krótkotrwale, jednak zalecane jest, aby w projektowanym układzie nigdy nie dochodziło do sytuacji, w której do tych parametrów się zbliżymy. Co one oznaczają? Przyglądnijmy im się po kolei.

Operating Temperature – jest to zakres temperatur w których może pracować mikrokontroler. Nie znaczy to jednak, że zawsze może on pracować w podanym zakresie. Szczególnie istotna jest tu maksymalna temperatura pracy. W pokazanym przykładzie wynosi ona 125 ºC – jest to maksymalna temperatura układu, a nie otoczenia. Maksymalna temperatura otoczenia będzie zależała od wielu czynników. Przede wszystkim od strat w mikrokontrolerze. Na skutek pobierania znacznego prądu z jego pinów IO struktura scalona może się nagrzewać, co ograniczy maksymalną temperaturę otoczenia.

Storage Temperature – jest to zakres temperatur, w którym mikrokontroler może być przechowywany. To znaczy, że w tym zakresie może on sobie leżeć niepodłączony na półce, lecz nie może on normalnie działać. Zazwyczaj zakres temperatur przechowywania jest szerszy niż zakres temperatur pracy.

Voltage on any Pin with respect to Ground – jest to zakres napięć jakie mogą panować na dowolnym pinie IO w stosunku do pinu masy (Ground). Napięcie to nie może być niższe niż -0,5V i wyższe niż Vcc+0,5V. Dlaczego? Ano dlatego, że każdy pin IO (z wyjątkiem pinu RESET w niektórych mikrokontrolerach) jest zabezpieczony diodami, które są integralną częścią struktury scalonej. Jeśli na przykład na pin doprowadzimy napięcie wyższe niż Vcc+0,5V to prąd zacznie płynąć od pinu do Vcc przez diodę ochronną. Po przekroczeniu jej maksymalnego prądu (który jest niewielki i nie przekracza 0,5 mA) może dojść do jej uszkodzenia. Owe 0,5 V (czasami 0,6 V) to nic innego jak napięcie przewodzenia takiej wbudowanej diody.

Maximum Operating Voltage – jest to maksymalne napięcie zasilania mikrokontrolera. Jednak nie znaczy to, że mikrokontroler takim napięciem może być zasilany. Po jego przekroczeniu zazwyczaj dochodzi do uszkodzenia układu, lecz nawet zbliżanie się do podanej wartości nie jest zalecane.

DC Current per IO Pin – jest to maksymalny prąd stały który można pobierać lub dostarczać do pinu IO. Dlaczego stały? Dlatego, że prąd w impulsie może być znacznie większy, generalnie im krótszy impuls tym większy prąd jaki możemy bezpiecznie pobierać/dostarczać do pinu IO. Oczywiście w rozsądnych granicach. A czym grozi przekroczenie dopuszczalnego prądu pinu? Konsekwencje wynikają z budowy struktury scalonej. Bufory wyjściowe mogą tworzyć pasożytnicze struktury tyrystorowe. Tyrystory mają to do siebie, że jak się włączą to wyłączyć je może wyłącznie zanik prądu. A co taki pasożytniczy tyrystor może włączyć? Między innymi duży impuls prądowy. W efekcie może zdarzyć się sytuacja, że na skutek dużego udaru prądowego dojdzie do wystąpienia tzw. zjawiska zatrzaśnięcia (latch up) – kiedy zaczynają przewodzi oba tranzystory bufora wyjściowego CPU, w efekcie dochodzi do dużych strat i uszkodzenia układu. Drugi powód jest związany również z budową buforów wyjściowych. Bufor taki tworzą dwa tranzystory MOSFET, a jak pamiętamy tranzystory takie cechują się pewną rezystancją źródło-dren. W efekcie na takim tranzystorze wydziela się moc równa P=I2R. Czyli mamy ciepło! :-)

DC Current Vcc and GND Pins – to kolejny niezwykle istotny parametr. Określa on maksymalny prąd pobierany przez cały układ scalony. Wydawałoby się, że jeśli użyty mikrokontroler ma np. 40 pinów IO, a dla każdego z nich maksymalny prąd jest równy 20 mA, to łącznie możemy pobierać 40*20 mA, czyli 800mA. Nic bardziej mylnego:

Musimy pamiętać, aby sumaryczny prąd wszystkich pinów nie przekroczył maksymalnego prądu dla pinów zasilania, w naszym przykładzie będzie to 200 mA.

W efekcie jeśli chcemy po równo obciążyć 40 pinów IO, to na każdy przypadać będzie prąd maksymalny równy „zaledwie” 5 mA! Tak naprawdę prąd ten należałoby pomniejszyć o prąd pobierany przez sam mikrokontroler. Dla niektórych układów istnieją dodatkowe ograniczenia – np. na maksymalny prąd pobierany z pinów danego portu IO.

DC characterisatics

Jest to ciekawa sekcja, w której zawarte są różne informacje na temat np. poboru prądu przez mikrokontroler dla różnych warunków jego pracy i przez różne podsystemy. Prąd pobierany przez mikrokontroler podawany jest dla określonej częstotliwości (jak wiemy im wyższa częstotliwość tym większy pobierany prąd) i przy określonych innych warunkach (tryb aktywny – Active, lub tryby o obniżonym poborze mocy, np. Idle).

Dodatkowo mamy wymienione typowe zapotrzebowanie na energię dla poszczególnych podsystemów mikrokontrolera (które możemy włączać i wyłączać). W efekcie całkowity pobór prądu równy jest sumie poboru prądu przez poszczególne podsystemy.


DC characterisatics.
DC characterisatics.

Tu musimy pamiętać, że w tych wyliczeniach nie jest uwzględniony prąd pobierany lub dostarczany do pinów IO mikrokontrolera. W efekcie jeśli do pinu podepniemy diodę LED, która bierze np. 5 mA, to oczywiście sumaryczny prąd o te 5 mA wzrośnie. Sekcja ta ma znaczenie dla osób, które projektują układy zasilane z baterii, przy normalnym zasilaniu zazwyczaj wartości w niej określone nie mają większego znaczenia – często prąd pobierany przez układy podłączone do mikrokontrolera jest większy niż prąd pobierany przez mikrokontroler.

W tej sekcji warto zwrócić uwagę na jeszcze jedną ważną cechę – sposób podawania parametrów. W notach większość parametrów podawana jest w trzech kolumnach zatytułowanych Min, Typ i Max. Kolumna Min określa minimalną wartość danego parametru. W kolumnie Typ mamy wartość typową, możliwą do uzyskania w większości przypadków, a w kolumnie Max mamy wartość maksymalną danego parametru.

W prezentowanej sekcji mamy podane parametry typowe, to znaczy, że niektóre mikrokontrolery będą charakteryzowały się lepszymi parametrami (niższym poborem energii), a może się zdarzyć, że pobór energii będzie większy (chociaż nie jest to typowe). O ile większy? Producent tego nie precyzuje, tego typu informacje można znaleźć w innych notach, w których dostępne są informacje na temat cech statystycznych danej serii – np. rozkładu prądów zasilających.


Sekcja Speed

Jest to sekcja krótka, ale zawsze warto na nią spojrzeć. W sekcji tej określona jest maksymalna częstotliwość taktowania dla określonego napięcia zasilania. Wartość ta pokazana jest tabelarycznie:

Częstotliwość taktowania - tabela.
Częstotliwość taktowania - tabela.

lub graficznie:

Częstotliwość taktowania - wykres.
Częstotliwość taktowania - wykres.

Jak interpretować ten wykres? Safe Operating Area to obszar w którym procesor może „bezpiecznie”, czyli pewnie działać. Jak widzimy obszar ten jest zaznaczony na szaro. Poza nim procesor może działać, ale nie jest to gwarantowane przez producenta i w budowanym układzie procesor nigdy nie powinien w tym obszarze się znaleźć. Widzimy, że maksymalna częstotliwość zależy od napięcia zasilającego. Dla napięć 1,6 do 1,8V XMEGA może być taktowana maksymalnie częstotliwością 12 MHz, w zakresie 1,8-2,7V częstotliwość ta rośnie proporcjonalnie do napięcia i osiąga wartość maksymalną 32 MHz, a powyżej 2,7V procesor może pracować z maksymalną częstotliwością równą 32 MHz.

Tu warto wspomnieć jeszcze o jednej rzeczy – tzw. overclockingu. Termin żywcem wzięty z PC, gdzie ludzie bawią się w tuningowanie komputera w celu uzyskania lepszych osiągów. W świecie mikrokontrolerów przetaktowywanie procesora jest pomysłem wyjątkowo kiepskim.

Dlaczego? Przede wszystkim dlatego, że mikrokontroler musi działać pewnie. O ile jak nam PC się zawiesi, to najwyżej stracimy stan gry, o tyle, zawieszenie się, czy nieprawidłowe działanie mikrokontrolera może mieć poważniejsze konsekwencje – procesory te sterują w końcu czasami krytycznymi procesami. Bardzo trudno jest sprawdzić, czy w wyniku przetaktowania procesor działa poprawnie, a szczególnie czy poprawnie działają jego poszczególne bloki funkcjonalne. Najbardziej narażone na negatywne efekty przetaktowania są pamięć FLASH i EEPROM, a po nich przetwornik ADC.

Warto zauważyć, że w naszym przypadku przetaktowaniem jest taktowanie procesora >32 MHz dla Vcc>2,7V, ale także >12 MHz dla zasilania w zakresie 1,6-1,8V.


Najbezpieczniej jest przyjąć, że jeśli przekraczamy maksymalne parametry określone w nocie, to wkraczany na teren nieznany, gdzie zdarzyć może się wszystko. Jeśli przekroczyłeś maksymalne parametry i w efekcie coś ci nie działa, to nie ma też sensu pytanie o przyczynę na forach.

To, że w identycznej aplikacji innej osobie wszystko będzie działać nic nie znaczy :-)

Tu wróćmy jeszcze na chwilę do naszych kolumn Min, Typ i Max. Jak widzimy producent dla poszczególnych napięć zasilających określił, że minimalna częstotliwość taktowania wynosi 0 MHz, a maksymalne jest zależna od napięcia. Nie określił wartości typowej.

Co to znaczy? To znaczy, że procesor może pracować w całym zakresie określonym przez wartość Min i Max. A co, gdyby wartość typowa była określona? To by znaczyło, że z jakiegoś powodu, najlepiej będzie jeśli użyjemy określonego jako typowe taktowania. Czasami tak się dzieje przy „gołych” pozbawionych kontrolera wyświetlaczach LCD. Dla określonej częstotliwości typowej np. trwałość LCD będzie największa, lub zakres jego pracy będzie najszerszy.


FLASH and EEPROM Memory Characteristics

To sekcja do której zagląda się rzadko – zazwyczaj zawarte w niej informacje są wspólne dla wszystkich procesorów danego producenta. W tabeli:


FLASH and EEPROM Memory Characteristics.
FLASH and EEPROM Memory Characteristics.

znajdziemy informacje na temat liczby cykli zapisu. Jak pamiętamy liczba zapisów do pamięci FLASH i EEPROM jest ograniczona. Write/Erase Cycles jest podane osobno dla pamięci Flash i EEPROM.

W naszym przykładzie liczba cykli zapisu wynosi dla Flash 10 tysięcy, a dla pamięci EEPROM 30-80 tysięcy cykli w zależności od temperatury. Jak widzimy podane wartości są wartościami minimalnymi, to znaczy, że procesor „wytrzyma” co najmniej podaną liczbę cykli, leczy typowo będzie to o wiele więcej.

Dla pamięci podane są też tzw. czasy retencji (Data retention) – czas przez jaki gwarantowane jest zachowanie stanu komórek, a wiec informacji, przez pamięć. Jak widzimy, czas ten jest podany dla różnych temperatur. Dla temperatury 25 ºC wynosi on dla obu pamięci 100 lat, ale dla 55 ºC już tylko 25 lat. A ile wyniósłby on dla 100 ºC? Tego producent nam wprost nie podaje, ale możemy ekstrapolować dane, które posiadamy. Jak widzimy dwukrotny wzrost temperatury spowodował 4-krotny spadek czasu retencji.

Wzrost temperatury z 55 do 100 ºC spowoduje więc kolejne mniej więcej 4-krotne skrócenie czasu retencji, a więc zostanie nam około 6 lat.

W tej samej sekcji mamy jeszcze jedną tabelę:

Czasy programowania EEPROM.
Czasy programowania EEPROM.

W tabeli tej mamy określone czasy programowania pamięci. Osobno czas kasowania całego układu (chip erase), czas kasowania strony (Page Erase), czas zapisu strony (Page Write), a także czas połączonego kasowania i zapisu (Page WriteAutomatic Page Erase and Write).

Do czego to nam potrzebne? Właściwie do niczego. Takim wyjątkiem jest sytuacja, w której projektujemy układ, który wymaga podtrzymania zasilania na czas zapisu danych do EEPROM. Aby wiedzieć ile potrzebujemy energii, musimy wiedzieć ile czasu zajmie zapis pamięci. Przykłady tego typu szczegółowo omawiam w książce "AVR. Praktyczne projekty".

To na razie tyle. W dalszych odcinkach (jeśli będzie takie zapotrzebowanie) omówię kolejne parametry zawarte w notach.


Część II-ga artykułu

Artykuł składa się z dwóch części: Jak czytać noty katalogowe mikrokontrolerów AVR (cz. II)


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

3 komentarze:

  1. Super sprawa. Bez takiej wiedzy nie wyobrażam sobie wgłebiania sie w tajniki mikrokontrolerów, ale też innych scalaków wysokiej skali integracji.

    OdpowiedzUsuń
  2. W zasadzie to totalne podstawy, a i tak to o wiele za mało.

    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.