PICkit-2 czy PICkit-3? Podobieństwa i różnice
Już dawno zainteresowałem się mikrokontrolerami PIC, jednak przysłowiowe „postawienie kropki nad i” wymusiły skutki kryzysu, który dotknął przemysł elektroniczny i z którego tak ciężko jest mu się otrząsnąć. Stale są trudności z zakupem tych najbardziej popularnych mikrokontrolerów, a ich ceny są windowane do granic możliwości. Być może powinienem pójść z duchem czasu i w nowoprojektowanych urządzeniach stosować mikrokontrolery z rdzeniem ARM, jednak moim zdaniem w przypadku niektórych aplikacji jest to wytaczanie armaty na muchę.
Pierwszy kontakt z ofertą mikrokontrolerów produkowanych przez Microchip jest porażający. Otwierająca się w przeglądarce internetowej lista układów liczy kilkaset pozycji, których oznaczenia nie są zbyt czytelne dla początkującego. Jeśli jeszcze nie podjęliśmy decyzji o wyborze jakiegoś konkretnego typu mikrokontrolera, to może ją ułatwić interaktywne narzędzie o nazwie Selector Guide. Jednak używając go miałem wrażenie, że konstruktor musi dokładnie wiedzieć, jakich zasobów będzie potrzebowało oprogramowanie mikrokontrolera. Być może można wybrać „mocny mikrokontroler”, a następnie po napisaniu programu zmienić go na inny, tańszy i „słabszy”, ale z doświadczenia z innymi układami wiem, że przy migracji mogą wystąpić jakieś problemy.
Pewną pomocą przy ocenie zasobów niezbędnych do realizacji danego zadania są dostępne na stronie internetowej noty aplikacyjne. Na przykład planując komunikowanie się mikrokontrolera przez interfejs Ethernet możemy wśród bibliotek odszukać stos TCP/IP udostępniany przez Microchip, odczytać z noty aplikacyjnej jego wymagania, oszacować potrzeby naszej aplikacji, zsumować te obie zmienne, a następnie zaznaczyć odpowiednie opcje w filtrze Selector Guide’a.
Wybór mikrokontrolera to jednak dopiero pierwszy krok. Teraz musimy zdecydować się na zakup programatora lub zestawu ewaluacyjnego z programatorem. Aktualnie najbardziej popularne są dwa programatory: starszy PICkit-2 i nowszy PICkit-3. Który wybrać? Czy różnią się one w jakiś istotny sposób?
PICkit-2
Pierwszym programatorem przeznaczonym dla produktów Microchip był PICkit-1, który nie jest już oferowany. Jego następcą był PICkit-2: łatwe w użyciu, tanie narzędzie sprzętowe mające szereg bardzo pomocnych opcji.
Sercem PICkit’a-2 jest mikrokontroler z rodziny PIC18F. Do połączenia programatora z systemem docelowym służy 6-stykowe, żeńskie złącze szpilkowe o rastrze 2,54 mm. Odpowiada ono rozstawem popularnej listwie tzw. goldpinów. Nóżka 1 jest oznaczona niewielkim symbolem trójkąta, a programator nie ma zabezpieczenia przed odwrotnym dołączeniem do programowanego układu. Rozmieszczenie sygnałów na złączu jest wspólne dla wszystkich PICkit’ów (tabela 1). Programator jest dołączany do komputera PC za pomocą interfejsu USB. Jego obsługa jest możliwa z menu MPLAB Studio lub z użyciem dodatkowego, zewnętrznego programu.
Tabela 1. Opis wyprowadzeń złącza ICD programatorów PICkit
Numer wyprowadzenia |
Sygnał |
1 |
Sygnał zerowania MCLR lub napięcie programujące Vpp |
2 |
Napięcie zasilania układu programowanego VDD |
3 |
Masa układu programowanego VSS |
4 |
Sygnał danych ICSPDAT/PGD |
5 |
Sygnał zegarowy ICSPCLK/PGC |
6 |
Wyprowadzenie LVP (opcja Low Voltage Programming) |
PICkit może zasilać programowany mikrokontroler. Wielkość napięcia wyjściowego dostępnego pomiędzy wyprowadzeniami VDD-VSS można regulować w zakresie 2...5,5 V. W przypadku PICkit-2 żądaną, liczbową wartość napięcia wpisuje się w menu opcji programatora i potwierdza przez naciśnięcie klawisza Enter. Na paskach programów obsługi umieszczono przycisk włącznika napięcia zasilającego. PICkit-2 wyposażono w funkcję detekcji obecności napięcia zasilającego programowany układ: jeśli jest go brak, to programator sam automatycznie podaje napięcie zasilające.
Ciekawą funkcjonalnością PICkit’ów jest Programmer-To-Go. Gdy korzysta się z tej funkcji, w pamięci nieulotnej programatora za pomocą komputera PC zostaje umieszczony specjalny obraz służący do zaprogramowania mikrokontrolera lub pamięci EEPROM w układzie docelowym. Po dołączeniu do programowanego układu PIC wystarczy nacisnąć guzik umieszczony na obudowie PICkit’a, a proces programowania odbędzie się bez udziału komputera PC. Jest to bardzo przydatne przy wykonywaniu aktualizacji oprogramowania lub produkcji małoseryjnej. Niestety, programator nie może być zasilany za pośrednictwem złącza programującego, lecz musi mieć doprowadzone napięcie +5 V do złącza USB. Można w tym celu zastosować zasilacz lub dostępny interfejs dowolnego hosta USB.
Oprócz funkcji zapisu i odczytu układów programator może pełnić również funkcję interfejsu debugera. MPLAB Studio umożliwia śledzenie wykonywania kodu, podgląd zawartości rejestrów i pamięci, ustawianie pułapek, pracę krokową programu itp. Niektóre ze starszych układów mogą w tym celu wymagać zastosowania specjalnej przejściówki dostępnej jako akcesorium dodatkowe.
Swoją ogromną popularność PICkit-2 zawdzięcza przede wszystkim prostocie obsługi. Gdy dołączyłem go do płytki testowej, programator bez problemu wykrył brak zasilania i podał je na mikrokontroler. Po przejściu w tryb debugera wykrył złe ustawienie bitu MCLRE i wyświetlił komunikat z pytaniem czy chcę go przeprogramować, aby umożliwić pracę debugera. Po kliknięciu klawisza OK mogłem cieszyć się funkcjami debugera.
PICkit-3
Bazując na doświadczenia z PICkit-2 firma Microchip postanowiła udoskonalić swój produkt. Nowy PICkit-3 nie różni się kształtem obudowy czy złączami od swojego poprzednika, jednak już na pierwszy rzut oka można zauważyć, że jego obudowa ma czerwony kolor i jest przeźroczysta. Przy porównaniu obu produktów można zauważyć, że zmieniły się opisy przy diodach LED. Na obudowie PICkit’a-2 były obok nich umieszczone etykiety: Power, Target i Busy. Na obudowie PICkit’a-3 są to: Power, Active i Status. Nowe etykiety zapewne pojawiły się w związku z rozszerzeniem sygnalizacji – na przykład dioda Status teraz jest wielokolorowa.
Nowy programator Microchipa ma nieco inną filozofię pracy. Jego sercem jest mocniejszy mikrokontroler z serii PIC24F, a co za tym idzie, można się spodziewać rozszerzonej funkcjonalności. Pierwszymi cechami użytkowymi, które od razu rzucają się w oczy są brak detekcji obecności napięcia zasilania układu programowanego oraz wymiana firmware programatora przy każdej zmianie serii programowanego mikrokontrolera. Na próżno też poszukiwałem dodatkowej płyty, która była dostępna w moim zestawie z PICkit-2, a zawierającej program umożliwiający obsługę PICkit-3 bez uruchamiania MPLAB IDE. Po krótkim śledztwie okazało się, że taka aplikacja w wersji beta jest dostępna na stronie Microchip i nosi nazwę PICkit-3 Debug Express. Firma Microchip chyba postawiła na obsługę PICkit’a-3 wyłącznie z menu MPLAB, jednak napotkała na wyraźny opór ze strony użytkowników poprzedniej wersji programatora. Szybko postanowiono więc zmienić błędną decyzję i uruchomiono projekt open source. Wokół programu widać ogromny szum i zainteresowanie, co pozwala mieć nadzieję na szybką dostępność wersji stabilnej. Szczerze mówiąc, to byłem mile zaskoczony stosunkiem firmy do użytkowników jej produktów i szybka reakcją na ich potrzeby. Niektórzy producenci podzespołów i narzędzi dla mikrokontrolerów mogliby wiele nauczyć się od Microchip’a.
Czytając artykuły na temat nowego PICkit-3 w Internecie miałem wrażenie, że debiut PICkit-3 spotkał się z krytyką. Pojawiły się zdania, że nowy programator oferuje mniej za wyższą cenę. Nie były to moim zdaniem słuszne opinie, ponieważ już od samego początku nowy programator obsługiwał znacznie więcej układów, a możliwość wymiany firmware umożliwiała firmie szybkie wprowadzenie poprawek niedogodności zauważonych przez użytkowników oraz możliwości programowania nowych układów.
W PICkit-3 zrezygnowano z opcji autodetekcji obecności napięcia zasilającego. Teraz, aby załączyć zasilanie zewnętrznego mikrokontrolera, należy wejść w menu programatora i zezwolić na taką możliwość. Inaczej niż poprzednio, przy określaniu dopuszczalnego zakresu wyjściowego napięcia zasilającego jest brany pod uwagę typ układu scalonego wskazany przez użytkownika. Zakres zmian napięcia pozostał ten sam, jednak teraz jest ono ustawiane za pomocą suwaka, a nie wpisywane jako liczba.
Zmieniając napięcie zasilające i dołączając programator do różnych płytek zauważyłem szereg komunikatów instruujących o konieczności upewnienia się, że na pewno wybrane przez nas napięcie odpowiada typowi dołączanego mikrokontrolera. Widać, że użytkownicy PICkit-2 musieli w związku z tym zgłaszać jakieś zastrzeżenia, skoro konstruktorzy PICkit-3 poświęcili aż tak wiele uwagi tej funkcji programatora. Można się zastanawiać, dlaczego nie rozwiązano problemu poprzez odczytanie sygnatury układu, ale odpowiedź jest oczywista: trudno odczytać sygnaturę mikrokontrolera, gdy ten jeszcze nie ma dołączonego zasilania, natomiast odwrotne podanie napięcia (pamiętajmy, że złącze PICkit’a nie jest zabezpieczone przed odwrotnym dołączeniem), zależnie od konstrukcji układu (ponieważ „sprytnie” napięcie zasilające nie jest podawane na skrajne styki) może uszkodzić mikrokontroler. Stąd też zapewne dalece posunięta ostrożność, która może drażnić nadmiarem okien dialogowych, ale jest konieczna.
Co wybrać?
Zestawienie różnic pomiędzy programatorami zawiera tabela 2. Argumentem przemawiającym za zakupem i użytkowaniem PICkit-3 jest ogromna lista programowanych układów, od pamięci EPROM, poprzez mikrokontrolery 8-bitowe aż do DSP PIC i PIC32. Lista ta może być rozszerzana poprzez wymianę firmware, czego nie umożliwia PICkit-2. Microchip zapowiada też, że za jakiś czas zaprzestanie wsparcia PICkit-2 na rzecz nowych narzędzi. Jednak zapewne nie nastąpi to z dnia na dzień i użytkownicy PICkit-2 (i sic!!! jego klonów) nie powinni już biec do sklepu po zakup czegoś nowego.
Tab. 2. Zestawienie zauważonych różnic pomiędzy programatorami PICkit-2 i PICkit-3
Cecha |
PICkit-3 |
PICkit-2 |
Obudowa |
Czerwona, przeźroczysta z wielokolorowymi diodami Power, Active, Status sygnalizującymi stan pracy programatora |
Czarna, nieprzeźroczysta z diodami Power, Target i Busy sygnalizującymi stan pracy |
Oprogramowanie |
Obsługa z menu MPLAB Studio, wersja beta programu PICkit-3 Debug Express |
Obsługa z menu MPLAB Studio lub dodatkowego programu zewnętrznego |
Autodetekcja obecności napięcia zasilania programowanego mikrokontrolera |
Brak |
Po wykryciu braku napięcia jest załączane napięcie charakterystyczne dla programowanego typu układu (wcześniej z menu należy wybrać typ). |
Zakres napięcia zasilającego |
Dobierany na podstawie typu programowanego układu, napięcie regulowane za pomocą suwaka |
Wpisywany ręcznie z menu |
Lista programowanych układów |
Obszerna, znacznie większa niż w PICkit-2 |
Mniejsza niż w PICkit-3 |
Firmware |
Zmieniany przy zmianie typu programowanego układu; daje to elastyczność programatora |
Zapisany na stałe |
Podczas użytkowania obu programatorów miałem wrażenie, że PICkit-3 jeszcze ma pewne choroby „wieku dziecięcego”. Troszkę irytuje na przykład oczekiwanie na połączenie z programatorem po zmianie rodziny programowanych układów, jednak w normalnej sytuacji po wyborze typu mikrokontrolera zapewne nie zmieniałbym go przez co najmniej kilka tygodni. Gdy używałem PICkit-2, to ten również szybciej „domyślił się”, które bity wymagają przeprogramowania. W przypadku PICkit-3 musiałem tę (co prawda niezbyt skomplikowaną) pracę wykonać samodzielnie.
Porównanie szybkości zapisu pamięci mikrokontrolerów nie wykazuje istotnych różnic. Co ciekawe, niektóre z nich PICkit-2 wydaje się zapisywać wolniej, a niektóre szybciej. Jednak różnice są niewielkie i oscylują w okolicach pojedynczych sekund i tak naprawdę przy pracy nad prototypem nie będą miały żadnego znaczenia.
Nieco drażnił mnie sposób sygnalizacji za pomocą diod LED. Używając PICkit-3, gdy leżał nieco dalej i pod niekorzystnym kątem, zawsze miałem wątpliwości czy dioda LED świeci się swoim światłem, czy też światłem sąsiedniej diody. Zapewne jest temu winna przeźroczysta obudowa, ponieważ w PICkit-2 nie dostrzegłem tego problemu. Problem rozwiązywało ustawienie programatora pod odpowiednim kątem lub zbliżenie go. Jest to jednak wada kosmetyczna, która nie wpływa istotnie na walory użytkowe.
Cena detaliczna oryginalnego PICkit-3 waha się około 200 złotych, natomiast PICkit-2 około 130 złotych (ceny brutto) i może zależeć od kursu dolara. Za dodatkowe 70 złotych użytkownik zyskuje rozszerzenie listy programowanych układów o co najmniej kilkadziesiąt pozycji. Czy będzie tego używał? Trudno powiedzieć. Ja ostatecznie zdecydowałem się na zakup PICkit-3, a to ze względu na jego elastyczność i obietnicę wsparcia ze strony Microchip.
Wyposażenie dodatkowe
Programatory PICkit są oferowane również w zestawach PICkit Debug Express lub Starter Kit z dodatkowym wyposażeniem. Za niewielką dopłatą w stosunku do ceny samego programatora, można nabyć go z nieskomplikowaną płytką startową. Oprócz mikrokontrolera, są na niej dostępne diody LED, przycisk, potencjometr, punkty lutownicze itp. Korzystając z tej płytki i lekcji dostępnych na dodatkowej płycie CD lub stronie internetowej Microchipa można szybko zapoznać się z podstawowymi cechami funkcjonalnymi oraz metodami programowania mikrokontrolerów PIC. Jeśli układ jest w podstawce, to dodatkową płytkę można też zastosować jako rodzaj adaptera dla programowanych układów.
Fotografia 1. Płytka z mikrokontrolerem PIC16F690 z zestawu PICkit-2 Starter Kit (DV164120)
Fotografia 2. Płytka z mikrokontrolerem PIC18F45K20 z zestawu PICkit-3 Debug Express (DV164131)
Aktualnie PICkit-2 Starter Kit jest oferowany z płytką zawierającą PIC16F690 (fotografia 1), natomiast PICkit-3 Debug Express z PIC18F45K20 (fotografia 2). Obie płytki mają skromne wyposażenie ograniczające się do podstawowych komponentów. Jeśli jednak będzie to za mało, to można kupić rozbudowaną płytkę demonstracyjną PICDEM Lab Development Board , za pomocą której można już wykonać szereg układów prototypowych. Wydaje się ona być produktem, którym szczególnie mogą być zainteresowane szkoły mające w programach zajęć programowanie mikrokontrolerów. Dostępne pole kontaktowe umożliwia bowiem szybkie wykonanie lub zmianę połączeń i wielokrotne użycie płytki.
Jacek Bogusz
j.bogusz@easy-soft.net.pl
Odpowiedzi
Rzetelne i proste wyjaśnienia
Polecam
http://www.youtube.com/watch?v=LjfIS65mwn8&feature=plcp&context=C3721d30UDOEgsToPDskJ-f47yXfq6qEPAfsfCCTAt
Od użytkownika PICKIT2
A ja wybrałem PICKIT'a 2, ale kierowałem się tutaj trochę innymi czynnikami.
Po pierwsze pracuję pod linuksem i programator musiał mieć możliwość uruchamiania i działania pod tym systemem - a z tego co wyczytałem tylko PICKIT2 oferował taką możliwość.
Jest to co prawda programik, który działa w trybie wywołania z linii poleceń, ale - paradoksalnie taka forma programu dla programisty jest wygodniejsza, bo pozwala łatwo "podpiąć" taki programik do edytora (np. Geany), i łatwo można sobie tworzyć własne środowisko programistyczne.
Uwalniamy się wówczas od klikania w przeróżne ficzery w graficznym programatorze.
Możemy się wówczas skupić tylko na pisaniu i uruchamianiu samego programu, o samym programatorze zapominająć.
Tak naprawdę wybór programatora zależy od tego jaką politykę prowadzi firma go produkująca - bo dlaczego częściej wybieramy PICKIT'a3? Ano dlatego, że pozwala on na programowanie najnowszych procesorów - w tym wypadku Microchip'a.
Jeśliby PICKIT2 pozwalał na to samo, to wybór nie byłby już taki oczywisty :-) Dlatego Microchip nie uaktualnia bazy programowanych przez PICKIT'a2 scalaczków.....
Na szczęście lista ukłądów programowanych przez PICKIT'a2 jest i tak duża - PIC'e 18, 24, 32, dsPIC'e.... Dla przeciętnego programisty wystarczą aż nadto :-)
Ostatnio pojawiło się nowe środowisko MPLABX, ktore działa również pod linuksem - i prawdopodobnie obsługuje PICKIT'a3, więc argument o wyłączności PICKIT'a2 pod linuksem trochę upada - jednakże działa - ale tylko w MPLABX, a z linii poleceń już nie pójdzie....
Możliwość upgrade'u firmware'u w PICKIT'ie2 istnieje oczywiście - ale to producent musi wypuścić nowy firmware, a tego jak dotąd nie robi.....
Tak czy inaczej - PIC'e programują się obydwoma programatorami, w swoich środowskach doskonale :-)
Pozdrawiam
Jado
Dodaj nowy komentarz