Programatory

Pod hasłem programatory rozumiemy w tym artykule urządzenia do trwałego zapisywania programowalnych struktur półprzewodnikowych w takich układach jak:

  • Nieulotne pamięci (E)EPROM, FLASH, …
  • Mikrokontrolery MCU, których integralną częścią są powyższe pamięci
  • Struktury logiczne PLD (Programable Logic Devices), których funkcjonalność jest zdeterminowana programowalną matrycą połączeń
  • Karty SD i pamięci USB, których integralną częścią są pamięci FLASH
  • Inne specjalizowane urządzenia, których konstrukcja jest oparta na wyżej wymienionych podzespołach

Przedstawimy problemy związane z operacjami zapisu tych układów wykonywanymi zarówno na etapie projektowania jak i produkcji urządzeń elektronicznych. Wskażemy na sposób ich rozwiązania w realiach profesjonalnego projektowania i produkcji elektroniki.

W temat programowania układów półprzewodnikowych jesteśmy zaangażowani od początku lat 80-tych. Nie zamierzamy jednak skupiać się na historii, ale na bazie historycznego doświadczenia sformułować współczesne i przyszłe wymagania rynku oraz wskazać kierunek, w którym naszym zdaniem należy podążać.

Co więc dzisiaj jest krytyczne w obszarze programowalnych układów. Wydaje się, że kluczowe są dwa elementy:

  • Różnorodność architektur i technologii programowalnych układów
  • Wielkość programowanych struktur rozumiana np. jako pojemność pamięci

Każdy z nich determinuje przyjęte czy to w laboratorium, czy to na produkcji rozwiązania i wpływa na nasze decyzje inwestycyjne w zakresie sprzętu do programowania tychże układów.

Różnorodność dostępnych na rynku rozwiązań możemy zneutralizować decydując się w ramach firmy na unifikację stosowanych w projektach układów np. ograniczając się do jednej rodziny mikrokontrolerów lub pamięci. Wówczas możemy zastosować do zapisu struktur relatywnie tanie dedykowane programatory często oferowane lub rekomendowane przez producentów półprzewodników. Takie podejście zawsze można zastosować na początku, przy pierwszych projektach lub projektach dla ograniczonego obszaru zastosowań. Jednak dynamika współczesnego rynku elektroniki wygląda inaczej niż kiedyś …

Codziennie pojawiają się nowe architektury (np. mikrokontrolerów) coraz bardziej dostosowane do aktualnych aplikacji lub technologie dające handicap w postaci jeszcze mniejszego poboru mocy. W epoce mobilności i powszechnego stosowania mikroprocesorów te czynniki są kluczowe. Współcześnie należy więc tworzyć systemy na miarę - maksymalnie dopasowane do aplikacji. Czy powinniśmy się więc ograniczać do jednej linii produktów, czy też być zawsze przygotowanym na absorbcję najnowszych technologii i przygotowanym na nowe projekty i nowe wyzwania. Retoryczne pytanie. Jeśli tylko nasze plany wykraczają poza aktualnie prowadzony projekt, jeśli tylko nasze finanse nie wymuszają najtańszych opcji to powinniśmy iść w uniwersalność. I tu od razu ochłodzimy zapał. Uniwersalność współcześnie nie oznacza, że kupimy programator obsługujący wszystko i spokój na lata.

Dziś, żaden z producentów programatorów nie obsługuje wszystkich dostępnych układów. To jest po prostu fizycznie niemożliwe ze względu na ilość różnych struktur na rynku. Nasz partner, jeden ze światowych liderów firma ELNEC obsługuje przykładowo w swoim programatorze BeeProg2 ponad 100 tys. układów, a i to nie oznacza, że wszystkie.

beeprog2

Programator BeeProg2 firmy ELNEC

Tak więc uniwersalność należy rozumieć jako uniwersalność sprzętu tzn.

  • Maksymalnie dużą ilość tzw. pin drivere’ów pozwalających dowolnie wysterować wyprowadzenia programowanego układu
  • Szeroką gamę dostępnych adapterów dla różnego typu obudów i typów układów
  • Wysoką funkcjonalność urządzenia przejawiającą się w interfejsach komunikacyjnych USB i LAN, możliwości programowania In-Socket (w gnieździe programatora) i In-System (w systemie docelowym), możliwości pracy pod nadzorem komputera i jako urządzenie wolnostojące.

