Školní deska s FPGA XILINX Spartan 3AN
Milan Horkel
Školní deska vznikla protože jsem se nechal přesvědčit kluky na radiotechnickém kroužku, že by je zajímalo jak fungují obvody FPGA a že by si rádi zkusili něco s nimi udělat. Tento dokument ale nepopisuje desku, spíše ukazuje, že i taková deska se dá vyrobit podomácku. Skutečnou dokumentaci naleznete u verze S3AN01B, která se od této liší jen minimálně.
Parametr | Hodnota | Poznámka |
Použitý obvod FPGA | XILINX Spartan3 XC3S50AN | |
Náhrada | Deska S3AN01B |
Jak jsem psal v úvodu, motivace byla jednoznačná. Postavit dostatečně jednoduchou školní vývojovou desku s obvodem programovatelné logiky. Původně jsem uvažoval o obvodu CPLD, ale ukázalo se, že obvod FPGA se dá koupit za velmi podobnou cenu a přitom přináší nesrovnatelně bohatší možnosti.
Protože jsem od přírody skeptik, rozhodl jsem se nejdříve realizovat prototyp podomácku. Jen tak pro případ, že bych udělal nějakou chybu v návrhu. Přeci jenom objednání plošných spojů není úplně zdarma. A ukázalo se, že se to vyplatilo. Jak člověk dělá konstrukci po kouskách po večerech, skoro jako televizní seriál, přehlédne snadno spoustu drobností. Až se sám diví.
Takže jaké chyby se objevily? Tyhle:
První chyba, je skoro nepochopitelná. Normálně bych jí neudělal, ale protože jsem schéma kreslil na pokračování, snadno jsem zapomněl, že odpory nejsou ani stránce schématu s obvodem FPGA, ani na stránce schématu s LED displejem.
Druhá chyba je taková hloupá. Je trochu nepochopitelné, proč u tak komplexní součástky je několik nožiček (asi 6) jen vstupních.
Základem je chytrý návrh desky. Součástka je dost rychlá (stovky MHz) a tomu musí odpovídat kvalita zemní plochy a rozvod napájení. Protože design je dost složitý, nelze vystačit s jednou stranou spojů a jednou stranou zemní plochy. Snahou bylo navrhnout desku tak, aby zemní plocha byla nezbytnými spoji narušena co nejméně. I na straně zemní plochy musí být pár spojů.
Profesionální deska bude tedy klasická dvoustranná se spoji na jedné straně a se zemní plochou a několika spoji na straně druhé.
Obrázek vlevo ukazuje detail rozvodu napájení pro obvod FPGA. Jsou tam pěkně vidět prokovy a propojky. Velká plocha uprostřed je plocha napájecího napětí +1.2V pro jádro obvodu a tlustý vodič okolo plochy je +3.3V pro napájení IO vývodů. Blokování zajišťují kondenzátory vně obvodu FPGA zapojené do zemní ploch pomocí prokovů. Obrázek vpravo ukazuje celý motiv zemní strany včetně rozlité zemní plochy.
Pro amatérskou výrobu si život usnadníme tím, že strana součástek bude celá měděná (zemní plocha přes celou desku) a chybějící spoje realizujeme propojkami. Prokovy realizujeme drátovými spoji pájenými z obou stran desky. To je běžné.
Chybějící spoje nahradíme drátovými propojkami. Pokud na desku nalepíme na samolepce vytištěný „potisk“, zabijeme tím dvě mouchy najednou. Nebudeme muset při používání desky koukat do dokumentace a propojky můžeme udělat z pocínovaného drátu. Jen nesmíme zapomenou vrtákem odvrtat okraje zemní plochy kolem otvorů, které nemají být uzemněné. Spoje od prokovů na straně součástí děláme co nejplacatější aby nevadily pod samolepkou.
Problém je co se spoji pod obvodem FPGA? Obvod je velmi placatý a pod břichem má opravdu velmi málo místa. Tak asi 50um.
Jde to kupodivu snadno. Vezmeme dobrou vrtačku a upneme do ní malou frézu o průměru 2-3mm. Naštelujeme si doraz tak, abychom neodfrézovali měď, ale jen nadbytečný cín.
Po dokončení ozkoušíme, jestli přeci jen spoje pod obvodem FPGA nepřečuhují a jestli se obvod neviklá a když je vše v pořádku pustíme se do osazování.
Aby deska mohla fungovat, je třeba udělat tyto opravy.
Doplníme 2 drátové spoje dle obrázku. Tím se připojí LED displej chybně připojený na vývody FPGA, které jsou jen vstupní na vývody, které jsou i výstupní.
Tyto použité vývody patřily rozhraní PS/2 a proto je třeba jejich spojení s PS/2 rozraním přerušit. Přiškrábneme dva spoje na obrázku vpravo od odporů 4k7. Aby mohlo PS/2 rozhraní fungovat doplníme 2 nové spoje směrem dolu na dosud nevyužité vývody (testovací body).
Po dokončení těchto úprav získáme desku, která je kompatibilní s aktualizovanou deskou S3AN01B.