SN0_HW_Reference Vývojová deska s obvodem FPG XILINX Spartan N Milan Horkel Před časem mne kluci na kroužku ukecali, abych udělal jednoduchou vývojovou desku s nějakým programovatelným obvodem. Nakonec jsem zvolil obvod FPG od firmy XILINX z řady SpartanN, protože poskytuje rozumné možnosti za rozumnou cenu. Deska je osazena obvodem XS0N v pouzdru TQFP. Tento dokument popisuje hardware desky, její testování a použití naleznete v dalších dokumentech. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference. Technické parametry Parametr Hodnota Poznámka Použitý obvod XS0N, TQFP XILINX FPG Spartan N Napájení desky +V ca. 0m (závisí na funkci) Vnitřní napájení +.V (napájení logiky) Vlastní stabilizátor +.V (napájení jádra FPG) Vlastní stabilizátor Periferie na desce LED displej 8 míst Zapojený multiplexně LED indikátory 8 bitů DIP spínače 8 bitů Tlačítka bity VG výstup PS/ rozhraní kusy I rozhraní Obvod V tolerantních vstupů Jednoduchý /D a D/ Zapojené na samostatné výstupy Zapojené na samostatné vstupy Zapojené na samostatné vstupy bity na barvu V tolerantní V tolerantní elkem vstupů Pomocí PWM Konfigurace Interní paměť obvodu FPG Platí pro obvody řady N Volitelně paměť SPI FLSH Pro obvody řady i N Rozměry ca xx0mm Výška nad základnou Důrazně připomínám hned na začátku, že obvod FPG není V tolerantní! Znamená to, že se na jeho vstupy smí připojit pouze signály do velikosti +.V (absolutní maximum je +.V). Stejně důrazně musím upozornit na to, že na vstupech obvodu nejsou ochranné diody mezi vstupem a kladným napájecím napětím! To je zásadní rozdíl od většiny jednočipových mikroprocesorů. Nelze se tedy spoléhat na to, že když budeme vstupy budit přes velký sériový odpor, že se nic nestane. Stane! Při zvýšeném napětí na vstupech může být životnost vstupních tranzistorů v řádu minut nebo hodin. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference. Popis konstrukce.. Úvodem Školní deska pro práci s obvody FPG XILINX řady Spartan N vznikla na popud kluků v kroužku radiotechniky. Protože s obvody FPG firmy XILINX pracuji, ujal jsem se tohoto úkolu. Nejdřív jsem uvažoval, že bychom začali s deskou s některým obvodem PLD, ale po prozkoumání ceníku, jsem se přiklonil k obvodu FPG řady SpartanN. Obvody FPG mají mnohem propracovanější vnitřní architekturu a obsahují mnohem víc logiky než obvody PLD. Obvod samotný stojí pouhých 0Kč včetně DPH (podzim 00). Je to vlastně nejpokročilejší obvod FPG v pouzdru TQFP, tedy v pouzdru, které si dokážeme sami připájet a v nouzi si dokonce dokážeme sami vyrobit i plošný spoj. Viz dokumentace od první verze této desky na adrese http://www.mlab.cz/permalink/sn0 Snad by měl existovat i obvod z řady Spartan v pouzdru TQFP, ale nikde jsem ho neviděl na skladě. ž ho uvidím, tak z něj možná taky něco udělám, pokud čas dovolí... Zapojení modulu Zapojení desky odpovídá účelu desky. Jako vývojová a školní deska je vybavena obvody pro snadnou práci s obvodem FPG. Na desce nalezneme LED displej, skupinu LED diod, několik tlačítek a DIP přepínačů. Vstupy a výstupy jsou vyvedeny na propojovací hřebínky.... Napájení elá deska se napájí napětím +V přivedeným na konektor J. Opět důrazně připomínám, že použitý obvod FPG vydrží na vývodech napětí.v, ale ne V! +V IN J JUMPX D N80 VDD_V IN uf/.v ELYT DJ OUT OUT U P08KG- TO VDD_V uf/.v ELYT J JUMPX +.V OUT R 0 D0 LEDmm_RED uf/.v ELYT IN OUT DJ U TSPR0 TO VDD_V.V / 00m.V / 800m POWER SUPPLY SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference Z napětí +V se lineárním stabilizátorem U vytváří napětí +.V pro napájení vstupů a výstupů obvodu FPG. Přítomnost napětí +.V indikuje dioda D0 umístěná v rohu desky. Napětí +.V je vyvedeno na konektor J k dalšímu použití. Pozor, nezapojit sem napájení +V, došlo by ke zničení obvodu FPG! bych na tento konektor omylem nepřipojil +V, dávám si ta prostřední vývody zkratovací propojku. Dioda D slouží jako ochrana před přepólováním napájení. Z napětí +.V se lineárním stabilizátorem vytváří napětí +.V pro napájení jádra obvodu FPG.... Konfigurace obvodu FPG Po zapnutí napájení je obvod FPG potřeba naplnit obsahem, tedy definovat, jak bude uvnitř zapojen. Toto vnitřní zapojení se nahrává do vnitřní konfigurační paměti RM a lze to udělat několika způsoby: Prostřednictvím JTG rozhraní přímo z návrhového systému Z interní paměti obvodu FPG Z vnější SPI paměti FLSH (obvod U/U/U nebo U8) volitelná možnost Z nadřazeného procesoru (paralelně nebo sériově) zde se tento způsob neužívá Při úspěšném nahrání konfigurace obvodu FPG se rozsvítí LED D8 s nápisem DONE. Při vypnutí napájení se samozřejmě obsah vnitřní konfigurační paměti RM ztratí. Pro JTG programování slouží konektor J, který je zapojen obvyklým způsobem (jako například na programátoru XILINX Parallel able III). Jeho prostřednictví lze nahrát obsah do konfigurační paměti RM obvodu FPG, naprogramovat vnitřní paměť FLSH obvodu FPG (jen obvod N), nebo provádět další činnosti, které tento port umožňuje (pokud k tomu máte příslušné nástroje). JTG rozhraní lze použít vždy. VDD_V V TK TDO TDI TMS J JUMP_X_X_X8 JTG R 00 R 00 R 00 R 00 TK TDO TDI TMS Další způsoby načítání konfigurace se volí prostřednictvím signálů M0 M a M dle tabulky na schématu. Pro defaultní způsob konfigurace z interní FLSH paměti FPG musí být zkratován signál M0 na zem prostřednictvím propojky mezi vývody J. a J.. V takovém případě, pokud je nahraný platný obsah interní FLSH paměti obvodu FPG dojde k automatické konfiguraci součástky při každém zapnutí napájení (konfigurace trvá řádově milisekundy). SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference J JUMPX M M M0 R 00 R 00 R 00 Mode ONFIGURTION MODE Mode pins have internall pull-up M0 M M 0 0 0 Master Serial 0 0 Master SPI VS VS VS0 0 0 PI 0 Internal Master SPI 0 0 Reserved 0 0 JTG 0 0 Slave Parallel Slave Serial J JUMPX R8 00 R 00 R0 00 Mode VS0 VS VS Fast Read 0x0 (MHz) Read 0x0 (MHz) Read rray 0xE8 SPI VRINT SELET Mode pins have internall pull-up Při načítání konfigurace z vnější SPI paměti FLSH je třeba podle použitého typu paměti nastavit propojky na konektoru J aby se použil správný příkaz pro čtení dat. Externí paměť SPI osazujeme samozřejmě jen jednu podle zapojení osazované paměti a velikosti jejího pouzdra. Tuto možnost využijeme zejména pokud osadíme obvod Spartan (nemá interní FLSH paměť) místo obvodu SpartanN (má interní FLSH paměť). V případě potřeby lze konfigurovat obvod FPG i z nadřazeného systému, ale jen v režimu sériového přenosu (režim slave serial). K tomu slouží konektory J až J8.... Oscilátor Jako zdroj hodinového signálu je na desce osazen obvod U, oscilátor s kmitočtem 00MHz. Pokud potřebuje aplikace jiný kmitočet, lze osadit oscilátor s odlišným kmitočtem, nebo využít vnitřních programovatelných obvodů (blok DM) pro generování potřebného kmitočtu. Vnitřními obvody lze generovat kmitočty odvozené od externích hodin v dosti širokém rozmezí. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Řada LED indikátorů si první školní aplikací je blikání LED indikátory. Proto tu je osazeno 8 LED diod s příslušnými rezistory. Výstupy jsou dále vyvedeny na konektor J. LED0 LED LED LED LED LED LED LED J JUMPX8 R 0 R 0 R 0 R 0 R 0 R 0 R0 0 R 0 D LEDmm_RED D LEDmm_RED D LEDmm_RED D LEDmm_RED LED R D LEDmm_RED D LEDmm_RED D LEDmm_RED D0 LEDmm_RED... Display LED Pro sofistikovanější výpisy je zde umístěn osmimístný LED displej, který je zapojený v multiplexním režimu, abychom nespotřebovali zbytečně mnoho vývodů. VDD_V LD_# LD_# LD_# LD_# R 80 R 80 R 80 R8 80 E Q 8 E Q 8 E Q 8 E Q 8 LD FT-MRD LD_0# LD_# LD_# LD_# R 80 R 80 R 80 R 80 E Q 8 E Q 8 E Q 8 E Q0 8 LD0 FT-MRD 8 8 LD_SEG0#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r 0 D E F G DP F E G D LD_SEG0#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r LD_SEG#r 0 D E F G DP F E G D LED DISPLY SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Vstupní tlačítka a přepínače Pro jednoduché vstupy jsou na desce umístěna tlačítka a jeden osminásobný DIP přepínač. Vstupy jsou dále opatřeny hřebínky pro další využití vývodů. Protože se jedná o školní desku, jsou zde osazeny ochranné sériové rezistory. Použití tlačítek a přepínačů předpokládá, že jsou vstupy nakonfigurovány s pull-down odpory. VDD_V SW PUSH00x00 SW PUSH00x00 SW PUSH00x00 SW0 PUSH00x00 R 0 0 VDD_V 8 R 0 R0 0 PUSH UTTONS SW DIPSW8 Switch corespond with MS (bit ) R 0 R 0 R 0 R 0 R 0 R8 0 R 0 R0 0 R 0 P0 P P P J JUMPX8 DIPSW0 DIPSW DIPSW DIPSW DIPSW DIPSW DIPSW DIPSW DIP SWITHES SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Rozhraní PS/ a I² Deska je osazena dvěma porty PS/ a jedním portem I². Rozhraní PS/ se používá pro připojení klávesnice a/nebo myši. Obě tyto periferie se liší pouze protokolem. Rozhraní I² je určeno pro připojení periferií pro toto rozhraní. Obě rozhraní jsou po hardwarové stránce triviální, neboť se jedná vždy o dva vodiče (hodiny a data) buzené výstupy s otevřeným kolektorem. Komunikace je obousměrná. Protože signalizační napětí těchto rozhraní může být větší, než je +.V, je zde osazen omezovací obvod s tranzistorem FET, který zajistí, že napětí na vstupu FPG nikdy nepřekročí napájecí napětí. VDD_V VDD_V PS_DT PS_LK R k S VDD_V R k S G G D Q0 S0SMD VDD_V D R k R k Q S0SMD J DT +V LK PS/ MINIDIN_PS PS/ PORTS (V TOLERNT) VDD_V VDD_V I_SL R8 k S G D Q8 S0SMD R #k J0 JUMP VDD_V VDD_V I_SD R0 k S G D Q S0SMD R #k I INTERFE (V TOLERNT) SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 8 / 0
SN0_HW_Reference..8. VG port Pro připojení VG monitoru k desce je zde realizováno triviální VG rozhraní. Využívá se jen úrovní ( bity) pro každou základní barvu (tedy celkem barev). Převod na analogové úrovně je realizován pomocí rezistorové sítě. Deska je osazena standardním VG konektorem D. VG_R0 VG_R VG_G0 VG_G R 0 R8 0 R0 0 R 0 R 0 VG_RED VG_GREEN VG_LUE J 8 0 DF_L_0 VG_0 VG_ R 0 R 0 R 0 0. Vpp double terminated Ohm TTL Level Sync VG_HS VG_VS R 00 R 00 R 0 VG VIDEO OUT SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Diferenciální signály Protože obvod FPG řady Spartan/N podporuje diferenciální signály, je několik těchto signálů vyvedeno na konektor. Hledal jsem vhodný konektor a na konec jsem použil konektor ST, protože jej lze snadno získat ze šrotu. Standardně se tyto konektory neosazují. Signály z těchto konektorů jsou připojeny na vývody obvodu FPG, které mohou sloužit i jako hodinové vstupy. J8 + - - + M M 8 #ST_DT SDP SDN SDN SDP J + - - + M M 8 #ST_DT DIFERENIL IN/OUT SDP SDN SDN SDP DIF OUTPUTS DIFP DIFN DIFP DIFN J JUMPX 8 Další diferenciální signály jsou vyvedeny na hřebínek J k volnému použití. Protože jsou pro diferenciální signály využity banky 0 a, mohou být použity jako vstupní i výstupní. anky a mají naproti tomu silnější výstupní budiče ale nepodporují diferenciální výstupy. Něco za něco...0. V tolerantní vstupy Protože obvod FPG samotný (stejně jako všechny novější a rychlejší obvody) nesnese na svých vstupech V signály, použili jsme na desce vstupní budiče SNLV, které poskytují x vstupů. Jsou to obvody U a U a prvních signálů je připojeno rovnou na vstupy FPG (zbývajících 0 signálů je vyvedeno na hřebínky). Kdo nepotřebuje V tolerantní vstupy, nemusí tyto obvody vůbec osazovat. Vstupní budiče je možné po čtveřicích (nibble) aktivovat propojkami J až J0. Zkratovací propojka povoluje příslušnou čtveřici budičů (otevírá třístavový výstup obvodu SNLV).. Použité budiče nemají na vstupu ochranné diody do plusu! Nesmějí se tedy budit signály většími než V a to ani přes velký sériová rezistor. by byla definována logická úroveň na vstupu budičů, jsou na všech vstupech rezistory 00KΩ do země. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 0 / 0
SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0 SN0_HW_Reference IP P P IP0 00nF 00nF J JUMP P VDD_V P0 P N J JUMP R k V OE# OE# OE# OE# V V V U SNLVDL 8 0 8 0 8 0 8 0 8 IP IP IP8 NILE ENLE N0 P IP8 00nF P8 N IP IP N R k J JUMP R0 k P IP IP0 N J JUMP P N0 N IP IP P0 N N IP IP0 IP J0 JUMP 8 0 8 0 00nF N IP N P IP VDD_V J JUMPX P IP V TOLERNT INPUTS (NK ) P IP P IP IP P IP N0 R k P
SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0 SN0_HW_Reference P IX N N X V TOLERNT INPUTS N VDD_V N IP0 J JUMP R k J JUMP J JUMP0 8 0 X IX8 00nF X N J8 JUMP P IX IX IP8 8 00nF X X8 J JUMP0 8 0 00nF R k R k 0 00nF X J0 JUMP VDD_V X P IX IP R k IP N IX IX0 N X0 P8 X IX P IX N IP X J JUMPX0 N IP N N N P0 IX V OE# OE# OE# OE# V V V U SNLVDL 8 0 8 0 8 0 8 0 8
SN0_HW_Reference... nalogové obvody Pro pokusy s analogovými obvody je na desce osazen zesilovač s dolní propustí a komparátor. Lze tak realizovat jednoduchý D/ i /D převodník. Viz aplikační poznámky XILINX XPP a XPP. Nicméně neočekávejte zázraky, poctivý převodník tím nenhradíte. 0nF VDD_V N_OUTD N_REFD R80 k R k R k n N_REF 0 n O U MP00T-I/OT N_OUT N_IN /D D/ ONVERTER See XPP and XPP Low Pass 0KHz J8 JUMPX R8 k 00nF n OMP VDD_V R k U0 MPT-E/OT N_IND.. Mechanická konstrukce Vývojová deska má standardní rozměry a upevňovací šrouby v rozích jako ostatní desky stavebnice. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference. Osazení a oživení.. Osazení Pro osazování je vhodné použít mikropáječku a postupovat obezřetně z hlediska elektrostatického náboje. Dále je potřeba jemná pinzeta a další obvyklé nářadí. Při osazování je vhodné nejprve osadit obvody napájecích zdrojů U a U a SMD součástky okolo nich. Poté je vhodné připojit +V na vstup a zkontrolovat výstupní napětí +.V a +.V dokud nemáme osazeny další obvody. Poté osadíme obvod FPG U a obvody budičů U a U. Tyto obvody osazujeme s velkou pečlivostí, protože mají hodně vývodů s malou roztečí. Používáme minimální množství pájky a vhodné pastovité tavidlo. Obvod vždy nejprve připájíme za protilehlé nožičky a teprve poté, co se ujistíme, že jsou obvody umístěny na všech stranách správně postupně zapájíme všechny vývody. Po osazení zkontrolujeme pod lupou kvalitu pájení a zda nejsou zkraty mezi vývody. Pak osadíme zbývající SMD součástky podle schématu a osazovacího plánu. Pak následují klasické součástky. Začínáme LED displejem, všemi hřebínky a nakonec konektory pro PS/ a VG port. Na závěr desku opticky zkontrolujeme (orientace součástek, zkraty, zapomenuté spoje a podobně) a přišroubujeme rohové šrouby se sloupky. Poslední operací je umytí zbytků tavidla, vysušení a finální optická kontrola. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Osazovací plán, horní strana SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Osazovací plán, spodní strana SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference... Seznam součástek Ks Reference Hodnota Pouzdro Poznámka Rezistory R8 0R 0 R-R0, R, R, R8-R88 00 R080 R, R, R 0 R080 R8, R, R 0 R080 R, R, R, R0-R0, R-R 0 R080 R, R0, R 0 R080 R, R-R8 80 R080 R80 k R080 R, R, R8, R k R080 R, R, R0-R, R8, R0, R-R, R8 k R080 R, R #k R080 Neosazuje se R00-R 00k R00 Kondenzátory keramické 0- n 080 0nF 080 -, - 00nF 080 Kondenzátory tantalové,, uf/.v ELYT Diody D N80 DO0 SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference Ks Reference Hodnota Pouzdro Poznámka Diody LED a displeje LED 0 D0-D8, D0 LEDmm_RED LED LD0, LD FT-MRD LED_PIN Tranzistory 8 Q0-Q 8 SOT Q8-Q S0SMD SOT Integrované obvody U XS0N-TQG TQFP U P08KG- TO U TSPR0 TO U FPS--00M SG800 U TD0D-SSH- SO8_0 Volitelné U TD0D-SH- SO8_0 Volitelné U TDF0xx-SSH SO8_0 Volitelné U8 SSTLF00---SE SO8_0 Volitelné U MP00T-I/OT SOT- U0 MPT-E/OT SOT- U, U SNLVDL SSOIII_8_00 Mechanické součástky SW0-SW PUSH00x00 PUSH00x00 SW DIPSW8 DIPSW8 Propojka SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 8 / 0
SN0_HW_Reference Ks Reference Hodnota Pouzdro Poznámka Konektory J DF_L_0 DF_L_0 J, J MINIDIN_PS MINIDIN J8, J #ST_DT ST_DT Neosazuje se Jednořadé hřebínky J+J+J+ J+J+J8 JUMP JUMP Nalámat J #JUMP JUMP Neosazuje se J, J, J, J, J, J, J8, J, J0 JUMP JUMP Nalámat J0 JUMP JUMP Nalámat J, J, J00 JUMP0 JUMP0 Nalámat J0 JUMP JUMP Nalámat J JUMP_X_X_X8 JUMP_X_X_X8 Nalámat Douřadé hřebínky J JUMPX JUMPX Nalámat J, J, J, J, J8 JUMPX JUMPX Nalámat J JUMPX JUMPX Nalámat J, J JUMPX8 JUMPX8 Nalámat J JUMPX0 JUMPX0 Nalámat J, J JUMPX JUMPX Nalámat SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 / 0
SN0_HW_Reference Ks Reference Hodnota Pouzdro Poznámka Konstrukční součástky Plošný spoj P SN0 Šroub Mxmm křížový, válcová hlava, pozinkovaný Matice M, pozinkovaná Podložka M, pozinkovaná.. Oživení... První zapnutí Prvním krokem je připojení k laboratornímu zdroji a kontrola funkčnosti napájecích zdrojů. Postupně zvyšujeme napájecí napětí až k hranici +V a měříme spotřebu (orientačně) a napětí na vnitřních stabilizátorech U a U. Vnitřní napájecí napětí jsou +.V a +.V (mohou se lišit řekněme o desítky milivoltů). Spotřeba desky bez nahrané konfigurace je cca 0-0m. Nyní je třeba ověřit, zda pracují ochranné obvody na PS/ portech. Měříme napětí na Q0.D, které má být cca +V a Q0.S, které má být o něco menší, než +.V. Toto měření opakujeme pro všechny tranzistory, tedy pro Q0 až Q. Podobně zkontrolujeme i ochranné obvody I² portu. Jen je třeba z vnějšku připojit +V na hřebínek J0. a J0. a měřit na tranzistorech Q8 a Q. Opět se nesmí směrem k FPG dostávat napětí větší, než je napájení +.V.... Testovací obsah Protože samotný obvod FPG bez nahrané konfigurace je mrtvým broukem je pro další oživování a testování potřeba použít nějaký vhodný obsah, aby bylo možno otestovat celou funkčnost desky. Testování desky je popsáno v dokumentu SN0_HW_Test. SN0_HW_Reference.cs.doc / 0--0 / miho / http://www.mlab.cz/permalink/sn0 0 / 0