Dwa pierwsze kryteria odpowiadają za możliwości adaptacyjne programatora do nowych układów. Trzecie determinuje możliwość i sposób wykorzystania programatora w laboratorium przy projektowaniu, na produkcji i w serwisie.

Tak więc sprzęt nie powinien stwarzać ograniczeń. O reszcie decyduje oprogramowanie. I tu bardzo ważnym kryterium przy doborze programatora są możliwości producenta do implementacji algorytmów ciągle pojawiających się nowych układów i strategia update’owania programatora – odpłatna lub gratis. Producent powinien być renomowany aby mieć dostęp do niepublikowanych dziś specyfikacji technicznych algorytmów, mieć wystarczający potencjał ludzki do ich szybkiej implementacji i co naszym zdaniem ważne być dostępnym dla klienta końcowego. Doświadczenie nasze wskazuje, że często wdrożenie nowego algorytmu np. na zamówienie klienta wymaga współpracy i wielu iteracji między końcowym użytkownikiem, a dostawcą – wymiany informacji, testowania urządzenia, jego usprawniania. Istotnym jest tu aby producent był dostępny w naszej strefie czasowej, był reprezentowany na miejscu przez doświadczonego dystrybutora i był otwarty na potrzeby klientów. Jakość obsługi klienta jest cały czas oceniana przez użytkowników w formie prowadzonych rankingów firm, jest doceniana i często nagradzana jak to ma miejsce w przypadku naszych partnerów np. firmy BPM Microsystems na ostatnich targach IPC APEX Expo 2018.

Opracowanie nowych algorytmów jest kosztowne. Dobrze jest więc jak producent ma duży udział w rynku bo jest w stanie dzielić koszty i opracowanie algorytmów przynajmniej dla popularnych układów wziąć w znacznej części na siebie. Nie ma co ukrywać, że projektanci i producenci urządzeń stanowiący awangardę – stosujący najnowsze, najnowocześniejsze układy muszą się liczyć z tym, że będą musieli zapłacić za implementację rzadkich układów. Innym warto w tym miejscu zwrócić uwagę, że płacąc za adaptery relatywnie wysoką cenę, na co powszechnie narzekamy – „praktycznie sama podstawka, a tyle pieniędzy”, partycypujemy w kosztach algorytmu. I to jest jak najbardziej „fair”. W programatorach ISP gdzie nie ma adapterów ten koszt jest często redystrybuowany na użytkowników postaci rocznej opłaty serwisowej lub opłacanych punktów kredytowych, które są zdejmowane z konta w miarę pobierania nowych algorytmów.

Nie wnikając w szczegóły budowy programatorów trzeba sobie zadać pytanie jaki parametr techniczny jest najistotniejszy przy wyborze konkretnego urządzenia. Tu wchodzi druga charakterystyczna cecha współczesnych układów – pojemność pamięci. Czas, który wydaje się nieistotny przy programowaniu pojedynczej komórki nabiera kluczowego znaczenia jeśli pomnożymy go przez gigabitowe pojemności i wielotysięczne wolumeny produkcji. A już na etapie projektowanie oczekiwanie kilkunastu minut może być irytujące dla konstruktora. Problem ilustruje poniższa tabela.

Układ Produkcja
# Typ (pojemność) Czas EPV (s) Wielkość produkcji Potrzebna ilość dniówek (8h)
Programator 1‑krotny Programator 4‑krotny Programator 16‑krotny
Micron
JS28F00AM29EWH
NOR Flash
(128MB)
935,2 10 000 324,72 81,18 20,30
100 000 3 247,22 811,81 202,95
1 000 000 32 472,22 8 118,06 2 029,51
Micron
MT29F1G08ABAEAWP
NAND Flash
(128MB)
21,3 10 000 7,40 1,85 0,46
100 000 74,02 18,50 4,63
1 000 000 740,17 185,04 46,26
Sandisk
SDIN8DE2-8G
eMMC
(8GB)
274,0 10 000 95,14 23,78 5,95
100 000 951,39 237,85 59,46
1 000 000 9 513,89 2 378,47 594,62
Cypress
S25FL164K
NOR Serial
(8MB)
84,5 10 000 29,34 7,34 1,83
100 000 293,40 73,35 18,34
1 000 000 2 934,03 733,51 183,38
Microchip
PIC32MX360F512L
MCU
(512kB)
9,0 10 000 3,13 0,78 0,20
100 000 31,25 7,81 1,95
1 000 000 312,50 78,13 19,53

