<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title> XVC_FT220X01A </title><meta name="keywords" content="stavebnice MLAB univerzální moduly JTAG XVC Xilinx Virtual Cable XVC_FT220X01A FTDI USB"><meta name="description" content="Xilinx Virtual Cable založený na obvodu FT220X, JTAG programování FPGA a CPLD přes USB"><!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --><link rel="StyleSheet" href="../../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"><link rel="StyleSheet" href="../../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"><link rel="shortcut icon" type="image/x-icon" href="../../../../../../Web/PIC/MLAB.ico"><script type="text/javascript" src="../../../../../../Web/JS/MLAB_Menu.js"></script><!-- AUTOINCLUDE END --></head><body lang="cs"><!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --><!-- ============== HLAVICKA ============== --><div class="Header"><script type="text/javascript"><!--SetRelativePath("../../../../../../");DrawHeader();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --><!-- ============== MENU ============== --><div class="Menu"><script type="text/javascript"><!--SetRelativePath("../../../../../../");DrawMenu();// --></script><noscript><p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --><!-- ============== TEXT ============== --><div class="Text"><p class="Title">Xilinx Virtual Cable s USB obvodem FTDI FT220X</p><p class=Autor>Milan Horkel</p><p class="Subtitle">Vývojové prostředí ISE pro práci s obvody programovatelné logiky(FPGA/CPLD) firmy XILINX přímo podporuje protokol XVC, kterým sepřenáší JTAG příkazy prostřednictvím sítě TCP/IP. Na vzdáleném koncimusí běžet příslušný obslužný program a k němu musí být připojenprogramovací kabel. Toto je modul programovacího kabelu s obvodem FTDIFT220X s USB rozhraním na jedné straně a JTAG konektorem na stranědruhé.</p><p class="Subtitle"><img width="302" height="224" src="XVC_FT220X01A.cs_soubory/image001.jpg"alt="Vzhled modulu XVC_FT220X01A"></p><p><a href="../XVC_FT220X01A.cs.pdf"><img class="NoBorder"src="../../../../../../Web/PIC/FileIco_PDF.ico"alt="Acrobat"> PDF verze</a></p><h1> Technické parametry </h1><table><tr><th> Parametr </th><th> Hodnota </th><th> Poznámka </th></tr><tr><td> Vstupní rozhraní </td><td> USB 2.0 </td><td> Standardní velký konektor typu B </td></tr><tr><td> Výstupní rozhraní </td><td> JTAG </td><td> Obvyklý jednořadý hřebínek </td></tr><tr><td> Napájení </td><td> +5V do 100mA </td><td> Z rozhraní USB </td></tr><tr><td> Signalizační napětí </td><td> +1.8 až +3.3V / +3.3V </td><td> Z cílového systému / fixní z FTDI </td></tr><tr><td> Síťový protokol / program </td><td> XVC / mlab_xvcd.exe </td><td> UDP, port 2542 / Windows aplikace </td></tr><tr><td> Vývojové prostředí </td><td> XILINX ISE – IMPACT<br>XILINX ISE – ChipScope </td><td> Včetně volné verze WebPack,<br>ChipScope vyžaduje licenci </td></tr><tr><td> Rozměry </td><td> 40x30x18mm </td><td> Výška nad základnou </td></tr></table><h1> Popis konstrukce </h1><h2> Úvodem </h2><p>Pro práci s programovatelnými obvody FPGA a CPLD firmy XILINX jepotřeba příslušné vybavení. Jednou z nezbytností je vhodný programovacíkabel pro nahrávání konfigurace do cílové součástky. Jelikož LPT portse postupně stěhuje do muzea, jsou programovací kabely vyrobené jakoklony známého Parallel Cable III zastaralé a je nutné nalézt novéřešení.</p><p>Vývojové prostředí ISE přímo podporuje připojení programovacího kabeluprostřednictvím TCP/IP sítě a použitý protokol Xilinx Virtual Cable (vezkratce XVC) je dokumentovaný. Díky tomu lze realizovat programovacíkabel za použití některého vhodného standardního obvodu rozhraní adopsat jen poměrně jednoduchý obslužný program.</p><p><img width="676" height="621" src="XVC_FT220X01A.cs_soubory/image002.png"alt="Schéma toku dat ve vývojovém cyklu"></p><p>Volba padla na obvod FTDI FT220X s rozhraním USB. Jedná se o nový (vroce 2012) obvod, jehož cena je překvapivě nízká (cca 40Kč). Obslužnýprogram s obvodem FTDI komunikuje v režimu BitBang, tedy nevyužívážádné speciální vlastnosti tohoto obvodu a může tak pracovat praktickyse všemi obvody FTDI (včetně populárního FT232R).</p><p>Tato konstrukce představuje modul s USB rozhraním na jedné straně aJTAG konektorem na straně druhé. Konektor je zapojen dle zvyklostíXILINX programovacích kabelů. Modul podporuje signalizační napětí naJTAG rozhraní v rozmezí 1.8 až 3.3V a navíc obsahuje indikační diody.</p><p>Obslužný program běží na počítači, ke kterému je připojen programovacíkabel a návrhový program ISE (přesněji komponenta IMPACT, případněChipScope Analyser) se s programem spojí prostřednictvím TCP/IP sítě.Vývojové prostředí může samozřejmě běžet jak na dálku (přes skutečnousíť), tak i na stejném počítači (síťuje se jen uvnitř počítače).Současná verze programu běží pod systémem Windows (WinXP až Win8,32/64bit), verze pro Linux se připravuje.</p><p>Obslužný program má samostatnou dokumentaci a stránku, kde lze stáhnoutpřeložený binární soubor (ale i zdrojové texty).</p><p><a href="http://www.mlab.cz/PermaLink/XVC-SOFTWARE">http://www.mlab.cz/PermaLink/XVC-SOFTWARE</a></p><h2> Zapojení modulu </h2><p><img width="720" height="448" src="XVC_FT220X01A.cs_soubory/image003.png"alt="Elektrické zapojení modulu XVC_FT220X01A"></p><p>Obvod U1 FT220X je obvod rozhraní USB/SPI, ale ve skutečnosti sepoužívá v BitBang režimu, kdy se jeho SPI specifické vlastnostinepoužijí. V zapojení by mělo jít použít i další obvody řady FT200X,zapojení vývodů je stejné.</p><p>Konektor J4 slouží pro napájení cílového zařízení z napětí +5V z USBrozhraní. Pozor, modul neobsahuje pojistku a některé počítače nemusejímít napájení USB portů jištěné i když specifikace jištění vyžaduje.Nepřetěžujte napájení USB portu!</p><p>Hřebínek J3 slouží pro přepínání napájecího napětí IO vývodů USBobvodu. Standardně se používá napětí poskytované cílovou platformou zJTAG konektoru J2.1. Toto napětí může ležet v rozmezí 1.8 až 3.3V.Dioda D4 slouží jako ochranná.</p><p>Pokud cílová platforma neposkytuje napájecí napětí (někdy bývá značenéjako VTG) na JTAG konektoru, lze použít napětí 3.3V z vnitřníhostabilizátoru obvodu FTDI. <i>Pozor na to, že některéobvody FPGA nemusejí akceptovat 3.3V.</i></p><p>Dioda D1 indikuje přítomnost napájecího napětí cílové platformy.</p><p>Dioda D2 indikuje aktivitu obslužného programu (spuštění programu apřenos dat).</p><p>Dioda D3 indikuje zapojení do USB (věci fungují mnohem lépe, když jsouzapojené).</p><p>Zbývající součástky jsou blokovací kondenzátory, obvody odrušení aochranné odpory R3 až R6.</p><h2> Mechanická konstrukce </h2><p>Jedná se o standardní MLAB modul k přišroubování k základnové desce.</p><h1> Osazení a oživení </h1><h2> Osazení </h2><p>Strana spojů obsahuje SMD součástky. Je vhodné připájet nejdříve C5 aL1 a pak obvod U1. Dioda D4 má anodu připojenou na zemní plochu.</p><p><img width="477" height="357" src="XVC_FT220X01A.cs_soubory/image004.png"alt="Osazení součástkami ze strany spojů"></p><p>Strana součástí obsahuje jen hřebínky, konektory a 3 diody LED. AnodyLED diod jsou označeny písmenem A. Konektor J2 má 3 vývody odstraněnéjako klíč.</p><p><img width="410" height="307" src="XVC_FT220X01A.cs_soubory/image005.png"alt="Osazení součástkami ze strany součástek"></p><table class="Soupiska"><tr><th> Reference </th><th> Hodnota </th><th> Pouzdro </th><th> </th><th> Reference </th><th> Hodnota </th><th> Pouzdro </th></tr><tr><th colspan="3"> Odpory </th><td> </td><th colspan="3"> Tranzistory </th></tr><tr><td> R1, R2 </td><td> 27 </td><td> R0805 </td><td> </td><td> Q1, Q2 </td><td> 2N7000SMD </td><td> SOT23 </td></tr><tr><td> R3, R4, R5, R6 </td><td> 100 </td><td> R0805 </td><td> </td><th colspan="3"> Integrované obvody </th></tr><tr><td> R7, R8, R9 </td><td> 330 </td><td> R0805 </td><td> </td><td> U1 </td><td> FT220XS </td><td> SSO16_154 </td></tr><tr><td> R10, R11 </td><td> 10k </td><td> R0805 </td><td> </td><th colspan="3"> Konektory </th></tr><tr><th colspan="3"> Kondenzátory </th><td> </td><td> J1 </td><td> USB_B_01 </td><td> USB_B_01 </td></tr><tr><td> C1, C2 </td><td> 47pF </td><td> C0805 </td><td> </td><td> J2 </td><td> JUMP9_X3_X5_X8 </td><td> JUMP9_X3_X5_X8 </td></tr><tr><td> C3 </td><td> 10nF </td><td> C0805 </td><td> </td><td> J3 </td><td> JUMP3 </td><td> JUMP3 </td></tr><tr><td> C4, C6, C7 </td><td> 100nF </td><td> C0805 </td><td> </td><td> J4 </td><td> JUMP2X3 </td><td> JUMP2X3 </td></tr><tr><td> C5 </td><td> 10uF </td><td> C0805 </td><td> </td><th colspan="3"> Mechanické součásti </th></tr><tr><th colspan="3"> Indukčnosti </th><td> </td><td> 1ks </td><td> XVC_FT220X01A </td><td> Plošný spoj </td></tr><tr><td> L1 </td><td> L-BEAD </td><td> R1206 </td><td> </td><td> 4ks </td><td> Screw M3x12 </td><td> Šroub pozinkovaný </td></tr><tr><th colspan="3"> Diody </th><td> </td><td> 4ks </td><td> Washer M3 </td><td> Podložka </td></tr><tr><td> D1, D3 </td><td> LED3mm_RED </td><td> LED3 </td><td> </td><td> 4ks </td><td> Standoff M3x5 </td><td> Distanční sloupek </td></tr><tr><td> D2 </td><td> LED3mm_GREEN </td><td> LED3 </td><td> </td><td> 1ks </td><td> JUMPER </td><td> Propojka </td></tr><tr><td> D4 </td><td> BZV55-B3V6 </td><td> MINIMELF </td><td> </td><td> </td><td> </td><td> </td></tr></table><h2> Oživení </h2><p>Po umytí desky a optické kontrole (zkraty, otočený U1) přistoupíme koživení. Nejprve připojíme +5V na prostřední pin J4 a změříme napětí naJ3.1 (mělo by být +3.3V). Dioda D3 (s nápisem USB) by měla svítit.</p><p>Odpojíme zdroj a připojíme USB kabelem k počítači. Počítač by měl najítnový hardware a nainstalovat driver. Ovladač (typu D2XX) se najde nastránce výrobce čipu<a href="http://www.ftdichip.com/Drivers/D2XX.htm">http://www.ftdichip.com/Drivers/D2XX.htm</a>.</p><p>Dále je třeba nastavit správně konfiguraci obvodu FTDI tak, aby vývodCBUS3 fungoval jako obyčejná IO nožička. Když se to neudělá, nebudefungovat indikace LED D2 (indikuje aktivitu programu a přenos dat). Tose dělá pomocným programem FT_Prog od FTDI. Program je zašitý na webuvýrobce tak, aby ho laici nenašli <a href="http://www.ftdichip.com/Support/Utilities.htm">http://www.ftdichip.com/Support/Utilities.htm</a>.</p><p>Stažený ZIP archiv rozbalíme a můžeme spustit FT_Prog.exe a provéstzměnu nastavení ručně, případně můžeme použít připravenou konfiguracize souboru XVC_FT220X.xml.</p><p>Na obrázku je zvýrazněné požadované nastavení vývodu CBUS3.</p><p><img width="641" height="406" src="XVC_FT220X01A.cs_soubory/image006.png"alt="Nastavení funkce vývodu C3 u obvodu FTDI"></p><p>Když už měníme konfiguraci je vhodné zadat smysluplné jméno do položkyProduct Description. Toto jméno pak bude vypisovat obslužný program ausnadní se tím výběr zařízení v případě, že je v systému více FTDI USBpřevodníků. Pro operační systém se zařízení bude i nadále tvářit jakoUSB Serial Converer (kdybychom změnili identifikaci zařízení, muselibychom do systému doplnit INF soubor tak, aby systém věděl, že se mápro zařízení použít FTDI driver).</p><p><img width="642" height="448" src="XVC_FT220X01A.cs_soubory/image007.png"alt="Nastavení USB identifikace obvodu FTDI"></p><p>Tím by mělo být nastavení dokončené a je možné spustit obslužný programmlab_xvcd.exe a pokud vše funguje správně, program vypíše spoustuinformací a na konci slovo „Listen“ a je připraven k navázání síťovéhospojení ze strany vývojového prostředí. Dále postupujeme podle návodu kpoužití (abychom se zde neopakovali).</p><h1> Software a návod k použití </h1><h2> Instalace programu a první spuštění </h2><p>Program pro obsluhu XVC_FT220X se jmenuje mlab_xvcd.exe a je kdispozici na adrese<a href="http://www.mlab.cz/PermaLink/XVC-SOFTWARE/XVC-1x/BIN">http://www.mlab.cz/PermaLink/XVC-SOFTWARE/XVC-1x/BIN</a>.Program se neinstaluje (je slinkovaný jako jediný exe soubor), alepotřebuje aby na počítači byly nainstalované drivery FTDI, které jsouke stažení na stránce výrobce<a href="http://www.ftdichip.com/Drivers/D2XX.htm">http://www.ftdichip.com/Drivers/D2XX.htm</a>.</p><p>Program při prvním spuštění potřebuje povolit ve firewallu Windowssíťovou komunikaci (ve Win7 si o to systém sám řekne, ve staršíchverzích Windows je třeba spustit konfiguraci systému firewall ručně apovolit programu síťování). Připomínám, že nastavení je třebazopakovat, když program přesunete do jiného adresáře, nebopřejmenujete, protože nastavení platí pro konkrétní program nakonkrétním místě v systému.</p><h2> Spuštění mlab_xvcd.exe </h2><p>Program po spuštění vypíše informace a nalezené obvody FTDI a spojí sese zadaným zařízením, a když není zadáno tak s prvním nalezeným. Napříkazové řádce lze zadat spojení podle názvu, sériového čísla,umístění na USB sběrnici nebo podle pořadí nalezených obvodů FTDI.</p><p><samp class="Block">D:\...\BIN>mlab_xvcd.exeXilinx Virtual Cable Network Server===================================(c) miho 2012 v 1.03FTDI ConnectLibrary Version 0x30207Devices Found 1JTAG Port Pins TCK->DBUS0(TXD)TDI->DBUS1(RXD)TDO->DBUS2(RTS)TMS->DBUS3(CTS)LED->CBUS3+DBUS7(RI)Device 0Description "XVC_FT220X"SerialNumber "DAVY7XCB"Location 0x111Selected DeviceDescription "XVC_FT220X"SerialNumber "DAVY7XCB"Device Driver Ver 0x20824Baud Rate 1000000USB Latency 1Starting Network ServerHost Name mihomsiNetwork Name mihomsiHost Address 192.168.22.14Bound Socket 2542Set in IMPACT xilinx_xvc host=mihomsi:2542 disableversioncheck=trueListen</samp></p><p>Je-li na konci výpisu slovo Listen, je program připraven k navázáníspojení ze strany vývojového systému. Současně se rozsvítí LED indikaceaktivity (na plošném spoji označená ACT).</p><h2> Spuštění a nastavení programu IMPACT </h2><p>Nyní je třeba ve vývojovém prostředí spustit program IMPACT a v němnastavit plugin pro XVC protokol. Abychom si nemuseli pamatovat jaképarametry se zadávají, program mlab_xvcd.exe vypisuje přesně to, co jetřeba do programu IMPACT zadat. Lze použít klipboard, ale pozor aby nazačátku nebyla mezera (není vidět, ale plugin se nenajde a nespustí).Nastavení je v položce Output / Cable Setup.</p><p><img width="397" height="440" src="XVC_FT220X01A.cs_soubory/image008.png"alt="Nastavení XVC kabelu v programu iMPACT"></p><p>Po odklepnutí dojde k navázání spojení a program mlab_xvcd.exe začnevypisovat tečky (program IMPACT každou sekundu pošle data po síti ikdyž nemá co na práci). Současně zhasne indikační LED a jen poblikávápři zpracování dat.</p><p><samp class="Block">ListenAccepted 192.168.22.14:63280Handle Data ..................................................</samp></p><p>Nyní lze nahrát do obvodu FPGA konfiguraci, což bylo cílem našehosnažení.</p><p><img width="834" height="432" src="XVC_FT220X01A.cs_soubory/image009.png"alt="Funkční program iMPACT"></p><h2> XVC a ChipScope </h2><p>Použití XVC kabelu není omezeno jen na nahrávání obvodů FPGA, ale lzejej použít i ve spojení s IP jádrem ChipScope (licencované) a zabudovatsi tak do obvodu FPGA velmi šikovný logický analyzátor. Tomuto tématuse věnuje samostatný článek na adrese<a href="http://www.mlab.cz/PermaLink/XVC-ChipScope">http://www.mlab.cz/PermaLink/XVC-ChipScope</a>.</p><h2> Omezení </h2><p>Řešení má i svá omezení. Zatím se mi nepodařilo rozchodit programovánípamětí SPI připojených k obvodu FPGA ani vnitřní SPI paměti obvodůSpartan3AN. Tato funkce totiž nahrává obsah paměti tak, že nejdříve doobvodu FPGA nahraje pomocný obsah (což se povede) a pak pomocí tohotopomocného zapojení získá přístup k pinům, ke kterým je připojena(vnější nebo vnitřní) sériová FLASH paměť. To už se bohužel nepovede.Zatím nevím proč.</p><p>Pro nahrávání SPI pamětí tedy i nadále používám LPT port s paralelnímkabelem (na některých počítačích to taky občas nefunguje), nebo XILINXUSB kabel (když si ho nezapomenu vypůjčit).</p></div><!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --><!-- ============== PATIČKA ============== --><div class="Footer"><script type="text/javascript"><!--SetRelativePath("../../../../../../");DrawFooter();// --></script><noscript><p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p></noscript></div><!-- AUTOINCLUDE END --></body></html>