Jak dobrać programator

Jak dobrać programator - od czego zacząć

Podstawową informacją przy doborze programatorów jest obszar zastosowań. Każdy ma pewną specyfikę, wynikającą z realizowanego zadania. I tak:

  • Projektowanie – to programowanie maksymalnie dużego spektrum ciągle pojawiających się nowych układów. Najlepiej od jak największej liczby producentów, aby nie ograniczać bazy stosowanych podzespołów w bieżących i przyszłych projektach
  • Produkcja – to jak najszybsze programowanie ograniczonego spektrum układów, zastosowanych w wytwarzanych urządzeniach, zapewniające maksymalną wydajność procesu.
  • Serwis – to programowanie szerokiego spektrum układów również tych starszych, już nie produkowanych

Ta specyfika rzutuje bezpośrednio na dobór programatora. I tak:

  • W projektowaniu – powinniśmy się oprzeć o renomowanego producenta, który ma dostęp do specyfikacji algorytmów programowania najnowszych układów, nawet tych jeszcze powszechnie niedostępnych. Dodatkowo, duży producent obsługujący światowy rynek głównie sam finansuje rozwój bazy programowanych układów. Programator powinien być też uniwersalny, o co najmniej 48 pin driverach, aby w przyszłości nie spotkać się z barierą sprzętową uniemożliwiającą implementację nowych algorytmów lub dostępnością adapterów.
  • W produkcji – powinniśmy szukać możliwie szybkiego programatora adekwatnego do naszych ilościowych potrzeb. Przy czym rozwiązanie powinno być elastyczne, łatwe w adaptacji do innych rodzin programowalnych układów. Renoma producenta gwarantującego odpowiednią jakość i wsparcie serwisowe są w tym przypadku kluczowe, aby uniknąć przestojów lub długich wdrożeń nowych produktów. Warto zwrócić uwagę na skalowalność, czyli możliwość pracy wielu programatorów równolegle.
  • W serwisie – powinniśmy również rozważać producentów programatorów znanych od lat na rynku. Ich sprawdzone uniwersalne urządzenia sprawnie obsługują nie tylko najnowsze układy, a takie możemy spotkać serwisując starsze urządzenia. Istotny jest też okres wsparcia gwarantowany przez producenta, w którym dany model programatora będzie miał uzupełniane listy układów. Jeśli będzie zbyt krótki, to po kilku latach trzeba będzie zmieniać na nowszy model. Renomowani dostawcy zapewniają kilkunastoletni okres wsparcia swoich programatorów.

Już z tych podstawowych uwag jednoznacznie wynika, że należy unikać niemarkowych urządzeń i tych producentów, których centra wsparcia klienta znajdują się w odległych miejscach świata. Przy czym lokalny doświadczony dystrybutor jest w tym zakresie na pewno wartością dodaną. Skłaniać się też należy w kierunku dobrze zaprojektowanego, uniwersalnego sprzętu. Wtedy w najgorszym przypadku będziemy musieli zapłacić tylko za opracowanie nowego algorytmu. Opierając się o producenta z wieloletnią stabilną pozycją na rynku możemy liczyć, że kupując mądrze dziś, unikamy też wielu przyszłych problemów.

„Diabeł” tkwi jednak w szczegółach. Dlatego proponujemy przejść przez selektor oferowanych przez nas programatorów i zachęcamy do konsultacji. Na pewno znajdziemy satysfakcjonujące rozwiązanie…

Czy programować ISP (In System Programming) czy w podstawce programatora?

Upowszechnienie programowania ISP począwszy od napraw serwisowych, aż po masową produkcję sugerowało zmierzch programatorów off-line (w podstawkach). Trend ten był tak silny, że wielu producentów programatorów nie wytrzymało odejścia klientów do ISP. Ale programatory off-line nie zniknęły z rynku tak jak stało się to z emulatorami mikrokontrolerów po integracji mechanizmów debugera w układzie scalonym. Nic też nie wskazuje, aby tak było w przyszłości, bo ISP ma też swoje wady, a programatory off-line niezaprzeczalne zalety. Na dziś są to dwie równorzędne metody działania, mające swoich gorących zwolenników i przeciwników.

