- Napięcie zasilania 5 VDC.
- Płytka jednostronna o wymiarach 89 mm×60 mm.
- Interfejs USB lub RS232.
- Mikrokontroler AT89C2051.
- Programowanie układów HCS200 (KeeLoq) oraz HCS301.
Na rynku jest duży wybór programatorów uniwersalnych. Urządzenie tego typu są w stanie obsłużyć większość układów stosowanych w urządzeniach elektronicznych. Zazwyczaj programatory uniwersalne mają zaimplementowane ogólnie stosowane algorytmy programujące przeznaczone dla pewnych grup rozwiązań, takich jak pamięci stałe, pamięci z popularnym interfejsem szeregowym I²C, Microwire SPI. Obok opisanych grup układów istnieją także rozwiązania mniej popularne stosowane w pewnej wąskiej gałęzi aplikacji. Zdarza się, że nawet programatory wiodących producentów, obsługujące tysiące układów, nie zawierają na swojej liście interesującego nas rozwiązania. Programatory przeznaczone do tych konkretnych rozwiązań bywają drogie, a ich zastosowanie praktyczne bywa nieopłacalne, ponieważ czasami ogranicza się do zaprogramowania jednego lub kilku układów. W takiej sytuacji, w wypadku konieczności zaprogramowania nietypowego układu np. w układzie prototypowym, sensowne jest samodzielne skonstruowanie programatora.
Z problemem zaprogramowania układu za pomocą programatora uniwersalnego zmierzyłem się wykonując prototyp urządzenia z układem HCS200 firmy Microchip. Układ jest koderem przeznaczonym dla urządzeń dostępu zdalnego. Aby zapewnić bezpieczeństwo transmisji danych, układ używa algorytmu kryptograficznego KeeLoq będącego rozwiązaniem autorskim firmy Microchip. Popularnie, kod przesyłany pomiędzy nadajnikiem a odbiornikiem nazywa się kodem kroczącym. Nadajnik realizuje funkcje kodowania zbioru danych. Dane zapisane w wewnętrznej pamięci EEPROM są informacjami, które ze względu na bezpieczeństwo użytkowania aplikacji, muszą być szczególnie chronione. Dlatego też układ jest programowany w sposób niestandardowy. Weryfikacja poprawności zaprogramowania jest możliwa tylko raz, bezpośrednio po sekwencji programującej układ. Po jednym cyklu programowania i weryfikacji układu nie daje się odczytać. Oczywiście możliwe jest ponowne zaprogramowanie układu nowymi danymi.