Przykładowe czasy programowania współczesnych układów

Dlatego szukajmy maksymalnie szybkich rozwiązań. Biorąc pod uwagę dobrą kondycję przemysłu elektronicznego w Polsce, rosnące wolumeny produkcji i zmienność stosowanych układów programowalnych, powinniśmy optymistycznie patrzeć w przyszłość i wyposażyć się w uniwersalne łatwe do przyszłej adaptacji szybkie urządzenia. Inwestycja nie powinna się ograniczać do bieżących potrzeb ale stwarzać bazę dla podjęcia się przyszłych nowych zadań.

bpm microsystems 2900

Najszybszy programator 9-generacji firmy BPM Microsystems

Powinniśmy mieć na uwadze warunki produkcyjne, gdzie aby sprostać oczekiwanym wydajnościom linii może wkrótce być potrzebne zrównoleglenie procesu programowania na kilku programatorach jednocześnie lub wręcz automatyzacja procesu. Do zrównoleglenia jesteśmy gotowi dzięki programatorom wielo-gniazdowym lub programatorom ISP wielokanałowym. Takie rozwiązania oferuje każdy producent profesjonalnych programatorów.

beehive208s

Autonomiczny programator wielogniazdowy firmy ELNEC

Jednak patrząc na liczby w przedstawionej powyżej tabeli widać, że nawet z użyciem ręcznego tzw. gang programatora ta „marginalna” w całym procesie technologicznym operacja programowania może istotnie absorbować obsługę, a nadzór nad nią nie jest porywającym zajęciem. Dlatego aby utrzymać jakość, uniknąć błędów znużonego operatora trzeba ją automatyzować. To zalecenie nie jest adresowane tylko do dużych producentów. Mali jeśli tylko mają stanowisko testowania swoich urządzeń mogą je zintegrować z programatorem ISP i na początku procesu testowania zapisywać pamięć. W średniej wielkości produkcji programowanie on-line w systemie docelowym wydaje się dobrym rozwiązaniem zapewniającym dobry stosunek kosztów do osiąganych efektów. W tym zakresie mamy kompleksową ofertę programatorów ISP firm ALGOCRAFT, SMH Technologies, ELNEC. Innym rozwiązaniem może być wdrożenie testowania metodą Boundary-Scan np. w oparciu o produkty firmy JTAG Technologies i programowanie układów z wykorzystaniem tej technologii za pośrednictwem interfejsu JTAG.

flashrunner-2-0

Modułowy wielokanałowy programator ISP firmy SMH Technologies

Jednak w produkcji wielkoseryjnej programowanie ISP może spowalniać linię produkcyjną. Wtedy najlepszym rozwiązaniem pozostaje wielogniazdowy automat programujący np. firmy BPM Microsystems. W ofercie dla mniejszych mamy też niskokosztowe rozwiązania automatyczne z automatycznym manipulatorem X-Y.

bmp microsystems 3800mk2

Automat programujący firmy BPM Microsystems

Na marginesie omawianego zagadnienia programowania pozostaje ewentualnie kopiowanie kart SD i pamięci USB. W tym zakresie możemy zaoferować urządzenia firmy Altec.

Widać więc, że rozwiązanie problemu programowania w ramach firmy wymaga analizy bieżących i przyszłych potrzeb, doboru rozwiązania i konkretnych urządzeń. Może w tym być pomocna nasza firma WG Electronics z racji swojego wieloletniego doświadczenia i pełnego spektrum urządzeń w ofercie. Podsumowując, bez względu na to czy będą Państwo starali się sami rozwiązać problem czy z naszą pomocą, powinny być brane pod uwagę następujące kryteria:

  • Renoma producenta i jakość obsługi klienta
  • Uniwersalność urządzenia:
    • maksymalna ilość pin-driverów
    • szeroka gama adapterów
    • różne opcje wykorzystania urządzenia (LAN, USB, ISP, stand-alone, …)
    • lokalne wsparcie techniczne
  • Maksymalna szybkość programowania
  • Możliwość automatyzacji procesu lub integracji w ramach linii technologicznej

Doboru programatora można dokonać w interakcyjnym selektorze programatorów.

Nasi partnerzy na pewno mają w ofercie to czego Państwo potrzebują:

Zapraszamy do współpracy.