ISP warto stosować tam gdzie wolumen produkcji nie jest duży lub tam gdzie nie programujemy dużych pojemności pamięci. Programowanie pamięci poprzez interfejsy szeregowe jest wielokrotnie wolniejsze, niż przez 8 lub 16-bitową magistralę równoległą, a dopuszczalne częstotliwości sygnałów w programatorze mogą też być wielokrotnie wyższe niż na kablach ISP. Za to ISP łatwo integruje się z testowaniem funkcjonalnym całego pakietu i programowanie można realizować w linii produkcyjnej. ISP pozwala też uniknąć znaczących kosztów eksploatacyjnych wynikających z konieczności cyklicznej wymiany w programatorach gniazdowych adapterów lub samych podstawek zaciskowych, których średni czas życia to 10-30 tys. kontaktów. Jednak zbyt długie czasy programowania wydłużają cykl produkcji i dlatego producenci elektroniki często decydują się jednak na programowanie układów off-line przed podaniem ich na maszyny montażowe „pick & place”. Temat jest więc dość złożony. Decyduje wiele czynników i warto zrobić bardziej szczegółową analizę ilościową potrzebnego na to czasu w jednym i drugim wariancie…

Czy podawane liczby programowanych układów są właściwym kryterium wyboru programatora?

Tu trzeba być ostrożnym, bo w wielu przypadkach jest to chwyt marketingowy. Wszystko zależy od rzetelności producenta i tego, jak obiektywnie i co tak naprawdę zlicza. Przecież jeden typ układu może być produkowany w wielu wariantach szybkości oraz dużym wyborze cech nieistotnych dla sposobu programowania (np. ilość RAM, peryferia, interfejsy), co zmienia symbol układu, ale nie algorytm programowania. Część producentów programatorów stosuje oznaczenia „xx…” dla znaków nieistotnych w oznaczeniach układu lub pomija nieistotny sufiks. Inni w takim przypadku wymieniają wszystkie możliwe szczegółowe oznaczenia, a ich baza programowanych układów „imponująco” rośnie.

Nie należy więc podchodzić do tych wielotysięcznych liczb bezkrytycznie. Sugerujemy raczej spojrzeć oddzielnie na to jakich dostawców układów programator obsługuje i jakie rodzaje układów programuje. Da to nam obraz o bieżących relacjach z producentami podzespołów i potencjalnych barierach w przyszłości. Patrząc z kolei na rodzaje programowanych układów zobaczymy jakie technologie pokrywa. Wracając do podawanych ilości obsługiwanych układów to istotny jest jej przyrost np. w okresie roku. Wskazuje na potencjał reagowania na nowe układy na rynku. Producent dodający pojedyncze setki układów rocznie, nie będzie w stanie obsłużyć żądań klientów w sytuacji pojawiania się wielu tysięcy nowych układów na rynku w tym samym okresie.

Ilość programowanych układów odpowiednio zinterpretowana jest jednym z kilku istotnych, ale nie jedynym kryterium wyboru.

Dlaczego warto wydać więcej i wybrać markowy programator?

Jak wszystko jest porównywalne to nie warto. Lecz zwykle droższy producent oferuje więcej. Jeśli jest globalnym graczem, to coś za nim i jego ceną przemawia. Użytkownicy na całym świecie stanowią bowiem weryfikację wiarygodności producenta - nie płaciliby więcej, nie dostając nic w zamian. Zwykle z wyższą ceną i renomą producenta wiąże się jakość – rozumiana m.in. jako trwałość zastosowanych podzespołów, szczególnie podstawek. W wyższej cenie ukryte są czasami darmowe, nawet dożywotnie aktualizacje oprogramowania i algorytmów. Kosztuje też darmowe wsparcie techniczne (rozwiązywanie problemów), którego mały producent po prostu nie ma. Duża i często aktualizowana baza układów aktywna dla większości modeli przez wiele lat to duży finansowy wysiłek producenta ,ale i duża wartość dla klienta. Cena, tak jak w samochodach to też lepszy „silnik” – a więc szybkość. Zalecamy po prostu głębsze zapoznanie się z rzeczywistymi parametrami poza ceną i taką ich interpretację, aby były porównywalne w zestawieniu kilku programatorów, które rozważamy do zakupu. Zawsze można też zasięgnąć rady u budzących zaufanie fachowców.

