Programator – co to jest i do czego służy?

Czas czytania: 3 min.

Programatory może i nie są dostrzegalne w typowych urządzeniach AGD, które obejmują urządzenia takie jak lodówki, pralki czy kuchenki, bo te nie są zwykle projektowane z myślą o dostępie do programatorów przez użytkowników końcowych. Pewne rzeczy… cóż, robią się za nas same. To jednak przykłady urządzeń, w których funkcjonalność jest określona z góry i nie wymaga programowania przez użytkownika. Nieco inaczej ma się sprawa z elektroniką cyfrową, infrastrukturami sieciowymi i układami sterującymi w nowszych urządzeniach i maszynach. Spróbujmy zrozumieć programatory i zalety, jakie niesie ze sobą używanie ich w praktyce.

Co to jest programator?

Nie kto, lecz co! Nie mają nic wspólnego z programistami, choć ci mogą ich używać. Celowo zamieszczamy to rozróżnienie, bo w anglojęzycznym nazewnictwie, a przynajmniej w wielu tekstach technicznych, można znaleźć wspólne pojęcie “programmer” zamiast nasuwającego się na myśl, choć zdecydowanie w zautomatyzowanym tłumaczeniu, określenia “programmator”.

Programatory to urządzenia do programowania mikrokontrolerów, mikroprocesorów, układów FPGA (Field-Programmable Gate Array) i innych układów scalonych. Ich główną funkcją jest wprowadzanie lub zmienianie oprogramowania, czyli programów, przechowywanych w tych układach. Korzystają z nich kontrolery w urządzeniach elektronicznych, robotyka amatorska i profesjonalna czy systemy wbudowane.

Wspomniane układy FPGA są programowalne, zatem ich funkcje można dostosować przez wgrywanie kodu. Wówczas z pomocą przychodzą właśnie programatory FPGA, które są używane do wprowadzania konfiguracji. Równie często stosuje się je do programowania pamięci typu EEPROM lub Flash, które “przechowują dane na stałe” takie jak firmware lub konfiguracje, do aktualizacji oprogramowania BIOS w komputerach, jeszcze bardziej złożonych od FPGA układów CPLD w projektach, gdzie potrzebna jest logika programowalna i innych układów logicznych.

Jak działa programator?

Przyda się nam ogólny opis tego, jak działa typowy programator na pierwszy rzut oka. Praca z nim niesłusznie kojarzy się z czymś okrutnie skomplikowanym. Programator jest zazwyczaj urządzeniem z interfejsem komputerowym, na przykład USB lub Ethernet. Aby go używać, podłącza się go do komputera za pomocą odpowiedniego kabla. Programator może być fizycznie połączony z układem scalonym, który ma być zaprogramowany. Realizuje się to poprzez specjalne złącza lub gniazda, które pasują do układu scalonego, lub poprzez sondy lub przewody. Programator jest zazwyczaj dostarczany z oprogramowaniem, które pozwala użytkownikowi na wybór odpowiedniego pliku konfiguracyjnego lub kodu źródłowego do wgrania do układu scalonego, choć bywa, że zarówno oprogramowanie, jak i sterowniki trzeba najpierw pobrać.

Użytkownik za pomocą oprogramowania programatora wczytuje plik konfiguracyjny. Może to być plik bitowy (bitstream) lub inny format zależny od typu układu scalonego. Wreszcie programator generuje odpowiednie sygnały elektryczne lub świetlne, które są wysyłane do układu scalonego, aby zaprogramować go zgodnie z wczytaną konfiguracją. 

To oznacza ustawianie odpowiednich poziomów napięć, impulsów i sygnałów, które spowodują zmiany w pamięci lub konfiguracji układu. Po zakończeniu procesu programowania programator zazwyczaj przeprowadza weryfikację, aby upewnić się, że układ scalony został zaprogramowany poprawnie. Mogą być wykonywane różne testy, aby sprawdzić, czy układ działa zgodnie z oczekiwaniami. 

