Knihovny pouzder MQFP a TSSOP

pouzdra MQFP Dříve, než se v dalším oddílu pokusím vyložit motivaci programu Genlib na obecné úrovni, uvedu jako praktickou ukázku dvě knihovny pouzder, vygenerované s jeho pomocí ze zdrojového textu: Pouzdra řad MQFP a TSSOP jsou vytvořena dle norem JEDEC MS-022B a MO-153F.

Knihovna pouzder řady MQFP byla vygenerována ze zdrojového textu mqfp.pas; výsledek je v archivu mqfp.zip. Protože pájecí body zhruba odpovídají logickému typu 85, jak je předdefinován programem Layout, nebyl v ukázce jejich typ měněn. Pro pouzdra řady TSSOP je však třeba definovat tři nové typy pájecího bodu. Výchozí zdrojový text je v souboru tssop.pas, mezistav a výsledek v archivu tssop.zip. Obě vytvořené knihovny byly uloženy zpět do formátu verze 4.30.

Tyto dvě řady mimoděk ukazují i další výhodu generování pouzder: Uvedené normy sice podrobně a jednoznačně (až na povolené tolerance) specifikují rozměry pouzder, avšak pro návrh desky nejsou rozměry pouzdra důležité tolik jako tzv. footprint, který je od nich nutno odvodit. K tomu je potřeba nejen definovat rozměry pájecích bodů (což se dělá mimo program Genlib), ale také polohy jejich středů vůči polohám konců vývodů, udaným normou. Takovéto posunutí lze však snadno parametrizovat, takže si jej každý uživatel může uzpůsobit dle zvolených rozměrů pájecího bodu a svých technologických požadavků či možností.

P.H., duben 2007


Program pro generování knihoven pouzder

Program Genlib, dostupný prostřednictvím WWW stránek systému Formica, dovoluje generovat knihovny pouzder ze zdrojového textu, který je zapsán v jazyce podobném zjednodušenému Pascalu. Ačkoliv Formica (podobně jako naprostá většina návrhových systémů) obsahuje vlastní grafický editor knihovních prvků, podle mého názoru existují pro takovýto program, coby alternativu vytváření knihoven interaktivně, přinejmenším tři silné důvody:

  1. Vytváření. Jednu (jednoduchou) součástku je asi vždy snazší vytvořit graficky. Druhou (či pátou) součástku z téže řady je stále snadné v editoru interaktivně odvozovat od té první. Ale co když je podobných součástek mnoho desítek? Typickým případem bývají řady konektorů; tak třeba knihovna Lib_WAGO_mm.pcb jich obsahuje celkem 170. Je zřejmé, že tady by se již velmi dobře uplatnily nástroje, jimiž lze řadu pouzder parametrizovat, i za cenu, že se na chvíli vzdám grafické interaktivity.

  2. Kontrola. Asi před osmi lety našel vývojář (díky osazené a nefungující desce), že pouzdro PLCC68 v knihovně LIB.pcb má přehozené vývody 12 a 13. Chyba se tam dostala z knihovny vytvořené v jiném návrhovém systému (který myslím navíc neměl příkaz pro umístění řady vývodů) o dalších několik let dříve, když si jiný návrhář uchystal celou řadu pouzder PLCC dopředu. Samozřejmě také ve Formice lze kupříkladu nějakým prvkem pouzdra omylem pohnout společně s jinými.

    Správnost interaktivně vytvořených knihoven - vlastních a tím spíše cizích - může ověřit jedině kontrola všech pouzder. Jenže například výše zmíněná knihovna Lib_WAGO_mm.pcb obsahuje dohromady přes 31000 prvků; i kdybych uměl každý ověřit v průměru za vteřinu, kontrola mne bude stát den práce. Vizuální kontrolu si ovšem mohu zjednodušit: tak třeba se mohu podívat, jak se pouzdra z jedné řady spolu kryjí, když to nejsložitější zdvihnu a přesouvám přes ta jednodušší; příkazem Select | Select | Off-Grid Ones se mohu přesvědčit, zda vývody opravdu leží v předpokládaném rastru; jiná množinová operace vyloučí čáry na vrstvě, na které nemá žádná být; a tak dále.

    Přesto však jsou spolehlivé kontroly pracné, téměř stejně pracné jako samotné vytváření knihoven. Příčinou toho je jednak složitost ověřované knihovny (v zásadě stále musím každé pouzdro kontrolovat zvlášť), jednak (jakkoliv abstraktně to snad zní) přílišná podobnost metod, jimiž pouzdra byla vytvořena, a metod, jimiž je kontroluji. Jestliže však pouzdra vygeneruji programově, o určité typy chyb (vývody 12 a 13, ale také o spoustu podstatně složitějších chyb) už se mohu přestat starat, protože prostě nenastanou. Na druhé straně, mnohé chyby, kterých se teď dopustím jakožto programátor, budou ihned patrné vizuálně.

  3. Údržba. V průběhu času se mohou vyskytnout důvody knihovny různě upravovat např. v důsledku změn technologie nebo i změn v samotném návrhovém systému. Přestože má Formica množinové operace, které dovolují s knihovnou velmi efektivně pracovat jako s celkem (takže lze snadno změnit třeba typ všech pájecích bodů nebo vrstvu či velikost nápisů), hodně zásahů opět musím dělat individuálně, pouzdro po pouzdru. A tím mohou vzniknout nové chyby, takže bych měl provést nové kontroly. Podstatně jednodušší může být úprava příslušných míst v programu, po které stačí knihovnu jediným příkazem vygenerovat znovu.

Ze všech těchto důvodů na přelomu let 2002 / 2003 vytvořil Mikoláš Janota program Genlib (včetně stručného popisu jazyka) jakožto svůj semestrální projekt. Ačkoliv by se třeba našly možnosti, jak definici jazyka dále zjemňovat a popis pouzder tak ještě trochu zjednodušit, zdá se mi, ze již nyní program Genlib výhody generování pouzder ukazuje celkem přesvědčivě. Samozřejmě s návrhovými systémy a jejich knihovnami pracují především návrháři; těžko mohu předem odhadnout, jak blízký jim bude tento spíše programátorský přístup ke knihovnám.

Rád bych proto všem případným zájemcům doporučil začít spíše u ukázkové knihovny a jejího zdrojového souboru než u studia syntaxe jazyka - daleko názornější může být v souboru genlib.pas něco intuitivně změnit a podívat se, jak se to projeví.

P.H.


9. srpna 2007