Pamiętam lata, kiedy programowaliśmy pamięci EPROM o pojemności 1 kB. Nikt się wtedy nie zastanawiał, jak optymalizować zapis pamięci nieulotnych. Aby zrozumieć, dlaczego dziś stanowi to istotny problem, rzućmy okiem na…
Wielkość współczesnych układów programowalnych
Z historycznych układów programowalnych, tzn. pamięci nieulotnych, mikrokontrolerów z wbudowaną pamięcią programu i programowalnych układów logicznych, swoje wpływy na organizacje procesu programowania układów w firmie utraciły te ostatnie. Strukturę nawet największych współczesnych układów CPLD/FPGA definiuje się zazwyczaj w układzie docelowym, a czas programowania struktury jest relatywnie krótki.
Krytyczne dla procesu produkcji stały się natomiast pamięci wielkiej pojemności typu NAND czy eMMC. Dzisiejsze aplikacje często wymagają olbrzymiej ilości danych, a i procesory – o mocy obliczeniowej nieporównywalnie większej niż we wspomnianych latach – wymagają większych kodów programów. Do tego nadchodzi jeszcze sztuczna inteligencja.
Jeżeli weźmiemy pod uwagę czas cyklu Erase/Program/Verify przykładowych dwóch układów współczesnych pamięci (jak w tabeli 1), to – przy produkcji seryjnej rzędu 100 tys. sztuk – na samo zaprogramowanie musimy poświęcić kilkadziesiąt lub kilkaset ośmiogodzinnych dniówek.
Te wielkości pokazują skalę problemu. Pierwszym krokiem ku jego rozwiązaniu jest zwielokrotnienie ilości jednocześnie programowanych układów poprzez zastosowanie off-liniowych programatorów wielogniazdowych (typowo 4-, 8-podstawkowych) lub – w przypadku ISP – wielokanałowych (typowo 4- , 8-, 16- kanałowych). Takie liczby układów lub zmontowanych płytek PCB, które trzeba kolejno umieszczać w podstawkach lub igłowych łożach testowych, kwalifikują proces do automatyzacji. I tu rysują się dwa kierunki działania:
- w przypadku programowania ISP – integracja programowania w ramach ręcznych i automatycznych stacji ICT testowania strukturalnego lub funkcjonalnego,
- w przypadku tradycyjnego programowania w programatorach off-line’owych – wyrzucenie programowania poza linię technologiczną i przygotowanie preprodukcyjne zaprogramowanych układów na automatach programujących.
Kryterium wielkości produkcji i czasu potrzebnego na programowanie jest kluczowe dla prawidłowego zaplanowania procesu programowania układów w firmie. Jeśliby robić to tradycyjnie w programatorach, nawet wielogniazdowych, to często tylko do tego zadania trzeba delegować pracowników. Jeśliby z kolei realizować to w układzie docelowym w technologii ISP (In-System-Programming), to czas (zazwyczaj szeregowego) zapisu danych do pamięci spowolni linię produkcyjną. Pewnym rozwiązaniem problemu jest jednoczesne programowanie kilku, kilkunastu układów – płyt PCB – jednocześnie, z użyciem wielokanałowych programatorów ISP. Ale i to stanowi barierę nie do przejścia przy masowej produkcji. W tym ostatnim przypadku pozostają nam praktycznie tylko automatyczne off-line’owe stacje programujące.
Ciągle nowe układy, ciągle nowe algorytmy
Inną cechą współczesnego rynku układów programowalnych jest olbrzymia liczba producentów, różnorodność typów układów, dynamika przejawiająca się w licznych premierach nowych podzespołów, a tym samym różnorodność i ogrom algorytmów, które – jak oczekujemy – nasz programator powinien obsługiwać. Niestety, te czasy minęły. Dziś firmy i osoby projektujące nowatorskie rozwiązania, oparte o najnowsze układy programowalne, muszą liczyć się z tym, że odpowiadające im algorytmy nie zostały jeszcze zaimplementowane. Powszechną praktykę stanowi dodawanie algorytmu za dodatkową opłatą. Jeśli – ograniczając koszty – zdecydujemy się na jakiś niszowy programator niszowej firmy, musimy liczyć się z tym, że producent nie będzie w stanie dodać nowego algorytmu, bo nie będzie miał dostępu do jego specyfikacji technicznych. Minęły bowiem czasy, gdy w kartach katalogowych publikowano parametry techniczne algorytmów. Dziś producenci układów programowalnych wspierają w tym zakresie jedynie wyselekcjonowanych wytwórców programatorów. I nie stanowi to ich złej woli lub zabiegu ograniczającego konkurencyjność. Stopień komplikacji algorytmów oraz liczba problemów związanych z ich implementacją wymusiłyby u producentów podzespołów konieczność rozbudowy służb obsługujących i autoryzujących wszystkich twórców programatorów. Stąd rada – jeśli chcesz utrzymać się w awangardzie producentów elektroniki, kupując programatory, obstawiaj renomowane firmy. Na przykład jakie?
ELNEC – jakość za rozsądną cenę
Światowa firma ze Słowacji, jeden z największych producentów programatorów off-line’owych. Flagowe programatory BeeProg obsługują wyjątkowo dużą liczbę układów, a cechą wyróżniającą jest to, że update’y oprogramowania z zaimplementowanymi kolejnymi nowymi układami są dostępne gratis w całym okresie ich życia. Koszt ich implementacji jest częściowo wliczony w cenę adapterów, z odpowiednimi dla danej obudowy podstawkami, dopasowujących mechanicznie i elektrycznie układy do gniazd programatora, ale mimo to strategia pozostaje unikatowa. Programatory są też przystosowane do programowania ISP.
BPM Microsystems – najszybsze automaty na rynku
„Mercedesy” ze Stanów w świecie programatorów off-line’owych. Zawsze nowatorskie, najszybsze, z bogatym wyposażeniem. „Game makerami” są automaty programujące 10. generacji (fotografia otwierająca artykuł), które mogą pobierać samoczynnie układy z tub, z tacek (pojedynczych lub ze stosu) bądź taśm. Programują równolegle do 48 układów w kilku site’ach, dokonują inspekcji optycznej wyprowadzeń, oznaczają laserowo układy i pakują je do taśm lub tacek (pojedynczych lub na stos).
SMH Technologies/Algocraft – od najprostszych do wysublimowanych rozwiązań ISP
Pełna oferta z Italii, i to nie turystyczna, dla integratorów automatycznych systemów testowania chcących włączyć w nie programowanie ISP pamięci oraz mikrokontrolerów. Technologie bazowe FlashRunner i WriteNow są odpowiednie do wszystkich zastosowań, ale producent oferuje też wysublimowane rozwiązania dla krytycznie szybkich układów. Możliwość programowania w sieci.
JTAG Technologies – programowanie w ramach testowania
Z Niderlandów, ze źródeł „boundary-scan” mamy rozwiązania pozwalające programować układy via interfejs JTAG. W tym przypadku od testowania metodą ścieżki krawędziowej dochodzimy do programowania – poniekąd przy okazji. Możemy upiec dwie pieczenie przy jednym ogniu.
AMTEC.PRO – automaty dedykowane
Wracamy do śródziemnomorskich klimatów, tym razem do Słowenii. Przepakowując w automatycznych kabinach FlexCell układy z taśm, tacek i tub do taśm tłoczonych, możemy przy okazji je zaprogramować w programatorach firmy ELNEC. W tym wariancie otrzymujemy automatyczne rozwiązania budżetowe dedykowane pod klienta.
WG Electronics – ekspert w programowaniu
Ponieważ temat programowania układów jest w spektrum zainteresowań autora jeszcze od czasów z przed założenia firmy, uzurpujemy sobie prawo do bycia znawcą tematu. Tak wiec, jako WG Electronics wspieramy naszych klientów w analizie ich potrzeb i w doborze odpowiednich rozwiązań. A tu mamy pełne portfolio programatorów zarówno off-line’owych, jak i ISP – od relatywnie tanich, jednokrotnych, dla hobbystów czy konstruktorów, do wielokrotnych programatorów produkcyjnych ręcznych i automatycznych. Współpracujemy z renomowanymi producentami światowymi, którzy zapewniają dostęp do algorytmów programowania najnowszych układów programowalnych wszystkich światowych producentów, a tym samym zapewniają rozwój i update’y swoich urządzeń teraz i w przewidywalnej przyszłości.
Wybierając dziś właściwe rozwiązanie, zapewnicie sobie jego skalowalność i rozwój w dalszej perspektywie. Może więc warto wydać obecnie trochę więcej (nie mamy bowiem w ofercie najtańszych programatorów), aby nie wydawać w przyszłości kilka razy na podobne urządzenia. Zapraszamy do współpracy.