Po pomyślnym zakończeniu programowania i weryfikacji użytkownik jest informowany o pomyślnym zakończeniu procesu lub o ewentualnych błędach, które mogły wystąpić.

Atnel ATB-USBASP ver. 4.2 - programator AVR + MkAvrCalculator.

Zalety programatorów

Zrozumienie programatorów przede wszystkim pozwala na tworzenie elastycznych projektów elektronicznych. Oznacza to dostosowywanie układów scalonych do konkretnych zastosowań i wymagań, a w razie problemów dokładniejszą diagnozę i troubleshooting. Możemy w ten sposób analizować błędy programowania czy konfiguracji układów. To już nieco bardziej wyspecjalizowany sposób, ale w przypadku wielu urządzeń elektronicznych programatory są używane do aktualizacji oprogramowania. Bodaj najważniejszy atut, który zaowocował startupami i rozwojem w sektorze programowania to programowanie układów scalonych jako nieodzowna częścią tworzenia prototypów urządzeń elektronicznych.

Trudno także wyobrazić sobie pracę programistów układów wbudowanych bez programatorów, które są kluczowe do wgrywania i testowania kodu na mikrokontrolerach. Wyrazem popularności programatorów są prace nad systemami czasu rzeczywistego, kontrolery przemysłowe i nowoczesne systemy medyczne, gdzie zrozumienie programatorów jest konieczne do zapewnienia zgodności z przepisami i normami branżowymi.

Obsługa programatora - warto wiedzieć

Aby zacząć używać programatora do programowania układów scalonych, potrzebne jest zrozumienie kilku podstawowych pojęć. Zebraliśmy kilka kluczowych koncepcji i umiejętności, które będą do tego potrzebne. Przede wszystkim musisz wiedzieć, jaki rodzaj układu scalonego chcesz zaprogramować. Może to być mikrokontroler, CPLD, FPGA lub inny rodzaj układu. Każdy rodzaj układu może wymagać innego programatora lub oprogramowania. Skoro musisz być w stanie fizycznie podłączyć programator do układu scalonego, to oznacza to, że musisz znać typy gniazd, złącz i pinów. Często używa się też kabli, sond lub adapterów.

Oprogramowanie posiada raczej przyjazny interfejs, lecz oczywiście należy je zainstalować i zrozumieć dostarczane funkcje, bowiem będzie ono służyć do wczytywania plików konfiguracyjnych, ustawiania parametrów programowania i kontroli samego procesu programowania. Kolejny element to plik konfiguracyjny lub kod źródłowy, który chcesz wgrać do układu scalonego – ten plik zawiera informacje o tym, jak układ ma być skonfigurowany lub zachowywać się po programowaniu. Po wczytaniu go do programatora warto monitorować proces i reagować na błędy – jak wspomnieliśmy, programatory zazwyczaj dostarczają informacji o statusie programowania. Nie obędzie się zatem bez wiedzy o układach scalonych również na etapie, gdy coś pójdzie nie tak i trzeba będzie zrozumieć informacje diagnostyczne. Z pomocą w nauce podstaw wiedzy na temat elektroniki cyfrowej i programowania przychodzą kursy i poradniki dostępne w Botland, od których blisko już do stawiania czoła bardziej zaawansowanym projektom.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.5 / 5. Liczba głosów: 2

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Mateusz Mróz

Mateusz Mróz

Marzyciel, miłośnik podróży i fan nowinek technologicznych. Swoje pomysły na Raspberry Pi i Arduino chętnie przekuwa w konkrety. Uparty samouk – o pomoc prosi dopiero wtedy kiedy zabraknie pozycji w wyszukiwarce. Uważa, że przy odpowiednim podejściu można osiągnąć każdy cel.

Zobacz więcej:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce Prywatności oraz Warunkom użytkowania.