Gdzie ich znaleźć? Jeśli producent ma własne (i realnie działające) wsparcie techniczne sprzedaży to można spróbować. Wielu renomowanych producentów, wybiera też wiarygodnych partnerów w lokalnej sprzedaży. Wymaga od nich głębokiej znajomości technicznej produktu, szerokiej wiedzy o układach scalonych oraz obserwacji całego rynku, w tym konkurencji. Nawet jeśli preferują oni swoje rozwiązania, to potrafią celnie wypunktować swoje przewagi i słabości u konkurencji. Zwykle taki autoryzowany dystrybutor, wiąże się danym producentem na wiele lat i ma wypracowaną opinię na rynku, którą można zweryfikować.

A może lepiej kupić dziś tani programator, a w razie potrzeby zastąpić go kolejnym - też tanim?

Tu nie ma jednoznacznej odpowiedzi. Jeśli jesteśmy sporadycznym użytkownikiem układów programowalnych i nie mamy perspektyw na zwiększenie ich ilości to można pójść tą drogą. Drugą taką sytuacją może być prosta konieczność wynikająca z ograniczonego budżetu. Pamiętajmy jednak, że kto mało płaci, płaci dwa razy, oraz że „biednego” nie stać na złą jakość. Więc nawet jak dopiero wchodzimy w obszar układów programowalnych, to na pewno w świetle rozwoju i ekspansji elektroniki dosłownie wszędzie, temat programowania nas nie ominie. To tak jak z samochodem. Jeśli zaczniemy jeździć często lub na dłuższe dystanse, to rezygnujemy z ogólnodostępnej komunikacji, sporadycznego wynajmu. I wtedy myślimy może nie o Mercedesie, ale o solidnym pewnym samochodzie, który przez 5-10 lat będzie bezpiecznie nas dowodził do celu i nie zawiedzie po drodze. Proponujemy iść tą ścieżką.

Czy trzeba mieć najszybszy programator?

Tu też jest trochę tak jak z samochodem. Mając szybki samochód z dużym silnikiem, trzeba mieć gdzie nim jeździć i trzeba mieć taką potrzebę lub ewentualnie tylko ochotę. Zawsze trzeba za to będzie więcej zapłacić. Kryterium szybkości ma kluczowe znaczenie na produkcji. Operacja programowania nie może ograniczać wydajności procesu i mieć negatywny wpływ na szybkość pracy linii produkcyjnej. W projektowaniu i w serwisie nawet przy częstym programowaniu dużą szybkością eliminujemy tylko ewentualne krótkie przestoje pojedynczych osób i zapewniamy im większy komfort pracy. Tę kwestię należy rozważyć we własnym zakresie. Np. przesłanką może być praca z pamięciami eMMC i NAND dużych pojemności, o czasach programowania liczonych w godzinach. Wtedy szybki programator, skracając czas np. 5-krotnie, jest wart uwagi.

Jakie znaczenie ma lokalne wsparcie posprzedażowe w przypadku programatorów układów?

Na pierwszy rzut oka może się wydawać, że operacja programowania jest tak prosta, a układy tak pewne, że każdemu się uda. Ogólnie racja. Jednak powie tak ktoś, kto nie spotkał się jeszcze np. z problemami programowania lub kopiowania pamięci NAND, eMMC i rosnącej grupy coraz bardziej skomplikowanych mikroprocesorów. Oddzielną kwestią jest programowanie w układzie (ISP), gdzie z samej natury działania problemów jest więcej i pojawiają się one znacznie częściej. Sam programator może też stawiać „opór” szczególnie przy wdrażaniu nowych układów. Trudno wtedy czasem odróżnić czy problem jest w adapterze, algorytmie, oprogramowaniu, czy jak to najczęściej bywa w nieprawidłowych ustawieniach opcji. A jak trwoga to do … specjalisty od układów programowalnych. Lokalne wsparcie jest tu bezcenne, o ile prowadzone jest przez elektroników z rzetelnym doświadczeniem i wykształceniem. Wsparte profesjonalizmem producenta programatora pozwala na szybkie rozwiązywanie nawet najtrudniejszych problemów.